Лак выбрасывает 503 ошибки, когда есть здоровый бэкэнд
Я настроил свой веб-сервер с Passenger, который обслуживает приложение Rails через Nginx. Я хотел бы поставить Varnish перед Nginx для кэширования веб-страниц, поскольку Passenger не торопится с созданием страниц.
Я скомпилировал Varnish и запустил его командой
varnishd -a [внешний IP удален]:80 -b 127.0.0.1:443 -F
Однако при посещении внешнего IP-адреса меня встретили страницей 503 и кодом "медитации гуру" (XID: 741199024).
Не знаю, что это значит, но, думаю, я настроил это неправильно.
У кого-нибудь есть идеи, где я ошибся?
Большое спасибо за ваше время, это очень ценится!
Люк Карпентер
2 ответа
Вы знаете, что Varnish НЕ работает с HTTPS? Я не уверен, что ты пытаешься сделать, но твой сервер слушает 443, что немного странно.
Если ваш трафик SSL, вам, вероятно, понадобится что-то вроде nginx(ssl)-varnish(nossl)-nginx(nossl)-passenger. Эта настройка не является чем-то необычным, и вы можете использовать тот же nginx.
503 обычно означает, что сервер не ответил достаточно быстро, или соединение закрылось, когда он попытался выполнить запрос. Вы можете изменить таймер отсрочки (если бэкэнд был отключен / отказано в соединении), изменить время ожидания ответа бэкэнда или изменить несколько других настроек в зависимости от того, почему вы получили 503.
Запуск varnishlog (конвейер / машинопись) и просмотр этих запросов может сказать вам, почему что-то произошло. Вы можете указать IP-адрес для просмотра, поэтому вам не нужно видеть весь трафик, только трафик с вашего IP.