Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Не передаю тся заголо вки при SSL
On Thu, 22 Oct 2009, dim-dim77 wrote:
Добрый день
nginx/0.8.17
Есть конструкция:
server {
...
ssl on;
...
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header SSL_VERIFY $ssl_client_verify;
...
location / {
proxy_pass http://127.0.0.1/;
}
}
Так вот, если я захожу на сервер через прокси-сервер, то на бэкенд не
передается заголовок Via, а в заголовке X-Forwarded-For записан только
IP адрес прокси-сервера.
Если же поставить "ssl off", то на бэкэнд нормально передается заголовок
Via, а в X-Forwarded-For записан и IP прокси-сервера, и IP клиента.
Предположу, что когда вы "ставите "ssl off"", вы ещё и в адресной строке
схему меняете с 'https' на 'http'. Так ведь?
В таком случае ваш прокси-сервер будет добавлять заголовки "Via: " и
"X-Forwarded-For: " в запрос к серверу - потому что "видит" открытый текст
http-запроса.
Когда же вы заходите на https-enabled сервер прокси-сервер, то ваш
прокси-сервер не видит никаких http-запросов\ответов - он только выполняет
просьбу клиента соединить его с сервером напрямую, прозрачным
TCP-туннелем, внутри которого браузер и сервер строят защищённое по
протоколу SSL соединение.
Соответственно, с точки зрения https-сервера к нему пришёл прямой (без
прокси) клиент с ip-адреса прокси - о чём он и уведомляет бэкенд
выставлением заголовка "X-Forwarded-For: <IP адрес прокси-сервера>"
А IP-адреса конечного клиента - сервер в такой ситуации не знает.
--
Best regards,
Andrew Kopeyko <kaa@xxxxxxxx>
|