Welcome! Log In Create A New Profile

Advanced

2 конфига для статики и индекса

Posted by J3FF3 
2 конфига для статики и индекса
January 12, 2012 06:47AM
День добрый. Все никак не получается сложить два конфига - первый нужен для организации одной точки входа (как во фреймворках используется), второй для отдачи статики. До второго, кстати, дело так и не дошло, - не смог перебороть еще первый.

Вобщем, что хотелось бы получить в итоге:
1. При запросе картинки /captcha([0-9]*).gif - перенаправлять на указанный контроллер/действие. Это уже есть, это на этом же форуме однажды подсказали:

location ~ ^/captcha([0-9]*).gif$ {
rewrite ^/captcha([0-9]*).gif$ /index.php?r=controller/action&id=$1 last;
}

Сама картинка доступна и по /index.php?r=controller/action&id=id, но сделано просто для "отвода глаз".

2. остальные запросы на файлы (статика и пхп), директории - перенаправлять на /index.php?r=...
Вроде просто, смотрел по примерам на http://wiki.opennet.ru/Nginx, но у меня почему-то страница пхп отдается файлом для скачивания.
Все под пхп-фпм работает, fastcgi_pass 127.0.0.1:9000.

Есть еще два домена (files.site.com и img.site.com), на них статика, без пхп. Нужно просто отдать запрашиваемый файл, если таковой имеется, или выдать 404 (или что-то более подходящее). Тут одного правила, наверно, должно хватить. Поскольку, застрял на конфиге для первого домена, корневого (site.com), до остальных так и не дошел.
Re: 2 конфига для статики и индекса
January 12, 2012 06:46PM
Прочел доку еще раз по нужным вещам, родил необходимые конфиги.

Структура корня:
./index.php
./application/

server {
listen 80;
server_name site.net;

root /home/www/site.net;
index index.php;

location / {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param SCRIPT_NAME index.php;
}
# это каталог с классами, контроллерами и пр.
location /application {
rewrite ^/ / permanent;
}
# простой редирект с целью выдать контроллер/действие за картинку
location ~ ^/captcha([0-9]*).gif {
rewrite ^/captcha([0-9]*).gif /index.php?r=controller/action&id=$1 last;
}
}


И второй конфиг:

Структура корня статики:

./main/ .. / .. / img.gif
./other/ .. / image.jpg

server {
listen 80;
server_name img.site.net;
root /home/www/img.site.net;

location / {
if (-d $request_filename) {
return 403;
break;
}

if (!-f $request_filename) {
return 404;
break;
}
}

location ~ \.(png|gif|jpg|jpeg|ico|bmp)$ {
access_log off;
expires 30d;
}
}

Вроде работает как нужно. Подскажите, может чем-то улучшить нужно или гдето "дыряво"?
Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 244
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