проблема с proxy_redirect

Igor Sysoev is at rambler-co.ru
Fri Sep 21 22:39:25 MSD 2007


On Fri, Sep 21, 2007 at 08:57:32PM +0300, Vadim S. Khondar wrote:

> Здравствуйте!
> 
> Столкнулся со следующей проблемой:
> на одном IP на 80ом порту nginx, на 8080 - apache.
> 
> Конфиг nginx:
> 
> server {
>         listen 192.168.1.1:80;
>         server_name domain.com;
>         access_log /var/www/clients/clnt/domains/domain.com/logs/access.log main;
>         error_log  /var/www/clients/clnt/domains/domain.com/logs/error.log;
> 
>         location ~* ^.+\.(ico|jpg|jpeg|gif|js|png|htm|html)$ {
>             root /var/www/clients/clnt/domains/domain.com/webroot/httpdocs;
>         }
> 
>         location / {
>             rewrite ^/(.*)$ /domain.com/httpdocs/$1 break;
>             proxy_pass http://192.168.1.1:8080;
>             proxy_redirect default;

-             rewrite ^/(.*)$ /domain.com/httpdocs/$1 break;
-             proxy_pass http://192.168.1.1:8080;
-             proxy_redirect default;

+             proxy_pass http://192.168.1.1:8080/domain.com/httpdocs/;
+             proxy_redirect http://domain.com:8080/domain.com/httpdocs/  /;


>             proxy_set_header Host $host;
>             proxy_set_header X-Real-IP $remote_addr;
>             proxy_set_header X-Forwarded-For $remote_addr;
>             proxy_connect_timeout 90;
>             proxy_send_timeout 90;
>             proxy_read_timeout 90;
>         }
>     }
> 
> Апач настроен соответственно.
> 
> При возврате апачем редиректа в Location заменяется только 192.168.1.1
> на domain.com, а прочее (порт и путь) остаётся, что, само собой, не
> устраивает.
> 
> Например:
> 
> [20:49] cage:/usr/home/sunny>telnet 192.168.1.1 80
> Trying 192.168.1.1...
> Connected to 192.168.1.1.
> Escape character is '^]'.
> HEAD /phpMyAdmin HTTP/1.1
> Host: domain.com
> 
> HTTP/1.1 301 Moved Permanently
> Server: nginx/0.6.10
> Date: Fri, 21 Sep 2007 17:49:29 GMT
> Content-Type: text/html; charset=iso-8859-1
> Connection: keep-alive
> Location: http://domain.com:8080/domain.com/phpMyAdmin/
> Content-Length: 255
> 
> Если запросить /phpMyAdmin/, то редиректа нет и, соответственно, всё
> работает.
> Пробовал с proxy_redirect http://192.168.1.1:8080/domain.com http://domain.com/
> Не получается.
> 
> Подскажите, что не так делаю...
> 
> nginx -V
> nginx version: nginx/0.6.10
> configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt=-I /usr/local/include
> --with-ld-opt=-L /usr/local/lib --conf-path=/usr/local/etc/nginx/nginx.conf
> --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
> --error-log-path=/var/log/nginx-error.log --user=www --group=www
> --with-debug --http-client-body-temp-path=/var/tmp/nginx/client_body_temp
> --http-proxy-temp-path=/var/tmp/nginx/proxy_temp
> --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
> --http-log-path=/var/log/nginx-access.log
> --with-http_realip_module --with-http_ssl_module --with-http_stub_status_module
> 
> uname -rms
> FreeBSD 6.2-STABLE i386
> 
> nginx и apache в jail'e, если это имеет значение.
> Пакеты на 80 порт заворачиваются файрволлом.
> 
> 
> --
> 
> Yours faithfully,
>  Vadim S. Khondar
> 
> 
> 
> 

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list