Nginx – маленький и легкий, но очень мощный и эффективный web-сервер, созданный Игорем Сысоевым для использования на серверах компании Рамблер и любезно предоставленный им для использования open-source сообществом. Этот сервер может использоваться как самостоятельный HTTP-сервер или как reverse proxy перед Апачем или любым другим “тяжелым” веб сервером для снижения нагрузки на backend-сервере от большого количества одновременных HTTP-сессий. Как самостоятельный сервер, nginx без проблем выдерживает огромные нагрузки при раздаче статического контента (images, html-pages и т.д.).
Качаем последнюю стабильную версию, на даный момент это nginx-0.8.54 и устанавливаем
cd /usr/local/src/ wget http://nginx.org/download/nginx-0.8.54.tar.gz tar -xvf nginx-0.8.54.tar.gz cd nginx-0.8.54 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module |
Если Вам выдает ошибку
./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option. |
тогда нужно установить следующие компоненты
yum install -y httpd-devel pcre perl pcre-devel zlib zlib-devel GeoIP GeoIP-devel |
и конфигурим Nginx снова
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module make make install |
Добавляем юзера nginx
useradd -M -r --shell /sbin/nologin --home-dir /usr/local/nginx nginx |
далее редактируем конфиг Apache /etc/httpd/conf/httpd.conf (меняем порт с 80 на 8080) и далее рестартуєм Apache и Nginx
/etc/init.d/httpd restart /etc/init.d/nginx restart |
проверяем или все ОК
netstat -nltp |grep 80 |
результат должен быть таким
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22581/nginx.conf tcp 0 0 :::8080 :::* LISTEN 22620/httpd |
Все Ninx установлен, но все домены начали работать с директории /usr/local/nginx/html/
Теперь просто нужно создать отдельный виртуалхост для вашего домена, в моем случае это server.yourmir.info
И так, для начала создаем диретория где будут хранится наши виртуал хосты
mkdir /usr/local/nginx/conf.d |
далле приводим файл /usr/local/nginx/conf/nginx.conf к следующему виду
user nginx; worker_processes 1; error_log /usr/local/nginx/logs/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /usr/local/nginx/conf/mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } include /usr/local/nginx/conf.d/*.conf; } |
далее
cd /usr/local/nginx/conf.d/ touch server.yourmir.info.conf vi server.yourmir.info.conf |
И вставляем следующий конф:
server { access_log off; error_log logs/vhost-error_log warn; listen 80; server_name server.yourmir.info www.server.yourmir.info; location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$ { root /home/server.yourmir.info/public_html; } } |
Все, рестартуем Nginx и проверяем Ваш сайт, у меня ,повторюсь, это http://server.yourmir.info
/etc/init.d/nginx stop /etc/init.d/nginx start |
Вот Бы еще скриптик для создания таких хостов по списку доменов…
Ну это, не проблема, главное знать полные пути к сайтам. А так как здесь представленна установка на “голый” CentOS то это немножко сложновато, так как разные администраторы задают разные пути.
Это довольно просто делается если установлення панель управления cPanel. Установку Nginx под cPanel напишу немножко позже.