Re: Настройка nginx под image hosting

grigory nginx-forum на nginx.us
Ср Апр 14 20:28:13 MSD 2010


Не хочу засорять другие темы, поэтому продолжу задавать вопросы здесь. Вообще, было бы, конечно, очень круто, если бы с кем-нибудь можно было пообщаться в ICQ, а то вопросов много, а знаний мало. :-) Я бы даже WMZ на пиво скинул бы за помощь. :-)

Вопрос такой:
Я понял, почему меня немного в ступор ввёл один из предыдущих постов, когда предлагалось поставить 2 nginx на разные IP, чтобы они не конкурировали между за собой за жёсткий диск. Дело в том, что nginx у меня сейчас работает в связке с Apache, и всё, что связано с сайтом, крутится на нём: php, html и т.п. А nginx фактически только отдаёт картинки + статику сайта (там всего меньше десятка картинок мелких + css + js).

Чтобы снизить в своё время нагрузку, я (не знаю уж, был ли в этом смысл) сделал index.php > index.html, чтобы сервер отдавал обычную .html-ку без лишних телодвижений с php-кодом внутри, т.к. он всегда один и тот же. А теперь я подумал, что неплохо было бы этот главный .html-файл отдавать nginx'у в кэш, но конфиг у меня устроен так:

=================================
location / {
proxy_pass   http://domain.com: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;
... (тут опущен кусок конфига)
root /var/www/virtual/domain.com;
}

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {
access_log   off;
log_not_found   off;
expires   365d;

root   /var/www/virtual/domain.com;

error_page 404 = @gifredir;
}
=================================

Конфиг я этот, в своё время писал, будучи вообще не знакомым в nginx, да и сервер сам кое-как настроил. :-)
Собственно, вопрос: как мне теперь отдавать этот index.html nginx'у, чтобы он кешировался, но при этом nginx также понимал, что нужно кешировать и domain.com/ , т.к. он открывает index.html?

Я добавил конструкцию:
location ~* ^.+\.html$ {
open_file_cache max=100 inactive=30s;
open_file_cache_min_uses 2;
}

Но не уверен: а) работает ли она так, как надо; б) кеширует ли она; в) пробовал try_files, но так и не разобрался, как его реализовать в данном случае; г) кешируют ли данная конструкция прямой запрос domain.com без index.html в URI.

Вопрос, может, ньюба, но что поделать. :-)

P.S.: Еще один: а как сделать конструкцию open_file_cache, чтобы кешировались ТОЛЬКО ерроры?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,72046,74891#msg-74891




Подробная информация о списке рассылки nginx-ru