Django с uwsgi + nginx, обслуживающей http, но как только я добавлю, слушай 443 и включай ssl;больше не работает - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь запустить свой сайт, и он отлично работает на http, но когда я использую ssl-сертификаты и https, я добавляю listen 443 и ssl в /etc/nginx/sites-available/drlandivar.conf там говоритсянебезопасное соединение.

(его 3 домена, указывающие на один проект)

вот мой /etc/nginx/sites-available/drlandivar.conf

    upstream django {
    server 0.0.0.0:8080;
}

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

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


server {
    listen 443;
    server_name drlandivar.com www.drlandivar.com;
    charset     utf-8;

    client_max_body_size 75M;   # adjust to taste

    ssl on;
    ssl_certificate /etc/nginx/ssl/drlandivar.com/server.crt;
    ssl_certificate_key /etc/nginx/ssl/drlandivar.com/server.key;

    location /media  {
        alias /opt/virtualenv/landivarpj/media;  
    }

    location /static {
        alias /opt/virtualenv/landivarpj/static; 
    }

    location / {
    include /opt/virtualenv/landivarpj/uwsgi_params;
    proxy_pass https://django;
    proxy_redirect off;
    include proxy_params;
    }
}

server {
    listen 443;
    server_name doutorlandivar.com www.doutorlandivar.com;
    charset     utf-8;

    client_max_body_size 75M;   # adjust to taste

    ssl on;
    ssl_certificate /etc/nginx/ssl/doutorlandivar.com/server.crt;
    ssl_certificate_key /etc/nginx/ssl/doutorlandivar.com/server.key;

    location /media  {
        alias /opt/virtualenv/landivarpj/media;  
    }

    location /static {
        alias /opt/virtualenv/landivarpj/static; 
    }

    location / {
    include /opt/virtualenv/landivarpj/uwsgi_params;
    proxy_pass https://django;
    proxy_redirect off;
    include proxy_params;
    }
}


server {
    listen 443;
    server_name doctorlandivar.com www.doctorlandivar.com;
    charset     utf-8;

    client_max_body_size 75M;   # adjust to taste

    ssl on;
    ssl_certificate /etc/nginx/ssl/doctorlandivar.com/server.crt;
    ssl_certificate_key /etc/nginx/ssl/doctorlandivar.com/server.key;

    location /media  {
        alias /opt/virtualenv/landivarpj/media;  
    }

    location /static {
        alias /opt/virtualenv/landivarpj/static; 
    }

    location / {
    include /opt/virtualenv/landivarpj/uwsgi_params;
    proxy_pass https://django;
    proxy_redirect off;
    include proxy_params;
    }
}

мой/ etc / nginx / proxy_params

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;

в моем проекте django у меня в настройках:

SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

Я считаю, что что-то не так в proxy_params или в proxy_pass https://django;

С уважением

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

проблема была на самом деле с моим ssl-сертификатом, они сами подписались, и firefox их не принимал, а новый ssl с помощью функции encrypt фактически решил мою проблему

0 голосов
/ 25 октября 2018

proxy_pass https://django; # Этот параметр может быть неправильным.

В обычном сервисе uwsgi с протоколом uwsgi, вы можете использовать uwsgi_pass, и один сервер не нуждается в восходящем, протокол восходящего потока может быть неправильным, Это, конечно, не https.

Ваш порядок установки URL тоже неверный, порядок совпадения URL nginx обратный.У меня плохой английский, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...