Возникла тут задачка сделать редирект с помощью 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;
}
}
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 адресу.
Комментариев нет:
Отправить комментарий