Welcome! Log In Create A New Profile

Advanced

Re: Настройка rewrite для статичных файлов

Pavel V.
December 13, 2012 11:50PM
Здравствуйте, akor.

Вы писали 13 декабря 2012 г., 21:31:30:

> Здравствуйте!

> Не судите строго, если некорректно задаю вопрос, новичок.
> Есть VPS, со связкой apache + nginx (+ fastCGI);


> Как правильно настраивать редиректы и рерайты при таких исходных данных?

> Нужно чтобы uri вида /dirname/param правильно обрабатывались, то есть чтобы
> nginx понимал, что param - это не папка, в которой лежит файл index.html, а
> параметр, который затем надо передать Парсеру.


1 вариант: Вы явно описываете все каталоги статики, которые у вас имеются на сайте, как отдающиеся
напрямую, остальное сливаете на Парсер:

server {
listen 123.123.123.123:80;

root /var/www/vhosts/domain.com/httpdocs/;

#По умолчанию - на парсер
location / {
proxy_pass http://127.0.0.1:7080;
...
}

#Статика
location /js/ {}
location /css/ {}
location /img/ {}
location ^~ /upload/ {} <----- обратите внимание на ^~
location /robots.txt {}
location /favicon.ico {}
location /other.file {}
location /and.another.file {}
location /again.and.again.other.file {}

location ~* \.(php|html)$ {
proxy_pass http://127.0.0.1:7080;
...
}
...
}

Использование ^~ http://nginx.org/ru/docs/http/ngx_http_core_module.html#location - по
вкусу, запретит проверку регулярных выражений, как следствие запрос /upload/malware.php исполняться
как код - не будет, полезно "для недоверенных" каталогов, куда "пользователи" могут заливать файлы.


2 Вариант - использовать try_files http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files
Явно описывать каталоги статики при этом, тем не менее, рекомендуется.

server {
listen 123.123.123.123:80;

root /var/www/vhosts/domain.com/httpdocs/;

#На парсер
location / {
try_files $uri @parser;
...
}

#Статика
location /js/ {}
location /css/ {}
location /img/ {}
location ^~ /upload/ {} <----- обратите внимание на ^~
#location /robots.txt {}
#location /favicon.ico {}
#location /other.file {}
#location /and.another.file {}
#location /again.and.again.other.file {}

location @parser {
proxy_pass http://127.0.0.1:7080;
...
}

location ~* \.(php|html)$ {
proxy_pass http://127.0.0.1:7080;
...
}
...
}


--
С уважением,
Pavel mailto:pavel2000@ngs.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Настройка rewrite для статичных файлов

akor December 13, 2012 09:31AM

Re: Настройка rewrite для статичных файлов

Pavel V. December 13, 2012 11:50PM

Re: Настройка rewrite для статичных файлов

akor December 14, 2012 01:17AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 300
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready