Рейтинг:0

Неправильно настроен Nginx?

флаг es

Когда я захожу на свой сайт WordPress, он автоматически перенаправляется на https.

Однако я получаю большой TTFB, и я полагаю, что это может быть связано с ошибкой базовой конфигурации.

На данный момент у меня есть следующая конфигурация (HTTPS все еще как-то работает, чего я не понимаю)

сервер {
    слушать 8080 ;
    слушать [::]:8080 ;

    port_in_redirect выключен;
    абсолютная_переадресация выключена;
...

Если я сделаю следующее обновление

сервер {
    слушать 443 ssl;
    слушать [::]:443 ssl ;

    port_in_redirect выключен;
    абсолютная_переадресация выключена;

Сайт больше не доступен.

Как работает SSL, когда сервер прослушивает 8080? у меня в конфиге нет 301

РЕДАКТИРОВАТЬ: Полная конфигурация - эта версия ниже каким-то образом правильно перенаправляет весь трафик на https://


сервер {
    слушать 8080 ;
    слушать [::]:8080 ;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; предварительная загрузка";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-защита "1; режим = блок";

    large_client_header_buffers 4 64 КБ;
    proxy_max_temp_file_size 0;

    корень /дом/сайт/wwwroot;
    индекс index.php index.html index.htm;
    имя_сервера domain.co.uk www.domain.co.uk;

    доступ_лог выключен;
    ошибка_журнала выключена;

    port_in_redirect выключен;
    абсолютная_переадресация выключена;

    место расположения / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    # перенаправить страницы ошибок сервера на статическую страницу /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    местоположение = /50x.html {
        корень /html/;
    }

    gzip включен;

    gzip_vary включен;
    gzip_proxy любой;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_версия 1.1;
    gzip_types image/svg+xml image/x-icon text/plain text/html text/xml text/css text/javascript application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x -font-ttf application/vnd.ms-fontobject font/opentype font/ttf font/eot font/otf image/vnd.microsoft.icon;

    расположение ~* \.(eot|ttf|woff|woff2|веб-манифест)$ {
       add_header Access-Control-Allow-Origin *;
    }

    location ~* \.(css|js|ico|gif|jpeg|jpg|webp|png|svg|eot|otf|woff|woff2|ttf|ogg)$ {
       истекает макс.;
    }

    расположение ~ [^/]\.php(/|$) {

        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        fastcgi_pass 127.0.0.1:9000;
        включить fastcgi_params;
        fastcgi_param HTTP_PROXY "";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_intercept_errors включен;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 3600;
        fastcgi_read_timeout 3600;
        fastcgi_buffer_size 128 КБ;
        fastcgi_buffers 4 256 КБ;
        fastcgi_busy_buffers_size 256 КБ;
        fastcgi_temp_file_write_size 256 КБ;
    }
}

Nikita Kipriyanov avatar
флаг za
В первом случае не упоминается `ssl`. Так что в лучшем случае он работал в текстовом режиме. Для работы во втором случае вам также необходимо указать закрытый ключ и цепочку сертификатов (в сообщении нет указания, что они у вас есть). И, пожалуйста, покажите сообщения Nginx при запуске и вывод `ss -lnpt` после запуска (если он прошел успешно) во втором случае.
флаг us
Пожалуйста, добавьте вывод `nginx -T` к вопросу, чтобы мы могли увидеть полную конфигурацию nginx.
Рейтинг:0
флаг za

В порту 8080 он просыпался без SSL, обычным текстом. Для добавления SSL недостаточно просто изменить слушать 8080 в слушать 443 SSL. Вам также необходимо как минимум добавить строки, которые указывают цепочку сертификатов и закрытый ключ сервера:

слушать [::]:443 ssl;
слушать 443 ssl;
ssl_certificate /путь/к/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;

Полная цепочка — это простая конкатенация всех сертификатов в формате PEM (это текстовые файлы с данными в кодировке Base64 внутри), первый сертификат — это сертификат вашего сервера, соответствующий закрытому ключу, затем его непосредственный выдавший CA и так далее, вплоть до но не включая корневой ЦС.

Если в сертификате несколько имен (в современных сертификатах всегда используется SubjectAlternativeNames который позволяет указать более одного доменного имени), вы можете указать их в имя сервера вариант. Вы можете указать только имена серверов, которые существуют в поле SAN сертификата, но вы не обязаны использовать их все.(Если вы укажете в поле SAN что-либо, кроме существующего, ваш клиент покажет ошибку SSL-сертификата о том, что он не принадлежит домену, когда они получат доступ к вашему серверу по этому имени.) В вашем случае сертификат должен быть действительным. по крайней мере для обоих домен.co.uk и www.домен.co.uk.

Видеть Руководство Nginx HTTPS для деталей. Если вы используете certbot (клиент ACME) с плагином установки nginx для получения сертификата, он настроит все автоматически. Если вы получаете сертификаты «вручную», вам также необходимо добавить эти параметры конфигурации вручную.

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.