-
proxy_pass
是一种反向代理的配置,它可以将用户请求转发到其他服务器或端口。例如,你可以使用proxy_pass
将用户请求/
转发到http://localhost:8080
,将用户请求/test
转发到http://localhost:3000
⁴:location / { proxy_pass http://localhost:8080; } location /test { proxy_pass http://localhost:3000; }
-
proxy_pass
的配置需要注意location
和proxy_pass
后面的 URI 是否有/
结尾,因为这会影响最终的转发地址。例如,如果你配置了以下的location
和proxy_pass
¹:location /proxy/ { proxy_pass http://myblog.com:8000/; }
那么,当用户请求
/proxy/login.html
时,Nginx 会将/proxy/
整个从 URL 里面删除,转发到http://myblog.com:8000/login.html
¹。如果你想保留/proxy/
,你可以去掉proxy_pass
后面的/
,或者使用变量:location /proxy/ { proxy_pass http://myblog.com:8000; } # 或者 location /proxy/ { proxy_pass http://myblog.com:8000$uri; }
nginx location 和 proxy_pass后面的 URI 是否有 结尾的区别
10 min read