nginx + ssl = PHP не видит https

K
На сайте с 12.07.2006
Offline
295
Kpd
3296

Настраиваю SSL в nginx. Делаю прокси на apache (в listen 80 точно такой же proxy_pass)

listen 443;
...
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
...
}

Всё хорошо работает, но как в php определить, что юзер пришел по https? SERVER_PROTOCOL показывает HTTP/1.0, SERVER_PORT 80

Я понимаю, почему это происходит (трафик на апача приходит уже без шифрования), но как решить проблему не могу сообразить.

M
На сайте с 09.02.2008
Offline
68
mlu
#1

Если у Вас не получится по-нормальному, то можно еще сделать костылём в таком виде:


proxy_set_header имя значение;

И нужный заголовок ловить на самом сайте.

[umka]
На сайте с 25.05.2008
Offline
456
#2
Лог в помощь!
Himiko
На сайте с 28.08.2008
Offline
560
#3

Зачем вообще nginx'ом обслуживать 443-й порт, если за ним Apache ?

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
K
На сайте с 12.07.2006
Offline
295
Kpd
#4
mlu:
Если у Вас не получится по-нормальному, то можно еще сделать костылём в таком виде:

Сделал

proxy_set_header https on;

не красиво, но работает.

Странно, что эта ситуация не разруливается "штатными" средствами nginx, неужели никто с ней не сталкивается?

[umka:
;9192076]Не оно?

Тоже самое, только для fastcgi

Himiko:
Зачем вообще nginx'ом обслуживать 443-й порт, если за ним Apache ?

Чтобы отдавать статику без apache.

bums
На сайте с 03.07.2006
Offline
442
#5

proxy_set_header Host $host:$server_port;
Недорогая регистрация и продление доменов RU/SU/РФ/COM/NET/ORG/и т.д. ( https://www.regnic.name/?sesign ) в РЕГРУ, РЕГТАЙМ, Р01, РУЦЕНТР. А так же хостинг и SSL сертификаты.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий