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

Slava Kokorin slava.kokorin на gmail.com
Чт Апр 15 16:06:10 MSD 2010


Если на 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 на nginx.us> написал:

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



-- 
Regards,
Slava
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100415/ebb5c5c6/attachment.html>


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