Gle*_*mad 6 server-configuration nginx proxypass server nginx-reverse-proxy
我有以下 nginx 配置:
http {
log_format upstream_logging '[proxied request] '
'$server_name$request_uri -> $upstream_addr';
access_log /dev/stdout upstream_logging;
server {
listen 80;
server_name localhost;
location ~ /test/(.*)/foo {
proxy_pass http://127.0.0.1:3000/$1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我击中时:
http://localhost/test/bar/foo
Run Code Online (Sandbox Code Playgroud)
我的实际输出是:
[proxied request] localhost/test/bar/foo -> 127.0.0.1:3000
Run Code Online (Sandbox Code Playgroud)
虽然我的预期输出是:
[proxied request] localhost/test/bar/foo -> 127.0.0.1:3000/bar
Run Code Online (Sandbox Code Playgroud)
是否有变量或方法可以在日志中生成实际的代理 URI?
如果不是生产环境,您可以在所需的本地地址和端口(而不是真实的)上启动最简单的侦听服务器后测试 nginx 发送的内容:
$ nc -l 127.0.0.1 3000
POST /some/uri HTTP/1.0
Host: 127.0.0.1
Connection: close
Content-Length: 14
some payload
Run Code Online (Sandbox Code Playgroud)
可以通过手动输入 来模拟响应,然后在运行HTTP/1.1 200 OK时输入 2 个新行。nc
| 归档时间: |
|
| 查看次数: |
2270 次 |
| 最近记录: |