添加另一个Django站点会破坏现有的SSL Django站点

时间:2016-06-12 12:12:34

标签: django ssl nginx

我有:

  • Debian虚拟服务器
  • Nginx的
  • 提供静态网站
  • 提供非SSL Django网站
  • 提供SSL Django网站

我尝试使用现有配置文件作为模板添加新的Django站点(WR)。 WR工作但现有的SSL站点(TC)在添加符号链接并重新启动Nginx时会出现SSL错误。

我无法理解为什么它会破坏TC并想知道是否有人可以提供帮助?

删除WR配置文件的链接并重新启动Nginx修复TC。

添加基本的Nginx配置文件来为WR提供静态页面不会破坏TC。

在TC转换为SSL之前设置的同一服务器上的另一个非SSL Django站点(HO)继续工作。

我检查并三重检查了服务WR所需的各种配置文件,但无法解决为什么激活它会破坏TC。

有什么想法吗?

thinkingcomputing.com(TC)Nginx config

m1(int)

westraven.co.uk(WR)Nginx配置:

upstream tc_app_server {
  server unix:/path/to/venv/run/gunicorn.sock fail_timeout=0;
}

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

server {
    listen 443 ssl;
    ssl_certificate /path/to/ssl.crt;
    ssl_certificate_key /path/to/key.key;

    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 180m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

    server_name thinkingcomputing.com;
    return 301 https://www.thinkingcomputing.com$request_uri;

}

server {
    listen 443 ssl;

    ssl_certificate /path/to/ssl.crt;
    ssl_certificate_key /path/to/key.key;

    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 180m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

    server_name www.thinkingcomputing.com;

    client_max_body_size 4G;
#
# ACCESS LOG PATHS AND FILE LOCATIONS REMOVED
#
    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        if (!-f $request_filename) {
            proxy_pass http://tc_app_server;
            break;
        }
    }
#
# ERROR PAGE LOCATIONS
#
}

1 个答案:

答案 0 :(得分:0)

现在似乎很明显,但问题似乎与WR有关,并且首先捕获应该已经被TC配置捕获的443 SSL请求。

我删除了'听443 ssl'来自WR,现在一切似乎都在起作用。接下来要查看的是Nginx是否可以在同一台服务器上处理多个SSL站点,以防我希望将来升级westraven.co.uk。