【问题标题】:what is the difference between "location /logs" and "location /logs/" in nginx.confnginx.conf 中的“location /logs”和“location /logs/”有什么区别
【发布时间】:2020-08-10 16:08:02
【问题描述】:

我需要知道nginx.conf中以下两行的区别。以及它们的用例。

位置/日志{

位置 /logs/ {

【问题讨论】:

  • 主要区别是只有一个匹配URI /logsfoo,并且只有一个匹配URI /logs
  • @RichardSmith,对不起,你能解释清楚吗?
  • @RichardSmith 你的意思是第一个将匹配 /logsanything 而第二个将匹配 /logs 单独
  • 没有。我的评论模棱两可,抱歉。这些是前缀位置,因此它们匹配 值中的字符开头的 URI。所以只有第一个位置块可以匹配/logs/logsx,因为URI 中的第六个字符不是/。将 URI 与位置块匹配的规则在 herehere 中进行了解释。

标签: java security nginx webserver nginx-config


【解决方案1】:

这在http://nginx.org/en/docs/http/ngx_http_core_module.html#location的位置文档中有介绍

如果位置由以斜杠字符结尾的前缀字符串定义,并且请求由 proxy_pass、fastcgi_pass、uwsgi_pass、scgi_pass、memcached_pa​​ss 或 grpc_pass 之一处理,则执行特殊处理。为了响应 URI 等于此字符串但没有尾部斜杠的请求,将返回带有代码 301 的永久重定向到附加斜杠的请求 URI。如果不希望这样,可以像这样定义 URI 和位置的完全匹配:

location /user/ {
    proxy_pass http://user.example.com;
}

location = /user {
    proxy_pass http://login.example.com;
}

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    相关资源
    最近更新 更多