【问题标题】:Is possible to route traffic with NGINX (EC2) outside AWS?是否可以在 AWS 外部使用 NGINX (EC2) 路由流量?
【发布时间】:2021-11-24 13:10:38
【问题描述】:

我在本地提供商中有一个基础架构,是关于一个 nginx 反向代理服务器和另外两个服务器以及我的节点应用程序(产品和测试)。我还有两个用于测试的子域:test.mydomain.com 和 test.mydomain.app

今天,我们作为新的提供商迁移到AWS,为了逐步迁移系统,我们首先选择了nginx服务器。

我做了这个:

  • 我在默认 vpc - 默认子网(包括正确的路由表 - 附加的互联网网关实例)下创建了一个具有适当安全组(http、https 和 ssh 开放)的 EC2 实例

  • 我在上面安装了 nginx,当我转到 EC2 实例的公共 IP 地址时,我看到“Nginx 正在运行!”。

  • 我将 test.mydomain.app 指向了这个新的 EC2 服务器

  • 我在“sites-available”文件夹中创建了一个 test.mydomain.app conf 文件,然后与启用站点的链接。该块的内容如下:

     server {
          server_name test.mydomain.app www.test.mydomain.app;
          location / {
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header Host $http_host;
              proxy_pass "http://XXX.XX.XXX.XXX:3000";
              break;
          }
      }
    

XXX.XX.XXX.XXX 是我现在在本地提供商的测试服务器的公共 IP 地址,我那里的块(本地提供商的 nginx)也是一样的。

那么,为什么来自本地提供商的 nginx 可以很好地将流量路由到测试服务器(也在本地提供商中),但来自 aws 的 nginx 不能将流量路由到同一台服务器?

我收到 ERR_CONNECTION_TIMED_OUT。我尝试了很多方法并得到它连接超时(但有时来自 nginx 响应),仅此而已。 我还尝试显示默认 html 并且效果很好,但我需要将流量重定向到测试服务器。 我还尝试使用 aws lightsail 服务创建 NGINX 服务器,但得到了相同的结果。 无法在 aws 之外路由流量

我不知道这是否与 VPC、网络、nginx 或什么有关。

我会很感激这方面的一些帮助,谢谢。

【问题讨论】:

    标签: amazon-web-services nginx amazon-ec2 reverse-proxy amazon-lightsail


    【解决方案1】:

    三天后我自己解决了。我会把这些步骤留在这里,以防有人需要。

    • 首先,如果您要通过 nginx 将流量路由到外部地址,则需要在命运中打开所需的端口。
    • 其次,您需要(可能)将 proxy_set_header 从 $http_host 更改为 $proxy_host。

    希望对您有所帮助,感谢Lution on this post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      相关资源
      最近更新 更多