Nginx HTTP для HTTPS перенаправления работает только на одном имя_сервера? - PullRequest
0 голосов
/ 03 ноября 2018

Я пытался получить перенаправление http на https через nginx большую часть дня, и это была борьба. Я проверил несколько вопросов о стековом потоке и ряд статей в Интернете. Наконец-то я получил перенаправление http на https, но только для прямого IP-адреса, а не для домена, который я пытаюсь использовать.

Другими словами, http://12.345.67.890 перенаправляет на https://app.example.com,, но http://app.example.com не перенаправляет на https://app.example.com.

Это ожидается? Что я здесь не понимаю?

Файл конфигурации моего сайта

upstream appupstream {
    server 0.0.0.0:3555;
}

server {
    error_log /var/log/nginx/error.log warn;
    listen [::]:80;
    listen 80;
    server_name app.example.com 12.345.67.890;
    return 301 https://$server_name$request_uri;
    access_log /var/log/nginx/access.log;

    root /home/ec2-user/app/public;

    proxy_set_header X-Forwarded-Proto $scheme;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass https://appupstream;
    }
}

Когда я скручиваю эти сайты, заголовки, кажется, поддерживают то, что я вижу в моих браузерах:

Результаты IP curl

$ curl -I -L http://12.345.67.890
HTTP/1.1 301 Moved Permanently  // <-- Note the permanent redirect on the ip
Server: nginx/1.12.1
Date: Sat, 03 Nov 2018 19:30:10 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://app.example.com/

HTTP/2 200
date: Sat, 03 Nov 2018 19:30:10 GMT
content-type: text/html; charset=utf-8
content-length: 4856
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
strict-transport-security: max-age=15778476; includeSubDomains
p3p: ABCDEF

Результаты скручивания домена

$ curl -I -L http://app.example.com
HTTP/1.1 200 OK                     // <-- No permanent redirect on domain
Date: Sat, 03 Nov 2018 19:30:39 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 4856
Connection: keep-alive
X-FRAME-OPTIONS: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
Strict-Transport-Security: max-age=15778476; includeSubDomains
P3P: ABCDEF

Я успешно выполнил nginx -t, и я использовал nginx reload и nginx restart каждый раз, когда обновлял файл. Я удалил ВСЕ данные о просмотре (файлы cookie и т. Д.) И повторно посетил, но это поведение сохраняется Будем весьма благодарны за любые предложения / рекомендации!

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