Recipe nginx umi-cache
Материал из DiPHOST.Ru wiki system
(Различия между версиями)
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
- | |||
server { | server { | ||
- | + | listen 192.168.0.1:80; # IP-адрес сервера | |
- | + | proxy_buffer_size 8k; # параметр изменяется в панели управления | |
- | proxy_buffer_size | + | client_max_body_size 16m; # параметр изменяется в панели управления |
- | client_max_body_size | + | |
client_body_buffer_size 512k; | client_body_buffer_size 512k; | ||
- | + | # кэш имён файлов для disable_symlinks | |
- | open_file_cache max=1000 inactive=20s; | + | open_file_cache max=1000 inactive=20s; |
open_file_cache_valid 30s; | open_file_cache_valid 30s; | ||
open_file_cache_min_uses 2; | open_file_cache_min_uses 2; | ||
open_file_cache_errors on; | open_file_cache_errors on; | ||
- | + | # имена сайта | |
- | + | server_name example.com; | |
- | + | server_name www.example.com | |
+ | # отключение лишних журналов | ||
access_log off; | access_log off; | ||
log_not_found off; | log_not_found off; | ||
- | + | # корневая папка для статических файлов | |
- | root | + | root /home/username/www/site1/public_html; |
index index.html; | index index.html; | ||
- | disable_symlinks if_not_owner from= | + | # запрет симлинков на чужие файлы, нельзя будет скачать файл другого пользователя |
- | + | # путь до корня сайта проверяться на симлинки не будет, если файл эту часть пути содержит | |
+ | disable_symlinks if_not_owner from=/home/username/www/site1/public_html; | ||
location / { | location / { | ||
- | access_log | + | access_log /home/username/www/site1/logs/nginx-access.log; |
+ | # кодировка прописана во избежании ситуаций, когда отдаваемые nginx файлы .html интерпретируется | ||
+ | # браузером в соответствии с его настройкой | ||
charset utf-8; | charset utf-8; | ||
source_charset utf-8; | source_charset utf-8; | ||
+ | # не смотреть в кэше, если метод запроса POST или есть аргументы, или пользователь залогинен | ||
error_page 412 = @apache; | error_page 412 = @apache; | ||
if ($request_method = 'POST') { return 412; } | if ($request_method = 'POST') { return 412; } | ||
if ($is_args = '?') { return 412; } | if ($is_args = '?') { return 412; } | ||
if ($cookie_umicms_session) { return 412; } | if ($cookie_umicms_session) { return 412; } | ||
- | root | + | # смотреть в кэш |
+ | root /home/username/www/site1/public_html/sys-temp/static-cache/$host/; | ||
try_files $uri/index.html @apache; | 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 http://127.0.0.1:%%port%%; | ||
+ | } | ||
+ | } |
Версия 12:18, 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 http://127.0.0.1:%%port%%; } }