ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



Если на apache крутится только php, и у вас не виртальный хостинг незнакомых проектов, то можно только php ему и перенаправлять, отдавая всё остальное с диска. Почему я оговорился про виртуальный хостинг - в .htaccess, если он включен и не подконтролен вам, пользователи могут делать deny, rewrite, и т.п.

Конфиг примерно такой:

location / {
     index index.html;
     root /var/www/virtual/domain.com;
}

location ~* \.php$ {
     proxy_pass   http://domain.com:8080/;
     .....
}


14 апреля 2010 г. 20:28 пользователь grigory <nginx-forum@xxxxxxxx> написал:
Не хочу засорять другие темы, поэтому продолжу задавать вопросы здесь. Вообще, было бы, конечно, очень круто, если бы с кем-нибудь можно было пообщаться в 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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru



--
Regards,
Slava
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.