nginx: проксирование

sidorka
На сайте с 17.08.2012
Offline
211
1097

Как переписать директиву apache для nginx?

RewriteRule ^ads/([0-9]+)$ http://site.ru/include/region.php/?id=$1 [L,P,QSA]


---------- Добавлено 22.03.2016 в 23:57 ----------

Попробовал http://winginx.com/ru/htaccess

Получил такое

location /ads { 

rewrite ^/ads/([0-9]+)$ http://site.ru/include/region.php/?id=$1 redirect;
}

но это редирект, а не проксирование.

Вожусь с proxy_pass сейчас, но все время или 500 ошибку выдает или запрос уходит на дефолтный домен на сервере. :mad:

Дешевые домены для дорвеев и не только - от 55р (https://goo.gl/Wtnwqp)
kxk
На сайте с 30.01.2005
Offline
970
kxk
#1

rewrite ^/ads/([0-9]+)$ http://site.ru/include/region.php/?id=$1 last;

Ваш DEVOPS
sidorka
На сайте с 17.08.2012
Offline
211
#2

kxk, это редирект.

kxk
На сайте с 30.01.2005
Offline
970
kxk
#3

sidorka, Так и у вас в апаче тоже редирект

sidorka
На сайте с 17.08.2012
Offline
211
#4

kxk, в апаче [L,P,QSA].

Chkan
На сайте с 22.10.2008
Offline
104
#5

попробуй так:


location ~ ^/ads/([0-9]+)$ {
proxy_pass http://site.ru/include/region.php/?id=$1;
}
🤠 Разработка/сопровождение проектов на Python/Django (https://django.ws)
sidorka
На сайте с 17.08.2012
Offline
211
#6

Chkan, все равно получаю HTTP/1.1 302 Moved Temporarily и редирект на домен, который проксируется.

---------- Добавлено 23.03.2016 в 20:07 ----------

Может по другому как-то надо? Цель - скрыть рекламный сервер, чтобы выглядело так, что все запросы идут через домен сайта. С апачем решение выше.

Chkan
На сайте с 22.10.2008
Offline
104
#7

Скинь полный конфиг nginx в личку. Недолжно быть там 301-го редиректа.

sidorka
На сайте с 17.08.2012
Offline
211
#8

Решил. Нужно в локейшн добавить было

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Без этого только редиректы выдает.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий