Рецепт конфигурации nginx общего назначения
Материал из DiPHOST.Ru wiki system
(Различия между версиями)
Schors (Обсуждение | вклад) (Новая страница: «<meta name="keywords" content="cms, nginx, static, статика"></meta> <meta name="description" content="Обобщённая конфигурация nginx"></m…») |
Schors (Обсуждение | вклад) |
||
Строка 9: | Строка 9: | ||
Так выглядит конфигурация nginx сайта: | Так выглядит конфигурация nginx сайта: | ||
<pre> | <pre> | ||
+ | # конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один" | ||
+ | # | ||
+ | # параметр listen и proxy_pass генерируется нашей системой автоматически по внутренним параметрам | ||
+ | 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; | ||
+ | |||
+ | # запрет символьных ссылок на "чужие" файлы | ||
+ | # если файл находится внутри папки /home/username/www/site1/public_html , | ||
+ | # то эту часть не проверять по соображением производительности | ||
+ | disable_symlinks if_not_owner from=/home/username/www/site1/public_html; | ||
+ | |||
+ | # обработать запрос, не соответствующий уточнениям ниже | ||
+ | location / { | ||
+ | proxy_pass http://127.0.0.1:11111; | ||
+ | } | ||
+ | |||
+ | # запретить доступ к файлам репозиториев, если они случайно оказались в публичном месте | ||
+ | location ~ /\.svn { | ||
+ | deny all; | ||
+ | } | ||
+ | location ~ /\.git { | ||
+ | deny all; | ||
+ | } | ||
+ | location ~ /\.hg { | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | # запретить доступ к файлам .htaccess и .htpasswd | ||
+ | location ~ /\.ht { | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | # попытаться отдать файл с одним из расширений напрямую минуя apache | ||
+ | location ~* \.(swf|zip|rar|arj|cab|exe|dll|ico|jpg|jpeg|gif|bmp|png|mp3|avi|mov|mpg|mpeg|txt|amr|mmf|wml|wbmp|mid|midi|3gp|js|css|htm|html?)$ | ||
+ | access_log %%sitedir%%/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:11111; | ||
+ | } | ||
+ | |||
+ | } | ||
</pre> | </pre> |
Версия 09:34, 1 августа 2012
Рецепт nginx "Статика"
Для обработки статических файлов веб-сервером nginx мы разработали специальную конфигурацию.
Так выглядит конфигурация nginx сайта:
# конфигурация nginx для гипотетического пользователя хостинга username для сайта номер "один" # # параметр listen и proxy_pass генерируется нашей системой автоматически по внутренним параметрам 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; # запрет символьных ссылок на "чужие" файлы # если файл находится внутри папки /home/username/www/site1/public_html , # то эту часть не проверять по соображением производительности disable_symlinks if_not_owner from=/home/username/www/site1/public_html; # обработать запрос, не соответствующий уточнениям ниже location / { proxy_pass http://127.0.0.1:11111; } # запретить доступ к файлам репозиториев, если они случайно оказались в публичном месте location ~ /\.svn { deny all; } location ~ /\.git { deny all; } location ~ /\.hg { deny all; } # запретить доступ к файлам .htaccess и .htpasswd location ~ /\.ht { deny all; } # попытаться отдать файл с одним из расширений напрямую минуя apache location ~* \.(swf|zip|rar|arj|cab|exe|dll|ico|jpg|jpeg|gif|bmp|png|mp3|avi|mov|mpg|mpeg|txt|amr|mmf|wml|wbmp|mid|midi|3gp|js|css|htm|html?)$ access_log %%sitedir%%/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:11111; } }