У меня есть Universal SSL с CloudFlare. Я хотел настроить постоянное перенаправление SSL на своем Анонимном блоге.
Это было моей исходной конфигурацией. Это работает большое индивидуально использование http://example.com и https://example.com
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name example.com; # Replace with your domain
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 10G;
location / {
proxy_pass http://localhost:2368;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
}
Это - моя предпринятая конфигурация к для перенаправления от HTTP до HTTPS, но это приводит к циклу перенаправления
server {
listen 80 default_server;
server_name example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/cert/example.crt;
ssl_certificate_key /etc/nginx/ssl/private/example.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
server_name example.com; # Replace with your domain
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 10G;
location / {
proxy_pass http://localhost:2368;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
}
Не совсем уверенный, почему его цикличное выполнение.
У меня недостаточно представителей, чтобы добавить комментарий выше, но я также столкнулся с этой проблемой, и единственный способ обойти ее - отключить CloudFlare для конкретной записи DNS, которая очевидно, не идеален.
Исходя из этого, похоже, что это проблема в том, как CloudFlare реализует свой универсальный SSL для записей DNS, для которых уже включен SSL (с перенаправлением с HTTP на HTTPS). Кроме того, похоже, что вы не можете отключить CloudFlare SSL для определенных записей DNS.
Извините, я не могу быть более полезным, но если я найду решение, я обязательно опубликую его здесь.
Вдохновленный ответом Паскаля, я попытался изменить тип соединения между cloudflare и моим сервером с flexible ssl на full ssl . Для меня это работает таким образом.
Оглядываясь назад, это кажется логичным, потому что с гибким ssl поток таков:
Если я включаю полный ssl , перенаправление не выполняется больше не происходит, потому что cloudflare подключается к серверу через ssl.
У меня была та же проблема, и в итоге я установил оба url
и urlSSL
в config.js Ghost. Это не приведет к принудительному использованию SSL, но если пользователь заходит в блог через https, установка этого параметра гарантирует, что вся будущая навигация также будет осуществляться через https.
Раньше, если пользователь щелкнул сообщение в блоге, а затем щелкнул любая другая внутренняя ссылка, эта ссылка будет обслуживаться через http вместе со всеми другими будущими запросами. Установка свойства urlSSL
как минимум устраняет это.
url: http://blog.example.com,
urlSSL: https://blog.example.com
Я только что столкнулся с этой же проблемой на моем экземпляре призрака и немного поговорил об этом здесь :
https://stackoverflow.com/questions/40816988/infinite-redirect-nginx/40817660#40817660
Оказывается, у меня было две проблемы с бесконечным перенаправлением [(┛◉Д◉) ┛ 彡 ┻━ ┻], один с моей конфигурацией сервера, а другой с моей конфигурацией облачной вспышки.
Чтобы использовать SSL с облачной вспышкой, вам необходимо:
Поскольку вы ссылаетесь на проход прокси с портом 2368 в вашем vHost, кажется логично, что у вас тоже может быть призрак. (Я понимаю, что это не единственное программное обеспечение, работающее на этом порту.)
config.js
и убедитесь, что url:
указывает на http
] и , а не https
.