我正在处理以下问题,但不知道该如何解决。我在运行 nginx 的应用服务器群前面安装了 HAproxy。HAproxy 为后端服务启用了一些 httpchecks - 检查正在命中 /health_check URI:
option httpchk HEAD /health_check HTTP/1.1\r\nHost:\ staging.example.com
我不知道如何避免对所有 URI 启用永久重写的虚拟主机进行日志记录。以下是示例
server {
listen 8000;
server_name "";
location = /health_check {
access_log off;
return 200;
}
rewrite ^(.*) https://staging.example.com$1 permanent;
}
我以为上述位置指令会禁用给定 URI 的日志,但我错了 - 它被完全忽略了。
有什么方法可以完成这样的事情吗?
答案1
将其放入rewrite
一个location /
块中。
location / {
rewrite ^(.*) https://staging.example.com$1 permanent;
}
这样,它将匹配除/health_check
具有更具体的之外的所有 URL location
。
答案2
location /
如果不需要正则表达式,您也可以返回而不是使用块重写。
location / {
return 301 $scheme://staging.example.com$request_uri;
}