Home
Записки домашнего админа
Установка и настройка NGINX на домашний сервер    
Автор:
 
Создано: 24.09.2015 10:00  
  Печать   E-mail  

      Схема домашней сети предполагает , что у нас один хороший сервер на котором поднят KVM и хостинговая часть состоит из двух (и более) виртуалок - Роутер (Firewall) , на роутер приходит один белый IP. Веб сервер (-а). Чтобы для каждого можно было выделять отдельный Веб сервер. Nginx поставим на Роутер и будем проксировать доменные имена сайтов на нужный нам веб сервер.

     Поехпли, добавим репозиторий nginx в yum, создадим файл nano /etc/yum.repos.d/nginx.repo и скопируем в него следующие строки :


[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0

     Меняем $releasever на "5" (для 5.x) либо на "6" (для 6.x), в зависимости от версии Вашей операционной системы. Ctrl+O Ctrl+X

Ставим как обычно:

yum install nginx

chkconfig nginx on

     Откройте файл конфигурации nginx nano /etc/nginx/nginx.conf и измените значение параметра worker_processes. Оно должно равняться количеству процессоров на Вашем сервере.В нашем случае в виртуалку роутера мы отдали 4 ядра поэтому;

worker_processes 4;

Разрешите сжатие:

gzip on;

Ctrl+O Ctrl+X

service nginx start

В файл nano /etc/sysconfig/iptables добавьте строку (открытие 80 порта):

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

service iptables restart

Теперь, так как конфигурация у нас специфическая , создадим  файл nano /etc/nginx/conf.d/router.conf в котором опишем куда мы хотим проксировать входящие пакеты, содержимое:

server {
    listen       80;
    server_name  router.ru www.router.ru ;    #тут через пробел переписываем все доменные имена которые висят на вашем белом IP в DNS

    server_name_in_redirect off;
    access_log /var/log/nginx/router_access.log;
    error_log /var/log/nginx/router_error.log;

    client_max_body_size 10m;
    proxy_buffers 4 256k;

    location ~ /\.git {
        deny all;
    }

    location / {
        proxy_pass                    http://xxx.xxx.xxx.xxx:80;    #тут ip веб сервера на котором крутится ваш сайт
        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;

    }
}

Ctrl+O Ctrl+X

service nginx restart

Ну вот , если апач на веб сервере поднят, то все должно работать.

Как не трудно догадаться, если ваша конфигурация хостинга состоит из нескольких независимых Веб серверов, то надо создать столько файлов подобных этому с разными

proxy_pass                    http://xxx.xxx.xxx.xxx:80;    #тут ip веб сервера на котором крутится ваш сайт

для каждого веб сервера.

Вот так, удачи.

 
Яндекс.Метрика
   
 
 
  Top