【问题标题】:Nginx - Stop forcing HTTPS on subdomainNginx - 停止在子域上强制使用 HTTPS
【发布时间】:2014-08-25 03:32:34
【问题描述】:

我有一个使用 nginx 运行的网站,其结构中我们有一个负载均衡器,目前只有一个网络服务器在它后面(目前没有真正的流量,所以只有一个网络服务器)。

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

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

这很好用,但现在我想说“在这个子域 - dev.xyz.com 上,也允许 HTTP 并且不要强制执行”。

起初,server_name 参数是“any”,我认为这可能是问题所在,所以我专门输入了上面示例中的名称,当我输入 http://www.dev.xyz.com 时,我被重定向回 @987654322 @。

在服务器块下面,我们也有 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;

}

谢谢! :)

【问题讨论】:

    标签: http nginx https


    【解决方案1】:

    原来解决方案很简单,我只插入了一个简单的重定向:

    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;
    }
    

    还是谢谢!

    【讨论】:

      猜你喜欢
      • 2014-08-15
      • 2014-01-20
      • 1970-01-01
      • 2012-01-01
      • 2021-12-04
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多