这是一个 nginx 配置
server {
listen $PORT;
location ~ ^/documents/(.*)$ {
proxy_pass http://127.0.0.1:5000/$1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location = /favicon.ico {
return 204;
access_log off;
log_not_found off;
}
}
url 有两种用例/documents/
:
POST 进行/documents/
一些处理或
GET 供/documents/ping
AWS ELB 用于健康检查
在 cloudwatch 日志中,我得到了一堆 ping 条目
要求 nginx 不记录 ping 的最简单的方法是什么?
答案1
这是一个简单的方法——添加这个位置块。
location ~ /documents/ping {
proxy_pass http://127.0.0.1:5000/$1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
log_not_found off;
}
可能有更简洁的方法。一种方法是将两个块的共享内容定义为一个文件并包含它,但对于一次性操作,我不会这么做。
笔记 -不要使用 if 语句除非你无能为力。
更新
如果你想做一个包含做这样的事情
location ~ ^/documents/(.*)$ {
include /path/to/fragment.conf;
}
location /documents/ping {
include /path/to/fragment.conf;
access_log off;
log_not_found off;
}
在文件 fragment.conf 中
proxy_pass http://127.0.0.1:5000/$1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
同意~没有必要,但我也不认为它会带来坏处。