1. Приветствую гостей и пользователей нашего форума! Первый раз вы у нас или же давно участвуете в жизни ресурса, хочу напомнить несколько моментов.

    1) Пользуемся поиском по форуму! Зачастую информация может находиться не по разделу!

    2) Раздел ИНФО-продуктов относительно новый, но имеем уже более 3000 высококлассных материалов (пользуемся сортировкой по прификсам).

    3) И самое важное, КАК КАЧАТЬ БЕЗ ОГРАНИЧЕНИЙ, вся информация находится по этой ссылке КУПИТЬ VIP

    4) Временная акция, получи +5 постов за вступление в нашу группу "Вконтакте" Более подробно ТУТ

    5) Веди активную жизнь на форуме и получай рубли на личный счёт!

    Скрыть объявление
  2. На нашем форуме Null-Prog действует серьёзное правило касательно размещения материалов!

    ДЛЯ РЕЛИЗЁРОВ: категорически запрещается выкладка материалов на файлообменники типа Deposit, letitbit и другие, требующие просмотров рекламы, обрезающие скорость и тд. Нарушителям, первые 2 раза предупреждения, далее БАН. Тему по этому поводу можно посмотреть ТУТ

    Скрыть объявление
  3. В тестовом режиме на нашем форуме открыт онлайн конструктор сайтов. Вы можете попробовать создать свой сайт у НАС, интуитивно понятный интерфейс, переведёт на 95%, быстрый экспорт проекта, от вас только перетаскивать элементы и вставить в них необходимый текст!

    Все вопросы ТУТ

    Скрыть объявление

  4. Скрыть объявление
  5. Уважаемые форумчане, открывается новый раздел форума, посвящённый ремонту и эксплуатации автомобилей. Просмотреть его можно ТУТ

    Так как раздел новый, информация будет пополнять каждый день. Если есть какие либо замечания по этому разделу, отписываемся в соответствующий раздел форума, либо в личку.

    Напоминаю, сообщения в разделе АВТО не учитываются, общение не ограничено.

    Скрыть объявление
  6. Объявляется набор Модераторов на различные раздел форума, свои заявки можно оставлять в ЭТОМ разделе, перед оставлением заявки рекомендуется ознакомиться с ПРАВИЛАМИ для модераторов.

УСТАНОВКА NGINX КАК FRONT-END К APACHE В DEBIAN / UBUNTU

