Rewrite+resolver
buddha
nginx-forum at nginx.us
Sat Dec 28 10:57:13 UTC 2013
привет всем.
есть 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, а для второго
прописывать обязательно?
2. Правильно ли таким образом делать чпу? с помощью rewrite не получилось.
вот конфиг для www.host.ru. Хотелось бы услышать как улучшить этот конфиг, в
чем ошибка, и как сделать чпу с помощью rewrite(возможно ли)
################################
server {
listen 81;
server_name www.host.ru;
root /var/www/host.ru/www/;
access_log /var/log/nginx/www.host.access.log;
error_log /var/log/nginx/www.host.error.log;
location ~ .+/.+_(\d+)$ {
proxy_pass http://$server_name/news/view?id=$1&internal=1;
}
location / {
try_files $uri /index.php$uri?$query_string;
}
location /index.php {
internal;
root /var/www/host.ru/www;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_ignore_client_abort off;
fastcgi_buffers 256 16K;
fastcgi_buffer_size 32k;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param CITY $city;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
location ~* \.php$ {
root /var/www/host.ru/www/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_ignore_client_abort off;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param CITY $city;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_buffers 256 16K;
fastcgi_buffer_size 32k;
include fastcgi_params;
}
}
################################
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,245884,245884#msg-245884
Подробная информация о списке рассылки nginx-ru