Настраивал сегодня очередной web сервер с внешним балансировщиком на базе nginx и столкнулся с небольшой ошибкой в phpmyadmin. Панель была русская, текст ошибки соответственно тоже русский. В рунете решения не нашел, поэтому решил им поделиться с остальными.
Проблема вот в чем. Имеется сервер с nginx, работающий в режиме proxy_pass, как описано в статье. На этом сервере настроены https соединения с клиентами. А дальше запросы проксируются на бэкенд по http. На этом бэкенде работает в том числе phpmyadmin на отдельном домене. При входе в панель появляется ошибка.
Существует несоответствие между HTTPS, указанным на сервере и клиенте. Это может привести к неработоспособному phpMyAdmin или угрозе безопасности. Исправьте конфигурацию своего сервера, чтобы правильно указать HTTPS.
Суть проблемы в том, что где-то в недрах phpmyadmin есть проверка, которая определяет, что с клиентом общаемся по https, а где-то в промежутке между ним проскакивает http. Если залогиниться в панель, то дальше она работает нормально. По большому счету, это не ошибка, а простое предупреждение. Но мне оно не нравится.
Я не разбирался подробно, что там за проверки и как их отключить. Вместо этого просто обманул phpmyadmin, добавив на прокси заголовок, который принудительно записывает туда информацию о том, что протокол общения https. Выглядит это вот так.
location / { proxy_pass http://10.20.50.3:80; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; }
После этого ошибка исчезла.
Онлайн курс по Linux
Если вы хотите стать специалистом по отказоустойчивым виртуальным и кластерным средам, рекомендую познакомиться с онлайн-курсом Администратор Linux. Виртуализация и кластеризация в OTUS. Курс не для новичков, для поступления нужны хорошие знания по Linux. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:- Умение строить отказоустойчивые кластера виртуализации для запуска современных сервисов, рассчитанных под высокую нагрузку.
- Будете разбираться в современных технологиях кластеризации, оркестрации и виртуализации.
- Научитесь выбирать технологии для построения отказоустойчивых систем под высокую нагрузку.
- Практические навыки внедрения виртуализации KVM, oVirt, Xen.
- Кластеризация сервисов на базе pacemaker,k8s, nomad и построение дисковых кластеров на базе ceph, glaster, linstore.