ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rewrite+resolver



Hello!

On Sat, Dec 28, 2013 at 05:57:13AM -0500, buddha wrote:

> привет всем.
> 
> есть 2 вопроса:
> 
> 1. Понадобилось сделать чпу. Были ссылки вида
> http://www.host.ru/news/view?id=12 надо было переделать в виде
> http://www.host.ru/category/name_12
> 
> Сделал это с помощью proxy_pass вот так:
> 
> location ~ .+/.+_(\d+)$ {
>                 proxy_pass http://$server_name/news/view?id=$1
> }
> 
> но возникла проблема. для хоста www.host.ru это работает нормально, а для
> хоста help.host.ru пишет no resolver defined
> 
> поправил это вот таким способом
> 
> location ~ .+/.+_(\d+)$ {
>                 resolver 8.8.8.8;
>                 proxy_pass proxy_pass http://$server_name/news/view?id=$1
>         }
> 
> конфиги для www.host.ru и help.host.ru - идентичные, отличаются только
> server_name и root_dir 
> 
> Вопрос: почему для первого хоста все работает и без resolver, а для второго
> прописывать обязательно?

Когда-то я думал, что rewrite'ы - это плохо.  Теперь я понимаю, 
что rewrite'ы по сравнению с перменными в proxy_pass - это детский 
лепет.

Что до вопроса, то ответ на него есть в документации тут:

http://nginx.org/r/proxy_pass/ru

Резолвер не нужен, если проксирование происходит на имя сервера, 
для которого описан upstream (возможно, неявно, через proxy_pass 
на это имя).

> 2. Правильно ли таким образом делать чпу? с помощью rewrite не получилось.

Нет.

Самое правильно решение - делать всё это в приложении, на 
нормальном языке программирования.  Но proxy_pass с переменными 
однозначно хуже, чем даже rewrite'ы.

-- 
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.