Редирект HTTP на HTTPS в Nginx

В этой статье я приведу пример настройки постоянной переадресации http запросов на https.

Для удобства можно использовать один файл для настройки каждого сайта, на примере возьму поддомен test.ixnfo.com, то есть в начале каждого файла описываем http:

server {
    listen 80;
    #listen [::]:80;
    server_name test.ixnfo.com;
    return 301 https://$server_name:443$request_uri;
}

В общем это выглядит примерно так:

server {
    listen 80;
    #listen [::]:80;
    server_name test.ixnfo.com;
    return 301 https://$server_name:443$request_uri;
}

server {
   listen 443 ssl;
   #listen [::]:443 ssl;
   root /var/www/test;
   index index.php;
   access_log /var/log/nginx/test_access.log;
   error_log /var/log/nginx/test_error.log;
   server_name test.ixnfo.com;

   ssl_certificate ...
   ...

Либо можно создать только один файл для http и переадресовать запросы всех сайтов:

server {
    listen 80;
    #listen [::]:80;
    server_name _;
    return 301 https://$host$request_uri;
}

Также можно создать файл конфигурации /etc/nginx/sites-enabled/ip.conf, для редиректа http и https запросов на конкретный домен, если вдруг кто-то откроет в браузере IP адрес сервера, например:

server {
    listen 80;
    #listen [::]:80;
    server_name 192.168.2.2;
    return 301 https://test.ixnfo.com:443$request_uri;
}

server {
    listen 443 ssl;
    #listen [::]:443 ssl;
    server_name 192.168.2.2;
    return 301 https://test.ixnfo.com:443$request_uri;
}

Смотрите также мои статьи:
Как отключить TLS 1.0 и TLS 1.1 в Nginx
Установка и настройка Nginx

Оставьте комментарий

Добавить комментарий