Добавление SSL (PORT 443) на обратный прокси-сервер Nginx (PORT 80) - Файл конфигурации Nginx - PullRequest
0 голосов
/ 15 ноября 2018

Используя Ubuntu, я сгенерировал SSL, используя Certbot.Это автоматически обновило мой файл конфигурации Nginx и добавило дополнительный порт прослушивания.Я обеспокоен, нужно ли мне прослушивать только один PORT (80 или 443), а не оба, но я не могу найти соответствующую информацию о том, нужно ли мне прослушивать PORT 80. Пожалуйста, смотрите мой файл конфигурации ниже:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    server_name _;

    location / {
        proxy_pass http://localhost:3001;
        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;
    }
}

server {
    root /var/www/html;

    location / {
        try_files $uri $uri/ =404;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/my.domain.co.uk/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my.domain.co.uk/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = my.domain.co.uk) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 ;
    listen [::]:80 ;
    server_name my.domain.co.uk;
    return 404; # managed by Certbot
}

Теперь, когда Certbot добавил код в отдельный блок сервера, нужно ли мне удалять, где мой первоначальный блок сервера прослушивает порт 80?У меня была проблема со старым сервером, который зависал всю ночь, когда он использовался, и я чувствую, что это было что-то, связанное с файлом конфигурации Nginx, который был похож на это.

Извините, если этот вопрос глуп, я не оченьопыт с этим и найти это чрезвычайно сложно, к сожалению.Спасибо за понимание.

1 Ответ

0 голосов
/ 15 ноября 2018

Вы не указали именно то, что хотели (например, какое приложение должно обслуживать запросы на какие порты и что следует делать с HTTP-запросами), но я предполагаю, что

  1. Все запросы порта 80 являются HTTPи все 443 запроса являются HTTPS.
  2. Вы хотите, чтобы все HTTP-запросы были перенаправлены на HTTPS
  3. Все HTTPS-запросы должны передаваться на узел

Если это так, то это, вероятно, то, что вы действительно хотите:

server {
    root /var/www/html;
    server_name my.domain.co.uk;

    location / {
        proxy_pass http://localhost:3001;
        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;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/my.domain.co.uk/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my.domain.co.uk/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = my.domain.co.uk) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80 ;
    listen [::]:80 ;
    server_name my.domain.co.uk;
    return 404; # managed by Certbot
}

Первый блок сервера обрабатывает только HTTPS-запросы и передает все запросы на узел.Второй блок сервера обрабатывает только HTTP-запросы и перенаправляет их на HTTPS.

...