Нужна помощь по Nginx

12
iOweYouNothing
На сайте с 08.01.2011
Offline
190
2061

Всем доброго вечера.

Есть стандартный конфиг Nginx`a (лишнее удалил):

user www-data;
worker_processes 4;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
*****************************************

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
client_max_body_size 16m;
log_format isp '$bytes_sent $request_length';
server {
listen 123.123.123.123:80;
server_name ######.ru www.######.ru;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
error_page 404 = @fallback;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://123.123.123.123:8080;
proxy_redirect http://######.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://123.123.123.123:8080;
proxy_redirect http://######.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/######/data/www/######.ru;
#access_log /var/www/httpd-logs/######.ru.access.log ;
access_log off;
access_log /var/www/nginx-logs/###### isp;
}
location @fallback {
proxy_pass http://123.123.123.123:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
*********
}
.
.
.
.
.
.
server {
*********
}

Т.е., есть секция http, в которой очень много секций server.

В каждом server есть:

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$

Суть задачи - нужно на этот тип данных поставить Expires 30d; - вроде как простая задача, но секций server ооочень много, плюс постоянно создаются новые подобные секции - Руками уморишься каждый раз дописывать.

Как вписать Expires глобально? Например в http секцию, чтобы она действовала на все вложенные server? Возможно ли это и как правильно описать?

zexis
На сайте с 09.08.2005
Offline
388
#1

Вы через панель ISP сайты создаете и редактируете?

Если да, то возможно в панели шаблоны есть.

Надо с панелью разбираться.

iOweYouNothing
На сайте с 08.01.2011
Offline
190
#2

zexis, да, через isp. есть уже запущенные сайты (много). и есть планируемые (тоже немало).

естественно, есть доступ к ssh. просто хотелось бы данную задачу "автоматизировать" а не каждый раз в конфигу нжинкса дописывать и перезапускать его.

---------- Добавлено 21.02.2012 в 22:33 ----------

zexis:
Если да, то возможно в панели шаблоны есть.
Надо с панелью разбираться.

в панели есть шаблон под нжинкс - но, на сколько я понял isp, этот шаблон туда жестко вкомпилен и сменить его непросто.

VO
На сайте с 27.07.2008
Offline
149
#3

http://forum.ispsystem.com/ru/showthread.php?t=17575

Пока недоступно из коробки.

iOweYouNothing
На сайте с 08.01.2011
Offline
190
#4
V(o)ViK:
Пока недоступно из коробки.

с этим то понятно и ранее, спасибо.

вопрос несколько в другом:

- как можно правильно EXPIRES запихать в секцию HTTP вместо секций SERVER, чтобы expires работало глобально на все однотипные locations?

если такой финт с nginx`ом невозможен, то так и скажите - а в глубины isp лезть просто неохота да и не стоит :)

Himiko
На сайте с 28.08.2008
Offline
560
#5

/usr/local/ispmgr/etc/server.templ:

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
Expires 30d;
}

Строку location нужно повторить 1 в 1, как прописывается.

Потом killall ispmgr

Это работает. У новых доменов будет прописывать.

Для того, чтобы в старых виртхостах тоже прописалось, выключите и включите nginx в панели. (конфиг nginx'а советую сохранить перед этим)

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
iOweYouNothing
На сайте с 08.01.2011
Offline
190
#6

Himiko, спасибо, как раз это я и искал. только вот народ пишет, что в версии isp 4.4.х поддержка темплейта отсутствует. а у меня как раз ISPmanager-Lite 4.4.2.5

http://forum.ispsystem.com/ru/showpost.php?p=98892&postcount=6

M
На сайте с 16.09.2009
Offline
278
#7
Himiko:
/usr/local/ispmgr/etc/server.templ:
Строку location нужно повторить 1 в 1, как прописывается.
Потом killall ispmgr
Это работает. У новых доменов будет прописывать.

Кто-то "знает как все работает"? Уппс:

535i:
Himiko, спасибо, как раз это я и искал. только вот народ пишет, что в версии isp 4.4.х поддержка темплейта отсутствует. а у меня как раз ISPmanager-Lite 4.4.2.5
http://forum.ispsystem.com/ru/showpost.php?p=98892&postcount=6

:)

ТС, если у вас настолько древняя версия ISPManager - может вам попусту nginx с конфигом панельки не использовать? Вынесите апач на отдельный порт (лучше на localhost), напишите простой конфиг для nginx, чтобы он проксировал запросы к апачу (~10 строчек). Expires сможете управлять в конфиге апача - толку от раздачи статики nginx для вас ровно никакого.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Himiko
На сайте с 28.08.2008
Offline
560
#8
Кто-то "знает как все работает"?

С вами здесь никто ничего не обсуждает. Не знаете как помочь - пройдите мимо темы.

На ISPmanager-Pro 4.3.57.9 работает на 500+ доменах без проблем.

zexis
На сайте с 09.08.2005
Offline
388
#9
myhand:
толку от раздачи статики nginx для вас ровно никакого.

Почему же толку от раздачи статики nginx не какого?

NGINX примерно в два раза быстрее отдаст статику сам, чем будет ее проксировать апачу.

Я с помощью ab замерял скорость отдачи статики nginx и апач.

У меня получилось, следующие результаты.

Отдача файла .jpg размером 56 Кб

Nginx - 3600 запросов в секунду

Апач на порту :8080 – 3000 запросов в секунду

NGINX проксирующий статику на Апач– 1800 запросов в секунду

M
На сайте с 16.09.2009
Offline
278
#10
zexis:
Почему же толку от раздачи статики nginx не какого?

Потому что есть бенчмарки, а есть практика. Бывает, конечно, что проект упирается в раздачу статики - но скорее всего сперва во что-то другое.

А есть еще и другие параметры: более сложная конфигурация, связанные с этим грабли.

zexis:
NGINX примерно в два раза быстрее отдаст статику сам, чем будет ее проксировать апачу.

Ну да. А клиент все равно будет полминуты ждать, пока скрипт на сервере отработает.

zexis:
Я с помощью ab замерял скорость отдачи статики nginx и апач.

"Я считало" (с).

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий