【问题标题】:nginx and DNS subdomain, too many redirectsnginx 和 DNS 子域,重定向太多
【发布时间】:2016-06-26 20:47:24
【问题描述】:

我刚刚安装了 nginx 并将其设置为在 apache 安装上工作。事实上,我的规则是:

server {
    listen 80;

    server_name example.com;

   location / {
       proxy_set_header X-Readl-IP $remote_addr;
       proxy_set_header X-Forwarded-For $remote_addr;
       proxy_set_header Host $host;
       proxy_pass http://example.com:8080;
   }

   location ~ /\.ht {
       deny all;
   }
}

我想通过以下方式配置子域:

server {
   listen 80;
   server_name sub.example.com;

    location / {
        proxy_pass http://example.com:8080/sub;
    }

    location ~/\.ht {
        deny all;
    }
}

然后像这样配置我的 DNS:

NAME     |     TYPE     |     TARGET
//empty         A           45.23.67.89
 sub           CNAME        example.com

我等待传播,但我在 chrome 中收到“太多重定向”...

响应总是 301,并重定向到 IP:80,我猜这是由于 DNS 中的 A 行引起的...但是 domain.com 确实重定向到 apache,我确实得到了“它工作”我们都知道这么好......

谁能指出我正确的方向?

谢谢!

更新

我添加了另一个子域,子子,遵循完全相同的程序,但它神奇地工作......需要帮助!

【问题讨论】:

    标签: apache nginx web subdomain


    【解决方案1】:

    ProxyRequests off 
    ProxyPass / http://127.0.0.1:2368/ 
    ProxyPassReverse / http:/127.0.0.1:2368/               
    </VirtualHost>
    

    此配置取自 Apache2,不确定这是否适用于 Nginx,但这在 Apache2 上修复了它。显然改变了本地主机的端口。该配置适用于 Ghost 博客。

    这会将访问者重定向到特定端口,如果您启用了 HTTPS 或 SSL 并且它收到了太多重定向请求,这很好。您可以将端口设置为 443(SSL 端口)。

    【讨论】:

      【解决方案2】:

      好的解决了,

      我在 proxy_pass 指令中添加了标头并且它起作用了

      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      

      但是,它仍然在 url 末尾添加了一个斜杠 (/),这意味着当我转到 sub.example.com 时,我得到 sub.exmaple.com//

      【讨论】:

        猜你喜欢
        • 2018-10-07
        • 2015-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-12
        • 2021-11-28
        • 2022-11-18
        • 2020-11-28
        相关资源
        最近更新 更多