【问题标题】:Nginx:504 Gateway TimeoutNginx:504 网关超时
【发布时间】:2022-02-22 17:57:51
【问题描述】:

我使用 Nginx 作为我的 https 服务器来从我的节点服务器提供我的 http 内容。

我也在谷歌云上托管我的服务器。

我一直收到 504 网关超时错误;所以我想知道是不是因为我没有设置我的上游服务器(节点服务器)8080端口打开。然后它工作。不太确定这是否是正确的方法

但后来我一直在网上寻找其他文档或教程。我从来没有看到人们以这种方式配置连接到节点服务器。他们主要只打开了 80 端口。所以我想知道我在服务器中的配置是否会导致 504 网关问题

---------第二次更新

这是我的设置,default_server是默认写的

但我总是看到 doc 包含一个变量 - server_name ;其实我不太明白这个变量。我可以知道我是否应该考虑它以供以后使用,尽管它现在有效

另外,我有一个 我的应用出现服务器错误。

FetchError:对https://34.96.213.54:443/search/guest2 的请求失败,原因:自签名证书

为什么它可以在chrome上运行,虽然我直接获得了那个api并且邮递员成功。

第三次更新------

【问题讨论】:

  • 在上游使用多台服务器是负载均衡,您仍然只是在 proxy_pass 中使用单台服务器后端以获得更简单和更小的服务,更多信息请访问docs.nginx.com/nginx/admin-guide/load-balancer/…docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy
  • 感谢评论,所以我的node js不叫上游服务器?但是,打开我的节点服务器端口让代理服务器连接到它是否正确?我只是很困惑这种方式是否正确
  • "我的节点 js 不被称为上游服务器" => 它喜欢只有一个服务器的上游,两种方式都是正确的,取决于你的服务规模
  • 感谢您的回复,但是,我怎样才能让我的 ngxin 代理连接到我的节点服务器,而无需直接打开我的 8080 端口?因为我只想要一个暴露在外面的入口点
  • 由于8080端口不是公共的,所以需要使用私有地址,因为同一个服务器,需要使用“localhost”而不是公共地址

标签: node.js nginx nginx-reverse-proxy


【解决方案1】:

关于自签名证书:您需要购买一个或使用像https://letsencrypt.org 这样的免费服务。此外,您的问题非常基础,因此您必须更多地研究 nginx 文档 (http://nginx.org/en/docs/http/server_names.html)

【讨论】:

  • 感谢您的链接,顺便说一句,如果我可以继续使用我的自签名证书而不下载新证书并获得免费的 CA 来确认它?我只是想快速测试一下。至于服务器名称,现在我明白了。
  • 对于“我只是想快速测试一下”,没关系!
  • 但它一直说失败,原因:自签名证书......对不起,如果这已经太长了。我的意思是可以发送给用户测试
  • 这取决于你,用户会看到来自浏览器的警告消息,需要忽略它才能继续
  • 我明白你说的,但这一次,用户甚至看不到警告信息。由于此消息是由应用程序抛出的。附图片
猜你喜欢
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 2011-04-08
  • 2011-10-04
  • 2019-10-22
  • 2019-12-02
  • 2019-01-20
相关资源
最近更新 更多