此情况会出现在代理外网情况下 访问端口不是80、443,并且访问url末尾不带 / 的时候
举例
xx.xx.xx.xx:9000/url 经过nginx转代 url会变成 xx.xx.xx.xx/url,而实际资源需求的url是这样的 xx.xx.xx.xx:9000/url/
所以我们直接在nginx配置中更改
server {
listen 80;
server_name localhost;
client_max_body_size 100m;
proxy_connect_timeout 300s;
#重点 start 这一点写location里面是一样的 但是提在外面就不用重复写了
#如果内网nginx监听端口与外网访问的端口不一致 需要配置成这样
#proxy_set_header Host $host:9000;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#重点 end
# 资源转发
location /url{
proxy_pass http://192.168.1.1:11111;
}
}
本文详细解析了在使用Nginx作为代理服务器时,如何正确配置URL重写与代理设置,以解决代理外网访问特定端口及URL路径结尾缺少斜杠的问题。通过调整Nginx配置文件中的proxy_set_header与location指令,确保资源能够被准确地转发到目标服务器。
2323

被折叠的 条评论
为什么被折叠?



