当前位置: 代码网 > 服务器>服务器>Linux > Nginx配置后请求报404的几种问题解决方法

Nginx配置后请求报404的几种问题解决方法

2025年02月17日 Linux 我要评论
请求返回 404 错误,可能确实与host头有关,也有可能是后端服务器本身的资源路径问题。错误示例:location /jx3/ {rewrite ^/jx3/(.*)$ /$1 break;prox

请求返回 404 错误,可能确实与 host 头有关,也有可能是后端服务器本身的资源路径问题。

错误示例:

location /jx3/ {
	rewrite ^/jx3/(.*)$ /$1 break;
	proxy_pass https://jx3.top;
	proxy_set_header host $host;
	proxy_set_header x-real-ip $remote_addr;
	proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
	proxy_set_header x-forwarded-proto $scheme;
}

1.host 头设置问题:

在你当前的配置中,proxy_set_header host $host; 会将客户端的原始主机名(假如是jx.ieoog.com)传递给后端服务器。这可能会导致后端服务器无法正确解析请求,尤其是如果后端服务器依赖 host 头来确定处理逻辑或域名解析时。

例如,如果后端服务器 https://jx3.top 需要 host 头为它自己的域名(即 jx3.top),那么将 host 设置为 jx.ieoog.com 可能会导致 404 错误,因为服务器接收到的是一个它无法识别的域名。

解决方法:

试试将 proxy_set_header host 改为:

proxy_set_header host jx.top;

这样,后端服务器会接收到正确的 host 头信息(即 jx.top),从而能够正确处理请求。

2. 后端资源路径问题:

如果 host 头设置正确,仍然返回 404,可能是后端服务器 https://jx3api.btcsg.top 上并不存在 /user/token 这个路径。可以通过直接访问 https://jx3api.btcsg.top/user/token 来验证该路径是否存在。

解决方法:

检查后端服务器是否期望请求路径格式发生改变。例如,如果后端服务器需要保留 /jx3/ 前缀,可以修改重写规则或直接在 proxy_pass 中保留 /jx3/,比如:

proxy_pass https://jx3.top/jx3/;

这样,访问 https://jx.ieoog.com/jx3/us/tn 时会被代理为 https://jx3api.btc.top/jx3/us/tn

到此这篇关于nginx配置后请求报404的几种问题解决方法的文章就介绍到这了,更多相关nginx配置后请求报404内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com