Nginx
Материал из RSU WiKi
Содержание |
Конфигурационный файл nginx
# cat /etc/nginx/sites-available/all
server {
listen 80 default;
access_log /var/log/nginx/all.access.log;
location / {
proxy_pass http://127.0.0.1:8000;
#Буферизация ответа, если бекенд отдаёт большие файлы, то её следует выключить
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
}
Logrotate
/etc/logrotate.d/nginx
------------------------------------------------------------------------------
/var/log/nginx/*log {
daily
rotate 9
missingok
notifempty
compress
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
Отдача статики при проксировании на backend
# Static files location
location ~*^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|ico)$
{
root /srv/www/vhosts/www.example.com/;
# Userdirs with "~"
location ~ /~([a-zA-Z0-9]*)/(.*) {
root /home/;
rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/public_html/$2 break;
}
}
Работа с AWStats
Если в nginx стоит regexp для самостоятельной отдачи статики из директории веб-сервера, у awstats отваливаются картинки и css, лечится вот так:
# AWStats static files location
location ^~ /awstatsclasess/ {
alias /usr/local/awstats/wwwroot/classes/;
}
location ^~ /awstatscss/ {
alias /usr/local/awstats/wwwroot/css/;
}
location ^~ /awstatsicons/ {
alias /usr/local/awstats/wwwroot/icon/;
}
Запрет доступа к директории не из локальной сети
location /files/ {
allow 127.0.0.1/32;
allow 172.16.0.0/12;
deny all;
}
Ограничение числа одновременных сессий
limit_zone ftp $binary_remote_addr 10m;
server {
location / {
root /srv/ftp/;
index index.html index.htm;
# Concurrent connections limit for downloading
limit_conn ftp 2;
}
}
Работа с SVN
Основная статья: Subversion
URL с документацией
Аналог SVN_DOC в /etc/sysconfig/apache2 APACHE_SERVER_FLAGS
# SVN Manual
location /svn-manual/ {
alias /usr/share/doc/packages/subversion/html/;
index index.html index.htm;
autoindex on;
}
Mod_rpaf
Модуль для правки ip в логах апача называется rpaf [1], качаем и устанавливаем:
cd /usr/local/src wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz tar zvfz mod_rpaf-0.6.tar.gz cd mod_rpaf-0.6 make rpaf-2.0 make install-2.0
Тюнинг
Ошибка "accept() failed (24: Too many open files)" [2]
Способ №1 (простой и правильный):
В конфиге nginx задаем значение переменной worker_rlimit_nofile 10240;
Способ №2:
В консоли пишем:
ulimit -n 16384
Правим файл /etc/security/limits.conf и добавляем туда строки:
* soft nofile 16384 * hard nofile 16384
В конфиге nginx задаем значение переменной worker_connections равным 16384, деленным на worker_processes. Например для "worker_processes 2;" это число будет 8192.

