【发布时间】:2022-02-11 06:29:53
【问题描述】:
我目前有这个 nginx 设置:
events {
worker_connections 4096;
}
http {
log_format upstreamlog '[$time_local] Forwarding $request from $remote_addr to: ($upstream_addr $request_uri $request) - Statuscode: $upstream_status Response time: $upstream_response_time';
log_format upstreamlogmirror '[$time_local] Forwarding mirror $request from $remote_addr to: ($upstream_addr $request_uri $request): Statuscode: $upstream_status Response time: $upstream_response_time';
server {
listen 0.0.0.0:80;
listen 0.0.0.0:443;
location / {
access_log /dev/stdout upstreamlog;
mirror /mirror;
proxy_pass https://first.service.com/api/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /mirror {
internal;
proxy_pass http://127.0.0.1:55555/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 127.0.0.1:55555;
location / {
access_log /dev/stdout upstreamlogmirror;
proxy_pass https://second.service.com/;
}
}
}
但是,我在这方面遇到了一些困难。
似乎镜像服务器确实收到了一个请求(我在日志中看到它),但是在请求时,例如https://localhost/myroute,它会正确转发到https://first.service.com/api/myroute,但是第二个服务只发送到https://second.service.com/,没有附加路由。
我也尝试用这个设置完成整个事情:
location / {
access_log /dev/stdout upstreamlog;
mirror /mirror;
proxy_pass https://first.service.com/api/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /mirror {
internal;
access_log /dev/stdout upstreamlogmirror;
proxy_pass http://second.service.com/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
这很好用,但在这种情况下,我根本没有得到任何日志。
我哪里错了?
【问题讨论】:
标签: nginx nginx-config