jeno
Новичок
Nginx SSL + Apache непонятки
Добрый вечер.
Вот пытаюсь подружить nginx+SSL > Apache...столкнулся с непоняткой в РНР
Раньше я использовал Apache+mod_ssl и все были довольны) а вот теперь надо использовать nginx+SSL > Apache =\\
проблем вот в чем:
проксирование и SSL в nginx я настроил...
получается мы подключаемся к серверу по HTTPS (443 порт), в это время nginx проксирует на Apache (на 80 порт), получает результат от Apache, и отдает нам по https =) все вроде бы четко работает....вот только один неприятный момент (( на сайтах которые работают в этом Apache присутствует такой вот РНР код:
и получается так что в принципе, мы то заходим по https (это организовано в nginx), ну а потом nginx по обычному http связывается с Apache, и соответственно apache даже не знает что мы по https счас работаем )
вот ломаю голову как решить эту проблему (((
самый плохой вариант, это я могу, когда nginx запрашивает контент у apache, в конец URL добавлять что-то вроде "?this_is_ssl_session=1"
получиться, что когда человек заходит на сайт по https, то apache будет в конце каждого URL получать эту переменную...ну тогда надо переписать все сайты в которых есть if($_SERVER['HTTPS']!="on") =( и способ мягко говоря, не универсальный...
так же можно настроить SSL и в Apache, и проксировать 443 порт с nginx на 443 порт Apache...но мне кажется что это извращение, и работать не должно(
так же я пробовал настраивать apache, чтоб он слушал 443 порт просто как http, но Apache не глупый, и пишет "Это 443 порт для https, а вы его пытаетесь использовать как простой http! ошибка!"
ну и еще один вариант писать модуль для Apache, который будет получать от nginx какой-то хедер, или ключ в URL, и устанавливать $_SERVER['HTTPS'] в on
----
как вы думаете, какие еще могут быть варианты?
Добрый вечер.
Вот пытаюсь подружить nginx+SSL > Apache...столкнулся с непоняткой в РНР
Раньше я использовал Apache+mod_ssl и все были довольны) а вот теперь надо использовать nginx+SSL > Apache =\\
проблем вот в чем:
проксирование и SSL в nginx я настроил...
получается мы подключаемся к серверу по HTTPS (443 порт), в это время nginx проксирует на Apache (на 80 порт), получает результат от Apache, и отдает нам по https =) все вроде бы четко работает....вот только один неприятный момент (( на сайтах которые работают в этом Apache присутствует такой вот РНР код:
PHP:
if($_SERVER['HTTPS']!="on"){ header("...тут перенаправление на этот же УРЛ только по https..."); }
вот ломаю голову как решить эту проблему (((
самый плохой вариант, это я могу, когда nginx запрашивает контент у apache, в конец URL добавлять что-то вроде "?this_is_ssl_session=1"
получиться, что когда человек заходит на сайт по https, то apache будет в конце каждого URL получать эту переменную...ну тогда надо переписать все сайты в которых есть if($_SERVER['HTTPS']!="on") =( и способ мягко говоря, не универсальный...
так же можно настроить SSL и в Apache, и проксировать 443 порт с nginx на 443 порт Apache...но мне кажется что это извращение, и работать не должно(
так же я пробовал настраивать apache, чтоб он слушал 443 порт просто как http, но Apache не глупый, и пишет "Это 443 порт для https, а вы его пытаетесь использовать как простой http! ошибка!"
ну и еще один вариант писать модуль для Apache, который будет получать от nginx какой-то хедер, или ключ в URL, и устанавливать $_SERVER['HTTPS'] в on
----
как вы думаете, какие еще могут быть варианты?