Nginx - 停止在子域上强制HTTPS

时间:2014-07-03 21:11:42

标签: http nginx https

我有一个使用nginx运行的网站,其结构是我们有一个负载均衡器,目前只有一个Web服务器(目前没有实际流量,只有一个Web服务器)。

无论如何,在负载均衡器nginx配置中,我们在每个请求上强制使用HTTPS:

server {
    listen 80;
    server_name www.xyz.com xyz.com
    return 301 https://www.xyz.com$request_uri;
}

这很好用,但是现在我想在这个子域 - dev.xyz.com上说#34;允许HTTP也不要做强制"。

首先,server_name参数是"任何",并认为可能是问题,所以我特意输入了上面示例中的名称,当我输入http://www.dev.xyz.com时,我被重定向回https://www.xyz.com

在服务器块下面,我们也有SSL定义:

server {
    listen 443;
    ssl on;
    ssl_certificate     /etc/nginx/ssl/xyz.com.pem;
    ssl_certificate_key /etc/nginx/ssl/xyzPrivateKeyNginx.key;
    keepalive_timeout   70;
    server_name www.xyz.com;
    root /usr/local/nginx/html;
    client_max_body_size 25M;
    client_body_timeout 120s;

    # Add trailing slash if missing
    rewrite ^([^\.]*[^/])$ $1/ permanent;

}

谢谢! :)

1 个答案:

答案 0 :(得分:0)

事实证明解决方案很简单,我只插入了一个简单的重定向:

server {
        listen 80;
        server_name www.dev.xyz.com
        location / {
            proxy_pass http://xxyyzz;
        }
}

xxyyzz在哪里:

upstream xxyyzz{
    ip_hash;
    server 10.100.1.100:80;
}

非常感谢!