问题描述
当使用nginx配置proxy_pass参数以后,后端web取得的Request.Uri是proxy_pass中配置的地址,而不是client访问的原始地址
举例说明:
假设nginx配置文件为,nginx所在server ip为192.168.1.100:
server {
listen 80;
location /{
proxy_pass http://localhost:5000;
}
}
当user访问 http://192.168.1.100 时,web获取到的Request.Uri地址为 http://localhost:5000。
解决方法
如果想要获取到 http://192.168.1.100 ,则需要再加上一条配置:
proxy_set_header Host $host;
即
server {
listen 80;
location /{
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步