Nginx proxy_pass路径跳转后返回404状态码的修复咨询
修复Nginx路径代理的404问题
问题根源
你的配置存在两个关键问题:
server_name末尾缺少分号,属于Nginx语法错误,可能导致配置解析异常。proxy_pass未添加结尾斜杠,导致Nginx将/example/前缀连同后续路径一起转发到目标站点,而example.com不存在/example/路径,因此返回404。
修复后的配置
server_name 1.1.1.1.nip.io; location /example/ { proxy_pass https://example.com/; proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
修改说明
- 添加
server_name末尾的分号:Nginx配置语句必须以分号结尾,否则无法正确加载配置。 - 给
proxy_pass添加结尾斜杠:当proxy_pass以/结尾时,Nginx会将location匹配的前缀(即/example/)剥离,仅将后续路径转发到目标站点的根路径。例如访问1.1.1.1.nip.io/example/abc会被转发到https://example.com/abc,避免因目标站点不存在/example/路径而返回404。
验证步骤
- 重新加载Nginx配置:
nginx -s reload - 访问
1.1.1.1.nip.io/example/,检查返回状态码是否为200。
内容的提问来源于stack exchange,提问作者nocodre
相关产品推荐
相关产品推荐