Тема в разделе "Linux", создана пользователем Sam Jack, 3 июн 2015.

  1. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.725
    [​IMG]

    Рано или поздно перед администратором встает задача разгрузить back-end, которым как правило, является apache. Одной из альтернатив для front-end является легкий web сервер Nginx. Данная конфигурация дает особенно большой выигрыш при наличии подключений по медленным каналам связи (модем), так как ресурсы системы начинают использоваться для дела, а не ждать, пока будет получен запрос или отдан ответ клиенту.

    Преимущества архитектуры front-end/back-end


    В случае использования только apache, при наличии медленных подключений, последний бОльшую часть времени просто ждет, либо пока будет полностью получен запрос, либо пока будет полностью передан ответ клиенту. При этом под каждое соединение будет выделено определенное количество памяти, и, как не трудно догадаться, общее количество одновременных подключений будет прямо пропорционально доступному объему памяти.

    В случае же front-end/back-end конфигурации ситуация немного иная: front-end ( в нашем случае, nginx) полностью обрабатывает входящий запрос, используя при этом минимум системных ресурсов. Передает запрос back-end'у (apache), быстро получает ответ и начинает передачу ответа клиенту. Таким образом, ресурсы, занятые под apache, были использованы только для того, чтобы сгенерировать запрошенный контент, и были сразу возвращены системе после завершения работы. А с клиентом общается лишь легкий и не требовательный к ресурсам front-end nginx.


    Общий вид схемы front-end/back-end

    В общем виде, http-соединение будет проделывать следующий путь:

    HTTP Client ----> Front-End (nginx) ----> Back-End (apache)
    ----------- <---- ----------------- <---- -----------------
    1.2.3.4:80 192.168.0.1:80 192.168.0.1:8080

    В данном случае, fron-end и back-end располагаются на одной машине. В общем же случае, при необходимости они могут работать на разных машинах.

    Установка и настройка Nginx


    Установка Nginx


    Установка Nginx тривиальна, начиная с Lenny (5.0). До этого, чтобы поставить nginx версии 0.6 и выше, необходимо было собирать пакет вручную.

    apt-get install nginx


    Запускаем nginx:

    sudo /etc/init.d/nginx start


    Набираем в браузере: "http://ip_servera" (IP той машины, где был установлен nginx). Должно появиться приглашение nginx: "Welcome to nginx!".

    Настройка проксирования в Nginx


    Отключаем сайт по умолчанию:
    sudo rm /etc/nginx/sites-enabled/default


    Корректируем конфигурационный файл:

    sudo nano /etc/nginx/nginx.conf


    Должен иметь приблизительно следующий вид:

    # пользователь, от которого запускается процесс
    user www-data;
    # кол-во рабочих процессов. Обычно равно кол-ву ядер на машине
    worker_processes 2;

    error_log /var/log/nginx/error.log;
    pid /var/run/nginx.pid;

    events {
    worker_connections 1024;
    }

    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;

    sendfile on;
    tcp_nopush on;

    keepalive_timeout 2;
    tcp_nodelay on;

    gzip on;
    gzip_comp_level 3;
    gzip_proxied any;
    gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }

    Останавливаем nginx:

    sudo /etc/init.d/nginx stop


    Создаем файл конфигурации proxy.conf:

    sudo nano /etc/nginx/proxy.conf


    Должен иметь следующий вид:

    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;

    Настройка виртуального хоста в Nginx


    Создаем файл виртуального хоста:

    sudo nano /etc/nginx/sites-available/skripter.info


    Файл следующего вида:

    upstream backend {
    # Адрес back-end'a здесь укажите ваш ip сервера
    server ip_servera:8080;
    }

    server {
    listen 80;
    server_name www.skripter.info skripter.info;

    access_log /var/www/nginx_access.log;
    error_log /var/www/logs/nginx_error.log;

    # Перенаправление на back-end
    location / {
    proxy_pass http://backend;
    include /etc/nginx/proxy.conf;
    }

    # Статическиое наполнение отдает сам nginx
    # back-end этим заниматься не должен
    location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
    root /var/www/;
    }
    }

    Включаем новый хост:

    sudo ln -s /etc/nginx/sites-available/skripter.info /etc/nginx/sites-enabled/skripter.info

    Установка и настройка Apache


    Установка Apache


    Установка проста:

    apt-get install apache2 libapache2-mod-auth-mysql


    Настройка Apache


    Корректируем конфигурационный файл:

    sudo nano /etc/apache2/apache2.conf


    Необходимо найти и скорректировать следующие строки (при отсутствии добавить):

    # Таймаут 90 секунд
    Timeout 90

    # Выключаем KeepAlive
    KeepAlive Off

    # Имя сервера
    ServerName skripter.info


    Перезагружаем apache:

    sudo apache2ctl graceful


    Проверяем корректную настройку apache, открываю в браузере: "http://IP_SERVERA" (IP той машины, где был установлен apache). Должно появиться "It works!".


    Настраиваем apache на работу с портом 8080, а не 80:

    sudo nano /etc/apache2/ports.conf


    Должен иметь вид:

    NameVirtualHost *:8080
    Listen 8080

    Перезагружаем apache, nginx:

    sudo apache2ctl graceful
    sudo /etc/init.d/nginx start


    Настройка mod_rpaf


    Теперь, если посмотреть в логи apache, то там все запросы будут идти с адреса front-end'a. Чтобы это исправить, необходимо установить модуль mod_rpaf:

    apt-get install libapache2-mod-rpaf


    И настроить его:

    sudo nano /etc/apache2/mods-enabled/rpaf.conf


    Должен выглядеть примерно так:

    <IfModule mod_rpaf.c>
    # Включаем модуль
    RPAFenable On

    # Приводит в порядок X-Host
    RPAFsethostname On

    # Адрес фронтенда (nginx)
    RPAFproxy_ips 127.0.0.1 IP_SERVERA # здесь ваш ip
    </IfModule>


    Перезагружаем apache:

    sudo /etc/init.d/apache2 force-reload


    Настройка виртуального хоста в Apache


    Редактируем файл виртуального хоста:

    sudo nano /etc/apache2/sites-available/default


    Приблизительно следующего содержания:

    <VirtualHost *:8080>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    <Directory />
    Options FollowSymLinks
    AllowOverride all
    </Directory>
    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride All
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride all
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

    </VirtualHost>

    Перезапускаем apache2

    sudo /etc/init.d/apache2 reload
     

Поделиться этой страницей

iHax Community
Рейтинг@Mail.ru Яндекс.Метрика мониторинг сайтов
Форум программного обеспечения/
Загрузка...