Настройка X-Forwarded-Port
в Лак.См. этот пример и другие результаты поиска Google для " varnish x-forwarded-port ".
Вы, конечно, также должны настроить X-Forwarded-For
и X-Forwarded-Proto
.
Заголовки X-Forwarded-For
, X-Forwarded-Proto
и X-Forwarded-Port
- это способ, с помощью которого обратные прокси-серверы HTTP, такие как Nginx, Squid или Varnish, могут общаться с-end "сервер приложений HTTP, ваше приложение Rails, работающее в Thin или Unicorn, кто этот пользователь на самом деле и как пользователь фактически подключился.
Например, предположим, что у вас есть Nginx перед вашим приложением Rails.Ваше Rails-приложение загружено с Thin и прослушивает 127.0.0.1:8080, в то время как Nginx прослушивает 0.0.0.0:80 для HTTP и 0.0.0.0:443 для HTTPS.Nginx настроен для прокси всех подключений к приложению Rails.Тогда ваше Rails-приложение будет думать, что IP-адрес любого пользователя 127.0.0.1
, порт 8080
и схема http
, даже если реальный пользователь подключился с 1.2.3.4
и запросил страницу через https
напорт 443
.Решение состоит в том, чтобы настроить Nginx для установки заголовков:
X-Forwarded-For: 1.2.3.4
X-Forwarded-Scheme: https
X-Forwarded-Port: 443
, и приложение Rails должно использовать эти параметры вместо значений по умолчанию.
То же самое относится к любому используемому вами обратному прокси,например лак в вашем случае.