簡體   English   中英

nginx:“位置”的特定文本值禁止使用403

[英]nginx: 403 forbidden for a particular text value for Location

我在使用Nginx配置時遇到一個奇怪的問題。

一切正常。 但是,如果我更改位置指令的值(同時使所有內容完全相同),它將失敗。

因此,以下配置有效:

location ~ ^/v1/works/(.*)$ {
  ...
  ...
}

但這不是:

location ~ ^/v1/doesnotwork/(.*)$ {
  ...
  ...
}

我收到此錯誤日志:

access forbidden by rule, client: 100.97.0.0, server: my-host.com, request: "GET /v1/doesnotwork HTTP/1.1", host: "my-host.com"

似乎有些規則允許一個特定的單詞(在此示例中為“ works”),但禁止使用另一個單詞(在此示例中為“ doesnotwork”)作為位置指令。

可能是什么原因? 通常,nginx配置的哪一部分或特別是proxy_pass配置的哪一部分可以使具有這樣的規則成為可能?

我已經解決了問題。

原因是同一域中多次出現服務器塊。

最初的作者首先嘗試使用測試環境中的某些服務,以及產品中的其他服務。 經過測試,最終糾正了服務器。 但是他忘記了將2個區塊合並為一個。

服務器域的重新出現以及某些位置指令的重新出現導致了混亂。

將所有這些位置合並到單個服務器塊后,問題得到解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM