среда, 22 августа 2012 г.

Редирект в nginx или использование rewrite и proxy_pass

Возникла тут задачка сделать редирект с помощью nginx при определенном запросе к сайту. Для осуществления нашей задачи я приведу пример конфига:


 server {
         listen       80;
         server_name  www.site.ru site.ru;
         reset_timedout_connection  on;
         location ~* /Service {
            proxy_pass http://avia.go2see.ru;
         }
         location ~* /Service2 {
            rewrite ^ http://demo.site.ru/Service2 permanent;
         }
         location / {
             proxy_pass http://www/;
             proxy_next_upstream error timeout invalid_header http_500 http_503;
             proxy_set_header   Host             $host;
             proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
             proxy_redirect off;
             proxy_connect_timeout 120;                                                                                                                                                                                                                                      
         }
 }

Отличие rewrite от proxy_pass состоит в том, что редирект будет выглядеть "открыто". Т.е. страничка автоматичеси переадресуется по новому адресу. 

В случае в proxy_pass запрос уйдет "прозрачно", т.е. пользователь даже не поймет что был запрос по новому url адресу.



Комментариев нет: