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.

Ссылки

Источник — «http://wiki.rsu.edu.ru/index.php/Nginx»