nginx和DNS子域,重定向太多

时间:2016-03-11 14:45:32

标签: apache nginx web subdomain

我刚刚安装了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,我确实得到了“它工作“我们都很清楚......

有人能指出我正确的方向吗?

谢谢!

更新

我在完全相同的程序后添加了另一个subdowmain,sub-sub,但它神奇地起作用......需要帮助!

2 个答案:

答案 0 :(得分:0)

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

这个配置来自Apache2,不确定这是否可以在Nginx上运行,但是这可以在Apache2上修复它。显然改变了localhost的端口。该配置适用于Ghost Blog。

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

答案 1 :(得分:0)

好的解决了,

我在proxy_pass指令中添加了标题,并且它正常工作

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

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