Recipe nginx umi-cache
Материал из DiPHOST.Ru wiki system
(Различия между версиями)
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
- | < | + | <blockquote><code><nowiki> |
server { | server { | ||
listen 192.168.0.1:80; # IP-адрес сервера | listen 192.168.0.1:80; # IP-адрес сервера | ||
Строка 77: | Строка 77: | ||
} | } | ||
} | } | ||
- | </ | + | </nowiki></code></blockquote> |
Версия 12:33, 31 июля 2012
server {
listen 192.168.0.1:80; # IP-адрес сервера
proxy_buffer_size 8k; # параметр изменяется в панели управления
client_max_body_size 16m; # параметр изменяется в панели управления
client_body_buffer_size 512k;
# кэш имён файлов для disable_symlinks
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
# имена сайта
server_name example.com;
server_name www.example.com
# отключение лишних журналов
access_log off;
log_not_found off;
# корневая папка для статических файлов
root /home/username/www/site1/public_html;
index index.html;
# запрет симлинков на чужие файлы, нельзя будет скачать файл другого пользователя
# путь до корня сайта проверяться на симлинки не будет, если файл эту часть пути содержит
disable_symlinks if_not_owner from=/home/username/www/site1/public_html;
location / {
access_log /home/username/www/site1/logs/nginx-access.log;
# кодировка прописана во избежании ситуаций, когда отдаваемые nginx файлы .html интерпретируется
# браузером в соответствии с его настройкой
charset utf-8;
source_charset utf-8;
# не смотреть в кэше, если метод запроса POST или есть аргументы, или пользователь залогинен
error_page 412 = @apache;
if ($request_method = 'POST') { return 412; }
if ($is_args = '?') { return 412; }
if ($cookie_umicms_session) { return 412; }
# переопределить корень сайта на папку статического кэша
# попытаться воспользоваться им
root /home/username/www/site1/public_html/sys-temp/static-cache/$host/;
try_files $uri/index.html @apache;
}
# запретить доступ к файлам репозиториев, если они случайно оказались в публичном месте
location ~ /\.svn {
deny all;
}
location ~ /\.git {
deny all;
}
location ~ /\.hg {
deny all;
}
# запретить доступ к файлам .htaccess и .htpasswd
location ~ /\.ht {
deny all;
}
# обрабатывать запросы к админке веб-сервером apache
location ~* ^/admin {
error_page 412 = @apache;
return 412;
}
# обрабатывать php-файлы веб-сервером apache
location ~* \.php$ {
error_page 412 = @apache;
return 412;
}
# попытаться отдать файл с одним из расширений напрямую минуя apache
location ~* \.(swf|zip|rar|arj|cab|exe|dll|ico|jpg|jpeg|gif|\
bmp|png|mp3|avi|mov|mpg|mpeg|\
amr|mmf|wml|wbmp|mid|midi|3gp|css|js|html|htm|txt)$ {
access_log /home/username/www/site1/logs/nginx-access.log;
charset utf-8;
source_charset utf-8;
try_files $uri @apache;
}
# передать запрос к apache
location @apache {
proxy_pass <nowiki>http://127.0.0.1:11111;
}
}
</nowiki>