Re: При проксировании редиректа отдаётся IP-адрес клиента.
Maxim Dounin
mdounin at mdounin.ru
Tue May 13 18:18:45 UTC 2014
Hello!
On Tue, May 13, 2014 at 09:00:57PM +0300, Bogdan wrote:
> Добрый день.
>
> Nginx 1.6.0, за ним апач.
>
> Запрос к httpd:
>
> GET /pma HTTP/1.1
> Host: host.tld
>
> HTTP/1.1 301 Moved Permanently
> Date: Tue, 13 May 2014 17:45:39 GMT
> Server: Apache/2.2.15 (CentOS)
> Location: http://host.tld/pma/
> Content-Length: 236
> Connection: close
> Content-Type: text/html; charset=iso-8859-1
>
> Аналогичный запрос к nginx:
>
> GET /pma HTTP/1.1
> Host: host.tld
>
> HTTP/1.1 301 Moved Permanently
> Server: nginx/1.6.0
> Date: Tue, 13 May 2014 17:47:33 GMT
> Content-Type: text/html; charset=iso-8859-1
> Content-Length: 233
> Connection: keep-alive
> Location: http://1.2.3.4/pma/
>
> Где 1.2.3.4 - IP-адрес клиента который посылал запрос.
> HTML-часть в обоих случаях пропустил, заголовкам она соответствует.
>
> Вот конфигурация виртуального хоста.
>
> server {
> listen 11.22.33.44:80 default_server;
> server_name _;
> access_log /var/log/nginx/default.access.log main;
>
> server_name_in_redirect off;
>
> location / {
> proxy_redirect off;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> proxy_set_header X-Forwarded-Proto $scheme;
> proxy_set_header Host $http_host;
> proxy_pass http://127.0.0.1:80;
> }
> }
>
> Включение server_name_in_redirect и proxy_redirect default какого-то
> видимого эффекта не оказали, всё равно в ответе фигурирует IP-адрес
> клиента. В качестве клиента использовал telnet.
Я бы для начала убедился, что используется именно эта
конфигурация.
Если судить по симптомам - редиректу на ip-адрес клиента -
используется конфигурация, в которой написано что-то вроде
proxy_set_header Host $remote_addr;
что и приводит к подобному эффекту.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru