AWS EC2部署Next.js应用遇403错误,疑Nginx配置问题求助
解决AWS EC2部署Next.js的403错误(Nginx排查方案)
从你怀疑的Nginx配置入手,按以下步骤逐一排查:
1. 确认反向代理配置是否正确
Next.js是Node服务,Nginx需要把请求反向代理到pm2运行的服务端口(默认3000),如果配置里直接指向静态目录却没正确设置代理,必然返回403。
正确的核心配置片段应该是:
location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }
对比你的配置,检查是否遗漏了反向代理规则,或者代理地址写错。
2. 修复目录权限问题
403常见原因是Nginx运行用户没有访问/var/www/kosher/的权限:
- 先查询Nginx运行用户:
ps aux | grep nginx,通常是nginx或www-data - 给目标目录设置正确权限:
sudo chown -R nginx:nginx /var/www/kosher/ sudo chmod -R 755 /var/www/kosher/
3. 验证Nginx配置合法性
执行sudo nginx -t检查配置语法,有错误会直接提示,修正后重启Nginx:sudo systemctl restart nginx
4. 补充检查点
- 确认EC2安全组开放了80(HTTP)或443(HTTPS)端口,允许外部访问
- 用
pm2 logs查看Next.js服务日志,确保服务正常启动并监听预期端口,没有启动报错
内容的提问来源于stack exchange,提问作者eitan
相关产品推荐
相关产品推荐

