关于Nginx location中配置proxy_pass转发时斜线'/'导致的404问题
关于Nginx location中配置proxy_pass转发时斜线'/'导致的404问题
空山苦水禅人 发表于1年前
关于Nginx location中配置proxy_pass转发时斜线'/'导致的404问题
  • 发表于 1年前
  • 阅读 336
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: Nginx location中配置proxy_pass转发时,如果匹配字符串中斜线'/'不统一,会导致404 not found错误

在Nginx location通用匹配规则中配置proxy_pass转发时,假设有如下location配置:

	location /test {
		proxy_pass http://localhost:8080/test;
		proxy_redirect off;
		proxy_set_header X-Real-IP          $remote_addr;
		proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
		proxy_set_header Host $host:$server_port;
		proxy_set_header X-Forwarded-Proto "https";
		proxy_set_header X-Forwarded-Host $host;
		proxy_set_header X-Forwarded-Server $host;
		proxy_set_header X-Real-IP $remote_addr;
	}

如果我请求 http://localhost/test/a.jsp,则会将url根据匹配规则“/test”截取,然后将“/test”后面的内容(此处为“/a.jsp”)拼接到proxy_pass的后面,然后转发,也就是最后实际请求地址为:proxy_pass http://localhost:8080/test/a.jsp。

所以,如果location的匹配规则最后不加斜线'/',则proxy_pass的最后也不要加斜线,或者都加上斜线,不然就不能正确访问实际地址,导致404 not found错误。

 

注:正则匹配不适用,关于location的匹配规则,可以参考其他资料。

共有 人打赏支持
粉丝 8
博文 12
码字总数 6372
×
空山苦水禅人
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: