我有一个 nginx 作为后端前面的代理,我想将对特定位置的请求分离到一个单独的文件中。
请求仍然应该发送到同一个后端服务器,但我不想在主访问日志中看到它们。
另外,我不想两次指定所有的 proxy_ 内容。
server {
...
access_log /var/log/nginx/jira.access.log full;
error_log /var/log/nginx/jira.error.log;
client_max_body_size 150m;
location /special/ {
}
location / {
# many lines of config params for proxy_...
proxy_pass http://dowa-02.example.com:8080;
...
}
}
答案1
更新型多巴胺
嗯...access_log
指令有一个“功能”。
请求记录在处理结束位置的上下文中。如果在请求处理期间发生内部重定向,则这可能与原始位置不同。
如果是try_files
内部重定向,请尝试更改try_files
为include
并删除命名位置。
UPD 结束
为了不重复多次“proxy_ stuff”,你可以使用include
指令。但是try_files
和命名位置要好得多:)
server {
...
access_log /var/log/nginx/jira.access.log full;
error_log /var/log/nginx/jira.error.log;
client_max_body_size 150m;
location /special/ {
try_files $uri @backend;
access_log /var/log/nginx/special.access.log full;
}
location / {
try_files $uri @backend;
}
location @backend {
# many lines of config params for proxy_...
proxy_pass http://dowa-02.example.com:8080;
...
}
}