Настройка HTTPS перенаправления не удается - PullRequest
0 голосов
/ 13 февраля 2020

Я размещаю Django приложение на digitalocean. Я следую этому руководству и заканчиваю sh сертификацией SSL. После этого урока я не знаю, где добавить эту строку кода:

return 301 https://$server_name$request_uri;

Я пытался добавить его в /etc/nginx/sites-enabled/leptitox_pro

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

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/leptitoxadmin/pyapps/Leptitox;
    }

    location /media/ {
        root /home/leptitoxadmin/pyapps/Leptitox;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

, когда он не работал, я добавил он в /etc/nginx/sites-available/leptitox_pro

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

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/leptitoxadmin/pyapps/Leptitox;
    }

    location /media/ {
        root /home/leptitoxadmin/pyapps/Leptitox;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

там тоже не работал, поэтому я добавил под блоком сервера код в /etc/nginx/nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
        server {                                           # new
          listen 80;                                       # new
          server_name yahkut.com;                          # new
          return 301 https://$server_name$request_uri;     # new
        }

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
}

Затем я перезапустил ngnix и запустить nginx -t и получить сообщение об успехе, и когда я запустил веб-сайт, я получаю либо 404 not found, либо небезопасную версию веб-сайта. Пожалуйста, помогите мне с этим. Спасибо

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Добавьте эти блоки сервера.

Это для перенаправления http на https

server {
   listen 80;
   server_name example.com; 
   location / {
          return 301 https://$host$request_uri;
   }
}

Ваш основной блок с ssl

server {
    listen 443 ssl ;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  
    index index.html index.htm index.nginx-debian.html;
    server_name example.com; 
    location / {
    proxy_pass http://localhost:5003; // Your port goes here
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}
}

Это идет в / nginx / sites-enabled / default или вы можете создайте для нее разные файлы

0 голосов
/ 13 февраля 2020

Вы должны разделить серверный блок с портом 80 и серверный блок с портом 443 (SSL). Просто так:

server {
    listen 80;
    server_name 68.183.203.33 yahkut.com www.yahkut.com;
    return 301 https://$server_name$request_uri;
    # Stop here, it's will be redirect to HTTPS. There's no left to execute
}

server {
    listen 443 ssl;
    server_name yahkut.com www.yahkut.com;
    ssl_certificate /path/to/certificate/your_domain_chain.crt;
    ssl_certificate_key /path/to/your_private.key;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/leptitoxadmin/pyapps/Leptitox;
    }

    location /media/ {
        root /home/leptitoxadmin/pyapps/Leptitox;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...