Nginx:获取代理\u pass使用的上游URI
我正在使用Nginx:获取代理\u pass使用的上游URI,nginx,logging,nginx-reverse-proxy,proxypass,Nginx,Logging,Nginx Reverse Proxy,Proxypass,我正在使用proxy\u pass并希望记录proxy\u pass使用的URI 我可以记录进程的每个细节,比如$upstream\u addr(IP),除了URI本身 我是否遗漏了什么或这是不可能的?我相信您希望使用的变量是日志格式的$proxy\u host $proxy\u主机 proxy_pass指令中指定的代理服务器的名称和端口 我正在使用proxy_pass,希望记录proxy_pass使用的URI 有,但您仍然无法在那里获取完整URI 视情况而定,但如果您的应用程序已经投入生产,
proxy\u pass
并希望记录proxy\u pass使用的URI
我可以记录进程的每个细节,比如$upstream\u addr
(IP),除了URI本身
我是否遗漏了什么或这是不可能的?我相信您希望使用的变量是日志格式的
$proxy\u host
$proxy\u主机
proxy_pass指令中指定的代理服务器的名称和端口
我正在使用proxy_pass,希望记录proxy_pass使用的URI
有,但您仍然无法在那里获取完整URI
视情况而定,但如果您的应用程序已经投入生产,请添加$upstream\u addr
,并检查上游的访问日志
如果您的应用程序仍在调试中,请使用nginx的debug
level in指令
我希望得到完整的URI,因为我和我的爱人有点小麻烦。它们似乎被忽略了,我试图记录这些
嗯,您可能被nginx的URI处理规则击中了
请求URI按如下方式传递到服务器:
如果使用URI指定proxy_pass指令,则当请求传递到服务器时,与位置匹配的规范化请求URI部分将替换为该指令中指定的URI:
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
如果在未指定URI的情况下指定了proxy_pass,则在处理原始请求时,请求URI将以与客户端发送的相同的形式传递给服务器,或者在处理更改的URI时传递完整的规范化请求URI:
location /some/path/ {
proxy_pass http://127.0.0.1;
}
如果需要将完整URI传递给上游,只需将上游而不是上游URI指定给代理_pass
,并删除此处的任何前斜杠
proxy_pass http://backend_upstream;
谢谢你的回答。
$proxy\u host
只是域名。我希望得到完整的URI,因为我和我的爱人有点小麻烦。它们似乎被忽略了,我试图记录这些。似乎没有任何$proxy\u request\u uri
函数可以使用,因为它通常与原始函数相同。可能是我重复的问题