【问题标题】:nginx redirect from aws public subnet to private subnet not workingnginx从aws公共子网重定向到私有子网不起作用
【发布时间】:2018-11-16 02:22:31
【问题描述】:

我有一个设置了公有和私有子网的 Amazon Web Services VPC。我在公共子网上有一个 nginx 服务器接收 DNS 请求。但是,我想将这些请求重定向到私有子网网络服务器。我使用 curl 测试了从 nginx 机器到私有子网机器的私有 IP(不可公开路由)的 AWS/VPC 路由。卷曲返回预期结果。但是,当我让 nginx 返回 301 到相同的私有 IP 时,结果是搜索引擎结果,好像重定向发生在路由表规则之外并且未被识别为有效地址。是否有我缺少的 nginx 配置?

【问题讨论】:

    标签: redirect amazon-web-services nginx vpc


    【解决方案1】:

    是的 - 请记住,“重定向”将使用 301 或 302 代码以及要访问的新地址响应客户端浏览器。如果地址不可公开路由,则会失败,因为请求重定向地址的是浏览器,而不是代理服务器(nginx)。为了证明这一点,如果你将你的 nginx 设置为重定向到http://www.yahoo.com,它会很好地工作。

    相反,您应该使用 nginx 的 proxy capabilities - 这意味着 nginx 接收请求,将它们传递给代理服务器,从中检索响应,然后将它们发送给客户端。

    最基本的实现是在你的 nginx 配置文件中的 server 指令中创建一个 location 指令:

    location / {
        proxy_pass http://10.0.0.5/;
    }
    

    这会将所有对公共 IP 的请求传递到私有 IP。当然,您可以使用请求/响应标头、资源等做很多事情。一个好的起点可能是Setting Up a Simple Proxy ServerThis link 也有更多的配置选项,是一个很好的例子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2021-11-08
      • 2018-07-24
      • 1970-01-01
      相关资源
      最近更新 更多