Доброго время суток.
Подскажите пожалуйста, бьюсь пару суток и не могу подобрать оптимальное решение поставленное задачи.Ситуация следующая.
имеем centos 5.5, apache 2.2.16 + nginx 0.8.53
каким образом описать отдачу всей статики, которая встретится далее /home/сайт/ в частности jpg bmp jpeg swf и тому подобные.
а php-скрипты обрабатывались apache`ем, т.к. для безопасности php скрипты работают как httpd.itk для каждого владельца сайта своим.
на данный момент пример виртуального хоста следующий:
server {
listen 80;
server_name site.domain.ru;
root /home/site;
index index.php;
location ~* ^.+\.(bmp|jpg|jpeg|gif|swf)$ {
root /home/site/storage;
access_log off;
expires 30d;
error_page 404 = @srg;
include /etc/nginx/params.conf;
}
location @srg {
root /home/site/;
access_log off;
expires 30d;
error_page 404 = @choo;
include /etc/nginx/params.conf;
}
location @choo {
root /home/site/;
access_log off;
expires 30d;
include /etc/nginx/params.conf;
}
location / {
proxy_pass http://127.0.0.1:81/;
include /etc/nginx/params.conf;
}
location ~ /\.ht {
deny all;
}
}
файл /etc/nginx/params.conf
#start
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 30;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
#end
Мой вариант неудобен тем, что помимо нахождения статики в /home/site/storage, статика так-же находится в /home/site/storage/img, /home/site/storage/users, и с сотни других подпапок. и при совпадении имени файла в storage, nginx незамедлительно отдаст её из storage, хотя файл с подобным именем может находится в /home/site/choo
:(