У меня есть старое приложение rails 2.3, которое я сейчас перехожу в nginx + Passenger (из Apache + Passenger). Nginx настроен для SSL и, кажется, работает правильно, за исключением того, что я получаю застревание в 302-цикле перенаправления из моего приложения Rails.Слишком много переадресаций: пассажир + nginx SSLRequirement
Приложение rails считает, что запросы не являются ssl (request.ssl? Должно оцениваться как false). В production.log каждая запись в журнале показывает запрос как http. Если я отключу плагин SSLRequirement, тогда цикл перенаправления исчезнет. Тем не менее, я хотел бы убедиться, что мое приложение rails обнаруживает запрос https, чтобы он мог правильно настроить протокол при создании абсолютных URL-адресов.
Единственная причина, по которой я упоминаю предыдущую настройку Apache + Passenger, заключается в том, что плагин SSLRequirement функционировал должным образом в этой конфигурации.
Nginx конфигурации для моего виртуального хоста выглядит следующим образом:
server {
listen 443 ssl;
server_name new.example.com;
root /home/user/railsapps/example-setup/public;
passenger_enabled on;
ssl_certificate /etc/nginx/ssl/2013/example.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/2013/example.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
}
Это не связано на ваш вопрос, но вы, похоже, не устанавливаете ни один из стандартных заголовков прокси-серверов, например «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;" Невозможность их установки может вызвать «захватывающее» поведение. – Danack