Nginx配置问题:如何修改配置使/api/auth路径可访问?
修正Nginx配置解决/api/auth 404问题
你的Nginx配置里有三个关键错误导致了404,直接修改nginx/sites-available/default里的location /api块即可,具体修正如下:
错误点说明
- 多余的本地文件查找配置:
root和try_files是用来查找本地静态文件的,但你的/api路径是要反向代理到Node服务,这两行会让Nginx先去本地/opt/devParty/routes/api找文件,找不到直接返回404,根本不会走代理。 - proxy_pass路径错误:原配置末尾加了斜杠
/,会把请求的/api前缀去掉,传给Node服务的路径变成/auth,但你的Node路由是/api/auth,所以匹配不到。 - CORS头拼写错误:
Access-ControlAllow-Origin少了连字符,应该是Access-Control-Allow-Origin,否则跨域配置不生效。
修改后的完整配置
server { listen 80 default_server; server_name _; # react app & front-end files location / { root /opt/devParty/client/build; try_files $uri /index.html; } # node api reverse proxy location /api { add_header 'Access-Control-Allow-Origin' '*'; proxy_pass http://localhost:4000; # 可选:添加代理必备头部,确保Node服务获取正确客户端信息 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; } }
验证步骤
- 保存配置后重启Nginx生效:
sudo systemctl restart nginx
- 确认Node服务在4000端口正常运行:
curl http://localhost:4000/api/auth
如果返回登录相关正常响应,说明Node路由无问题,此时通过域名访问/api/auth就不会出现404了。
内容的提问来源于stack exchange,提问作者codereyes
相关产品推荐
相关产品推荐

