NGINX + Apache + SSL

Как именно настроить связку Nginx + Apache + PHP написано уже огромное количество статей. Моя же статья-заметка затрагивает одну небольшой, но довольно важный вопрос. Дело в том, что если нужно настроить сайт, который работает по протоколу HTTPS, то и статика (картинки, JS скрипты, CSS и т.д.) должны отдаваться через HTTPS. Это значит, что отдавать их должен Nginx. А это условие в свою очередь является причиной того, что виртуальные хосты сайта или сайтов должны быть прописаны в Nginx.

Так как протокол Nginx будет обслуживать протокол HTTPS, то Apache и PHP не будут знать, что сайт работает по https://

Когда виртуальный хост настроен через Apache, то в глобальной переменной $_SERVER будет существовать переменная $_SERVER[‘HTTPS’] равная ‘on’.

Именно по наличию этого параметра некоторые скрипты «узнают», что сайт работает по защищенному протоколу.

Для начала в область server {} в настройках виртуального хоста в Nginx нужно добавить

А затем, чтобы Apache узнал и передал PHP, что сайт работает по HTTPS в глобальный конфиг апача или в настройку виртуального хоста в апаче нужно добавить одну строку «SetEnvIf X-Forwarded-Proto https HTTPS=on»

Чтобы это условие работало, у Apache должен быть установлен и включен модуль setenvif


Если Вам интересны темы, про которые я пишу в своем блоге, то Вы можете Подписаться на обновления. Подписываться на новости и обновления можно по емайл или через популярные сервисы yandex и google!

Эта запись была опубликована в рубрике Всяко-разно и отмечена метками , . Добавить в закладки ссылку.

Добавить комментарий