У нас есть Varnish в качестве балансировщика нагрузки и кеш обратного прокси для обычного HTTP-трафика. Для HTTPS-трафика мы используем прокси-сервер Pound, чтобы развернуть SSL и перенаправить на Varnish, который затем перенаправляет на внутренние серверы. Это используется в нашем процессе «оформления заказа» для шифрования информации о кредитной карте при переходе. Однако на последнем этапе оформления заказа пользователи всегда получают ошибку HTTP 500 (внутренний сервер). Судя по всем тестам, которые я пробовал, это не связано с нашим внутренним сервером приложений. Кто-нибудь знает что-нибудь о том, как работает этот переход - переход от HTTPS к HTTP и взаимодействие между Pound и Varnish - и почему он может вызвать 500 ошибок?
Что показывает журнал фунтов, когда вы получаете 500?
Используете ли вы файлы cookie для оформления заказа и знаете, сколько данных сохраняется в файле cookie? Можете ли вы проверить, усекается ли cookie, когда вы получаете 500, потому что фунт строго относится к максимально допустимый размер файлов cookie, хотя это значение менялось в зависимости от версии фунта. Вы можете легко проверить размер файлов cookie, просто не используя прокси.
Первое, что нужно сделать, это проверить, видит ли Varnish 500. Если это так, то это либо ошибка Varnish, либо ошибка вашего бэкэнда. Если это не так, вы можете сосредоточиться на устранении неполадок Pound.
Чтобы увидеть, что делает Varnish, когда вы набираете 500, используйте varnishlog:
varnishlog -co TxStatus 500