nginx [engine x] — это HTTP-сервер и почтовый прокси-сервер.
Разработанный отличным спецом Игорем Сысоевым.На данный момент nginx
работает на нескольких достаточно нагруженных сайтах под FreeBSD и
Linux, в том числе на большинстве серверов Рамблера.
Некоторое
время назад возникла ситуация, что на нашем сервере накопилось очень
много статики, в основном это изображения, из-за отдачи которых аппач
создавал столько процессов, что система просто висла.. Вынести на
отдельный сервер картинки не представляется возможным, поэтому решил
поставить nginx как проксирующий на этой же машине, для того чтобы
быстрее отдавать статику не загружая аппач... Конфига сервера: PentiumD, 160 SATA RAID, 2 gb RAM. FreeBsd 5.4
PS Руководство не претендует на высокую оценку.. Пишу не часто
Установка nginx: И так начнем, переходим в /usr/local Код # cd /usr/local Создаем папку: Код # mkdir nginx Переходим в нее /usr/local/nginx: Код # cd nginx Загружаем дистрибутив:Код # wget http://www.sysoev.ru/nginx/nginx-0.6.29.tar.gz
Распаковываем: Код # tar zxf nginx-0.6.29.tar.gz
Переходим в директорию nginx-0.6.29:Код # cd nginx-0.6.29
Конфигурируем:Код # ./configure
Собираем и устанавливаем nginx:Код # make && make install && make clean
И так мы установили nginx в папку /usr/local/nginx/
Настройка nginx:
Так
у меня много виртуальных доменов, решил вынести их в отдельные
конфигурационные файлы. так удобней добавлять и позволяет настроить
каждый под себя. И так правим файл nginx.conf
Код user www www; worker_processes 8;
error_log logs/error.log info;
pid logs/nginx.pid;
events { worker_connections 2000; }
http { include mime.types; default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on; tcp_nopush on; tcp_nodelay on; send_lowat 12000;
client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m;
client_header_buffer_size 1k; large_client_header_buffers 4 4k;
output_buffers 4 32k; gzip on; gzip_vary on; gzip_min_length 1000; gzip_buffers 4 32k; gzip_types text/plain text/html application/x-javascript text/xml text/css; gzip_proxied expired no-cache no-store private auth; gzip_comp_level 7;
ignore_invalid_headers on;
include vhost/*.conf;
}
Обратите внимание на include vhost/*.conf; В папке vhost у нас будут конфиги для виртуальных хостов.
Пример конфиги виртуального хоста:
Код server { listen 80; server_name site.ru www.site.ru;
access_log logs/site.access.log main;
# Main location location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off;
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; client_body_buffer_size 128k;
proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90;
proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; }
# Static files location location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { root /home/site.ru/www; }
}
Здесь прописываются расширения статики и полный путь до сайта:
Код # Static files location location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { root /home/site.ru/www;
Изменения в аппаче Укажем Apache на просмотр порта 8080, а не 80:
Код Listen 8080
вместо Код Listen 80
и добавим строку:
NameVirtualHost *:8080
Необходимо откорректировать описания VirtualHost-ов на сервере: Код <VirtualHost [IP-адрес или домен]:80>
на Код <VirtualHost *:8080>
К приемру у меня: БылоКод <VirtualHost *:80> ServerName zatusim.ru ServerAlias www.zatusim.ru итд СталоКод <VirtualHost *:8080> ServerName zatusim.ru ServerAlias www.zatusim.ru итд
Далее перезапускаем аппач:Код # service httpd restart Запускаем nginx: Код /usr/local/nginx/sbin/nginx
Для автоматического запуска добавляем в /etc/rc.local
|