Страница 1 из 1

nginx отдача статического контента и оптимизация конфига

Добавлено: 2012-03-06 0:36:09
.scu
у меня несколько вопросов вопросов, касающихся оптимизации вида конфигов для нгинкса и отдачи статики им.

1) я хочу составить наиболее полный список достаточно часто встречаемых типов статических файлов, которые могут быть запрошены, пока список получился такой:

Код: Выделить всё

ico|jpg|jpeg|gif|png|wbmp|tiff|bmp|ai|eps|psd|ps|ttf|css|js|zip|rar|tgz|gz|bz2|bz|doc|rtf|docx|xls|xlsx|exe|pdf|ppt|pptx|txt|tar|au|mid|midi|wav|mp3|swf|f4v|flv|fla|avi|mov|wmv|mp4|mpg|mpeg|htm|htm|shtml
есть ли у кого-то более полные?

2) можно ли заменить этот список в проверке каким-либо выражением \ переменной, чтобы удобно было редактировать список в дальнейшем
(чтобы при необходимости добавить один элемент в список не нужно было бы редактировать его на всех хостах), т.е. сделать что-то вроде:

Код: Выделить всё

location ~ \.(in_array($list))$ {
                try_files $uri =404;
        }
3) если нельзя, можно ли все переменные хоста дефолтового записать ввиде переменных (чтобы не нужно было для каждого хоста прописывать конфиг, т.к. по сути он отличается только названием хоста.
у меня шаблон такой:
[code]
server {
        access_log  /hosting/domains/{DOMAIN_NAME}/data/log/nginx.access.log  main;
        error_log  /hosting/domains/{DOMAIN_NAME}/data/log/nginx.error.log;

        listen       {IP}:80;
        server_name  www.{DOMAIN_NAME} {DOMAIN_NAME};
        client_max_body_size 50M;
        #root /hosting/domains/{DOMAIN_NAME}/data/www;
        charset windows-1251;

        root  /hosting/domains/{DOMAIN_NAME}/data/www;

        location ~ \.(ico|jpg|jpeg|gif|png|wbmp|tiff|bmp|ai|eps|psd|ps|ttf|css|js|zip|rar|tgz|gz|bz2|bz|doc|rtf|docx|xls|xlsx|exe|pdf|ppt|pptx|txt|tar|$
                try_files $uri =404;
        }



        location / {
                index  index.php index.htm;
                proxy_pass http://{IP}:8080;
                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;
                if (-f $request_filename) {
                         break;
                }
        }
        location ~ /\.ht {
            deny  all;
        }
  }
где вместо {DOMAIN_NAME} будет подставляться хост без www, т.е. например site.ru, а вместо {IP} - IP, на котором работает домен для внешнего мира.

Re: nginx отдача статического контента и оптимизация конфига

Добавлено: 2012-03-06 11:00:54
dmtr
заюзал вот такую конструкцию

Код: Выделить всё

    location ~* ^.+\.(?!(php|html|htm))[^.]*$      {
        try_files $uri @backend;
        expires 1y;
        root   /usr/local/www/hosting/site.tdl/data;
    }

    location @backend {
        proxy_pass         http://site.tdl:81;
        include proxy.conf;
    }

Re: nginx отдача статического контента и оптимизация конфига

Добавлено: 2012-03-06 11:04:47
FreeBSP

Код: Выделить всё

#!/bin/sh
cat nginx.pattern | sed "s/{DOMAIN_NAME}/$1/g" | sed "s/{IP}/$2/g" >> $3
вызывать так
script.sh site.ru 1.2.3.4 /path/to/nginx/site.ru/config.file

Re: nginx отдача статического контента и оптимизация конфига

Добавлено: 2012-03-06 11:09:20
Bayerische
Я засунул все хосты в один файл, теперь просто в редакторе поиск-замена.

Re: nginx отдача статического контента и оптимизация конфига

Добавлено: 2012-03-07 0:05:49
.scu
dmtr писал(а):заюзал вот такую конструкцию

Код: Выделить всё

    location ~* ^.+\.(?!(php|html|htm))[^.]*$      {
        try_files $uri @backend;
        expires 1y;
        root   /usr/local/www/hosting/site.tdl/data;
    }

    location @backend {
        proxy_pass         http://site.tdl:81;
        include proxy.conf;
    }
а зачем на бекэнде обрабатывать html - это же в 90% статика, мне кажется в вашем решении тогда стоит только php оставить (что точно не статика), а остальное пробовать проверять, было бы логичнее.

Спасибо за идею плясать от конца! :)

Re: nginx отдача статического контента и оптимизация конфига

Добавлено: 2012-03-07 1:44:46
FiL
очень много есть сайтов, где куски php-кода вставлены в html. И лежит оно в .html.
Хреновый подход, но встречается. Если хосты не свои (а клиентов), то html надо-бы парсить.

Re: nginx отдача статического контента и оптимизация конфига

Добавлено: 2012-03-07 11:45:40
dmtr
.scu писал(а):а зачем на бекэнде обрабатывать html - это же в 90% статика, мне кажется в вашем решении тогда стоит только php оставить (что точно не статика), а остальное пробовать проверять, было бы логичнее.
у нас там SSI используется на многих проектах