./configure \
--prefix=%nginx_datadir \
--conf-path=%nginx_etc/nginx.conf \
--sbin-path=%{_sbindir}/%{name} \
--error-log-path=%nginx_log/nginx.error.log \
--http-log-path=%nginx_log/nginx.log \
--http-client-body-temp-path=%nginx_spool/tmp/client \
--http-proxy-temp-path=%nginx_spool/tmp/proxy \
--http-fastcgi-temp-path=%nginx_spool/tmp/fastcgi \
--pid-path=%_var/run/nginx.pid \
--user=%nginx_user \
--group=%nginx_group \
--with-cc-opt="-I %_includedir/pcre/" \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_perl_module
* This source code was highlighted with Source Code Highlighter.
user nginx;
# Число рабочих процессов, рекомендуется ставить по количеству ядер
worker_processes 8;
# Уменьшает число системных вызовов gettimeofday(), что приводит к увеличению производительности
timer_resolution 100ms;
# Изменяет ограничение на число используемых файлов RLIMIT_NOFILE для рабочего процесса.
worker_rlimit_nofile 8192;
# Директива задаёт приоритет рабочих процессов от -20 до 20 (отрицательное число означает более высокий приоритет).
worker_priority -5;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
# Включить sendfile(). Использование sendfile() экономит системные вызовы, уменьшает число копирований данных,
№ позволяет использовать меньше физической памяти.
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1100;
gzip_buffers 64 8k;
gzip_comp_level 3;
gzip_http_version 1.1;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript text/css;
# Load config files from the /etc/nginx/conf.vs directory
include /etc/nginx/conf.vs/*.conf;
}
* This source code was highlighted with Source Code Highlighter.
server {
listen 80;
server_name _;
location / {
gzip_static on;
root /var/nginx/html;
index index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /var/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/nginx/html;
}
}
* This source code was highlighted with Source Code Highlighter.
Некоторые директивы я прокоментировал, некоторые мы рассмотрим позже. Главное, на что следует обратить внимание, что синтаксис понятен в большинстве случаев даже без документации.
location = /stat {
stub_status on;
access_log off;
allow xx.xx.xx.xx;
deny all;
}
* This source code was highlighted with Source Code Highlighter.
теперь статистику работы nginx можно смотреть по адресу http://simple.com/stat
LoadModule rpaf_module modules/mod_rpaf-2.0.so
#
# Mod rpaf
#
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx
RPAFheader X-Forwarded-For
* This source code was highlighted with Source Code Highlighter.
И подключаем модуль просмотра статистики:
ExtendedStatus On
<Location /apache-stat>
SetHandler server-status
Deny from all
Allow from xx.xx.xx.xx
</Location>
* This source code was highlighted with Source Code Highlighter.
теперь статистику для apache можно смотреть по адресу http://simple.com/apache-stat
location /js/ {Для того, чтоб виртуальный диск создавался автоматически при перезагрузке в /etc/fstab добавляем
root /var/www/img_virtual/auto.ria.ua/js
}
...
none /var/www/img_virtual tmpfs size=1g,mode=1777 0 0(при старте системы автоматически будет создаваться диск, размером 1G)
for i in `find ./* -type f -name '*.js'`; do echo $i; gzip -c -9 $i > $i.gz; done;в конфиг nginx добавляем строчку gzip_static on :
for i in `find ./* -type f -name '*.css'`; do echo $i; gzip -c -9 $i > $i.gz; done;
location /js/ {Также можно включить online упаковку для динамических файлов:
gzip_static on;
root /var/www/img_virtual/auto.ria.ua/js
}
location / {
gzip on;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_comp_level 3;
gzip_types text/plain application/xml application/x-javascript text/css;
root /var/www/auto.ria.ua/
}
location / {
root /var/www/;
open_file_cache max=1024 inactive=600s;
open_file_cache_valid 2000s;
open_file_cache_min_uses 1;
open_file_cache_errors on;
}
location / {Если файл не будет найден, на виртуальном диске будет обращение к backend.
root /var/www/;
try_files /img_virtual/hot/$uri @storage;
}
location @storage {
proxy_pass http://backend;
proxy_set_header Host $host;
}
location @storage {При такой конфигурации каждый запрошеный файл помещается в кеш.
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /var/www/img_virtual/hot/;
root /var/www/img_virtual/hot/;
}
cd /var/www/img_virtual/hot/(если файл из кеша не запрашимвается более 60 минут, мы его удаляем)
find ./ -type f -amin +60 -delete