1 回答
TA贡献2039条经验 获得超7个赞
504 Gateway Timeout
表示 nginx 代理等待上游应用响应的时间过长。如果这种情况发生在通常在几秒后返回的端点上,很可能是 nginx 代理试图到达您的应用程序未侦听的端口(或者应用程序已崩溃)。
默认情况下,Elastic Beanstalk 将 nginx 代理配置为将请求转发到端口 5000 上的应用程序。您可以通过将PORT
环境属性设置为主应用程序侦听的端口来覆盖默认端口。更多信息:AWS 反向代理文档
确保您的应用程序代码侦听正确的端口。
http.ListenAndServe(":5000", nil);
另一个原因可能是应用程序代码崩溃。检查 Elastic Beanstalk 中的最后 100 行日志。您还可以通过 SSH 连接到您的服务器并运行cat /var/log/eb-engine.log
.
反向代理
另外,您似乎正在尝试静态托管/public/index.html. 您可以通过两种不同的方式执行此操作。
使用 Go(不推荐)
http.Handle("/", http.FileServer(http.Dir("./static")))
http.ListenAndServe(":3000", nil)
使用 Nginx(推荐)
通过扩展您的 nginx 配置,您可以使用代理服务器静态托管文件并在它们访问您的服务器应用程序之前重定向路由。
~/workspace/my-app/
|-- .platform
| `-- nginx
| `-- conf.d
| `-- myconf.conf
- 1 回答
- 0 关注
- 194 浏览
添加回答
举报