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

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
.scu
сержант
Сообщения: 198
Зарегистрирован: 2008-05-26 11:25:08
Контактная информация:

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

Непрочитанное сообщение .scu » 2012-03-06 0:36:09

у меня несколько вопросов вопросов, касающихся оптимизации вида конфигов для нгинкса и отдачи статики им.

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, на котором работает домен для внешнего мира.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

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

Непрочитанное сообщение dmtr » 2012-03-06 11:00:54

заюзал вот такую конструкцию

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

    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;
    }
This game has no name. It will never be the same.

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

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

Непрочитанное сообщение FreeBSP » 2012-03-06 11:04:47

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

#!/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
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

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

Непрочитанное сообщение Bayerische » 2012-03-06 11:09:20

Я засунул все хосты в один файл, теперь просто в редакторе поиск-замена.

.scu
сержант
Сообщения: 198
Зарегистрирован: 2008-05-26 11:25:08
Контактная информация:

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

Непрочитанное сообщение .scu » 2012-03-07 0:05:49

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 оставить (что точно не статика), а остальное пробовать проверять, было бы логичнее.

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

FiL
ст. лейтенант
Сообщения: 1374
Зарегистрирован: 2010-02-05 0:21:40

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

Непрочитанное сообщение FiL » 2012-03-07 1:44:46

очень много есть сайтов, где куски php-кода вставлены в html. И лежит оно в .html.
Хреновый подход, но встречается. Если хосты не свои (а клиентов), то html надо-бы парсить.

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

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

Непрочитанное сообщение dmtr » 2012-03-07 11:45:40

.scu писал(а):а зачем на бекэнде обрабатывать html - это же в 90% статика, мне кажется в вашем решении тогда стоит только php оставить (что точно не статика), а остальное пробовать проверять, было бы логичнее.
у нас там SSI используется на многих проектах
This game has no name. It will never be the same.