ispCP - Board - Support
nginx module - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega Development Area (/forum-1.html)
+--- Forum: Suggestions (/forum-2.html)
+--- Thread: nginx module (/thread-12046.html)

Pages: 1 2


nginx module - DragonZX - 11-04-2010 06:45 PM

Russian developer have done module for Apache + nginx chain in panel
Russian post.
Now it's only russian manual. We will be glad, if you translate it on other languages.


RE: nginx module - Alex1 - 11-04-2010 07:27 PM

I can translate it in Bulgarian.


RE: nginx module - DragonZX - 11-05-2010 02:11 AM

Do it plz)


RE: nginx module - Alex1 - 11-05-2010 02:57 AM

what to translate?


RE: nginx module - DragonZX - 11-05-2010 03:53 AM

Documentation (.txt files) and here is the same
http://isp-control.net/documentation/ru:scripte:nginx_module


RE: nginx module - Alex1 - 11-05-2010 05:46 AM

I translate nginx install document

Code:
Инсталиране на модула

Версия на модул: 0.7.1
Версия на ръководство: 1.1
Разработчик: koffu
Ръководство: Enkil, DragonZX
Поддържащи дистрибуции: Debian(Lenny, Squeeze), Ubuntu 10.4
Версия на панела: от 1.0.5 нагоре

Подготовка за инсталация

Ние мислим, че сте инсталирали вече панела и той работи и сте решили да добавите apache nginx мод


Създаваме папка за скрипта

#cd /usr/local/src
# mkdir ispcp-nginx
# cd ispcp-nginx

Изтеглете най-новата версия на панела от форума

# wget http://repo.public-source.ru/ispcp-omega/mods/ispcp2nginx/ispcp-nginx-0.7.1.tar.gz
# tar xvfz ispcp-nginx-0.7.1.tar.gz

Създаваме папка и копираме скрипта
# mkdir /usr/local/nginx
# cp -r ispcp-nginx-0.7.1/* /usr/local/nginx
# cd /usr/local/nginx

Инсталираме mod_rpaf

Инсталираме необходимите модули

# apt-get install libhtml-parser-perl libwww-perl libcompress-zlib-perl apache2-prefork-dev

Рестартираме Apache

# /etc/init.d/apache2 restart

Сваляме и инсталираме mod_rpaf
# cd /usr/local/src
# wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
# tar xzf mod_rpaf-0.6.tar.gz
# cd mod_rpaf-0.6
# apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Създаваме файл rpaf-2.0.load и вписваме това

LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.0 x.x.x.x

Включваме модула

# a3enmod rpaf-2.0

рестартираме Apache

# /etc/init.d/apache2 restart

За да проверим дали модула mod_rpaf работи направете файл test.php с това съдържание:

<?
echo $_SERVER['REMOTE_ADDR'];
?>

Инсталиране на nginx

    # wget http://sysoev.ru/nginx/nginx-0.8.50.tar.gz
    # tar xzf nginx-0.8.50.tar.gz
    # cd nginx-0.8.50
    # aptitude install libpcre3-dev libssl-dev
    # ./configure --with-http_realip_module --with-http_addition_module --with-http_gzip_static_module --with-http_stub_status_module && make -j2 && make install
    # mkdir /var/log/nginx && chown www-data:www-data /var/log/nginx

След инсталацията на nginx създаваме база данни.

# mysql -u root -p ispcp

USE ispcp
grant select on ispcp.domain to 'nginx'@'localhost' identified by 'вашата парола';
grant select on ispcp.subdomain to 'nginx'@'localhost' identified by 'вашата парола';
grant select on ispcp.domain_aliasses to 'nginx'@'localhost' identified by 'вашата парола';
exit

Прехвърляне на администраторския панел на 443 порт

# mkdir /etc/apache2/ssl
# openssl req -x509 -days 3650 -nodes -new -newkey rsa:2048 -out /etc/apache2/ssl/ispcpweb.pem -keyout /etc/apache2/ssl/ispcpweb.pem
# chmod 600 /etc/apache2/ssl/ispcpweb.pem
# a2enmod ssl

Проверяваме конфигурацията на Apache

# nano /etc/apache2/ports.conf

Променяме порта, на който работи админа

Пълно копиране на раздела

<VirtualHost 111.222.333.444:80>
содержимое секции
</VirtualHost>

и променяме съдържанието на раздела

файла трябва да съдържа

<VirtualHost 111.222.333.444:80>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    
        съдържанието на раздела
</VirtualHost>

и по-долу

<VirtualHost 111.222.333.444:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/ispcpweb.pem
    
        содержимое секции
</VirtualHost>

Добавяме зареждането на nginx

# nano /etc/logrotate.d/nginx

/var/log/nginx/*.log {
          daily
        missingok
        rotate 20
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if [ $(ps ax | grep nginx | grep -v grep | wc -l) = "0" ]; then killall -s HUP nginx; fi
        endscript
}

Промяна на настройките за достъп до администраторския панел

nano /etc/ispcp/ispcp.conf
BASE_SERVER_VHOST_PREFIX = https://

За да работи правилно трябва да се промени и съдържанието на phpmyadmin

# nano /var/www/ispcp/gui/client/sql_auth.php

на

$fp = fsockopen('ssl://'.Config::get('BASE_SERVER_IP'), 443, $errno, $errstr, 5);

Добавяне на домейни и поддомейни, за което следва да се отмени конфигурация в папката /conf.d

touch /usr/local/nginx/conf.d/site1.bg
touch /usr/local/nginx/conf.d/site2.bg
touch /usr/local/nginx/conf.d/subdomain.site1.bg
touch /usr/local/nginx/conf.d/subdomain.site2.bg

После пускаме скрипта

# ./ispcp-nginx.pl

Когато скриптът работи правилно трябва да видите нещо подобно

//Writing global nginx configuration file...
Writing nginx.conf...done
Converted subdomain.site1.bg
Converted    site1.bg
Converted subdomain.site2.bg
Converted    site2.bg
Writing nginx virtual hosts configuration file...
Writing vhosts.conf...done//

проверка на синтаксиса на конфигурационните файлове

# nano /usr/local/nginx/sbin/nginx -t

Трябва да има нещо подобно

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

Добавяме в IPTABLES и пренасочваме целият входящ трафик към сървъра на порт 80 - 81

# iptables -t nat -A PREROUTING ! -s 127.0.0.1 -d Вашият ip address -p tcp --dport 80 -j REDIRECT --to-ports 81

Рестартирайте apache и nginx

# /etc/init.d/apache2 restart
# kill -HUP `cat /var/run/nginx.pid`



RE: nginx module - DragonZX - 11-05-2010 05:59 AM

good, but do it at wiki or translate .txt directly and attach it.
Get it


RE: nginx module - Alex1 - 11-05-2010 07:09 AM

conf-structure_bg

Code:
Описание на конфигурационния файл за интеграция на Nginx модула    в хостинг панела ispCP (Български език)

***************************************************************************
***************************************************************************
***    Разработка на модула - koffu                    ***
***    Инструкция - Enkil                        ***
***    Адаптация инструкции - DragonZX                    ***
***    Версия модуля - 0.7.1                        ***
***    Успешно тестване на системата (при писане на интструкции)     ***
***                                    ***
***    ispCP 1.0.7 OMEGA                        ***
***    build: 20100819                            ***
***    Операционна система: Ubuntu Server 10.4 LTS            ***
***************************************************************************
***************************************************************************

Синтаксиса на файла трябва да е във форма
Име на променлива = стойност
Пространства около знака за равенство нямат никакво значение и за това ще бъдат
премахнати при преработката, кавички и други специални знаци, които не ни трябват.

Описание на променливите

NGINXCONF = /usr/local/nginx/conf/nginx.conf - Главният конфигурационен файл на Nginx.
NGINXVCONF = /usr/local/nginx/conf/vhosts.conf - служи да се определи местоположението на файла с настройки за всички виртуални сървъри
NGINXUSER = www-data - потребителите, с който ще работи nginx
NGINXLOGLOCATION = /var/log/nginx - директорията за лог файловете на nginx
NGINXPIDFILE = /var/run/nginx.pid - директорията за pid файловете на nginx
NGINXPORT = 81 - порта, с който nginx ще работи
APACHEIP = 188.11.11.11 IP-адреса, с който Apache ще работи
APACHEPORT = 80 - порта, с който ще работи apache

Описание за акаунта за достъпа до базата данни ispcp
DBUSER = nginx - потребителя на базата данни
DBPASS = yourpassword - вашата парола за базата данни

PUBLICFOLDER = htdocs - главната директория за уеб съдържанието
STATIC = all - показва, каква роля играе nginx

    all - използване на nginx за всички статични домейни
    php - използване на nginx за всички статични домейни, който работят само с php
    none - използване на nginx за контрол и заявления към apache
readme_bg

Code:
Инструкция по установке модуля интеграции nginx и хостинг-панели ispCP (Русский язык)

***************************************************************************
***************************************************************************
***    Разработка модуля - koffu                    ***
***    Инструкция - Enkil                        ***
***    Адаптация инструкции - DragonZX                    ***
***    Версия модуля - 0.7.1                        ***
***    Успешное тестирование на системе (при написании инструкции) -     ***
***                                    ***
***    ispCP 1.0.7 OMEGA                        ***
***    build: 20100819                            ***
***    Операционная система: Ubuntu Server 10.4 LTS            ***
***************************************************************************
***************************************************************************

Общи сведения:
Модулът Ispcp2nginx е предназначен за автоматично генериране на конфигурационни файлове за работещ уеб сървър с nginx

За да не се конфигурира самият панел nginx ще работи с порт 81, а Apache с порт 80. Това ще се направи с помощта на IPTABLES
Предвидени са и ограничения, определени в "/" и ". php", който претоварват Apache.

# Поставлены под себя на основании конфигурации сайта большого туроператора, которого часто атаковали. При желании менять строки - 70,71.
# FreeBSD и Linux автоматично заменят kqueue на epoll.

Apache ще получава въпроси от 127.0.0.1, следователно, необходимо е инсталирането на mod-rpaf, който ще записва цялата информация в access.log    
Трафика чрез Nginx се счита за несигурен(забранен)

При создании конфигурации скрипт заполнит соответствующую секцию vhosts.conf информацией, взятой из файлов переопределения конфигурации.
Конфигурацию можно не создавать с нуля, а скопировать из файла vhosts.conf, а потом создать на его основе файл переопределения конфигурации.
Если размер файла будет равен нулю, то он будет пропущен.

################################################################################​###################

Модуль включает в себя следующие файлы и папки:

/conf.d - папка размещения файлов переопределения конфигурации доменов/поддоменов/алиасов доменов
ispcp-nginx.pl - изпълнимият файл за модула
ispcp-nginx.conf - файла за конфигурация на модула
readme_ru.txt - общата информация на Български език
conf-structure_ru.txt - обяснява структурата на файла ispcp-nginx.conf
installation_ru - Инструкции за инсталиране на Български език
################################################################################​###################

installation_bg

Code:
Инсталиране на модула nginx за хостинг панела ispCP (Български език)

***************************************************************************
***************************************************************************
***    Разработка на модула - koffu                    ***
***    Инструкция - Enkil                        ***
***    Адаптация инструкции - DragonZX                    ***
***    Версия модуля - 0.7.1                        ***
***    Успешно тестване на системата (при писане на интструкции)     ***
***                                    ***
***    ispCP 1.0.7 OMEGA                        ***
***    build: 20100819                            ***
***    Операционна система: Ubuntu Server 10.4 LTS            ***
***************************************************************************
***************************************************************************

Подготовка за инсталация

Ние мислим, че сте инсталирали вече панела и той работи и сте решили да добавите apache nginx мод


Създаваме папка за скрипта

#cd /usr/local/src
# mkdir ispcp-nginx
# cd ispcp-nginx

Изтеглете най-новата версия на панела от форума

# wget http://repo.public-source.ru/ispcp-omega/mods/ispcp2nginx/ispcp-nginx-0.7.1.tar.gz
# tar xvfz ispcp-nginx-0.7.1.tar.gz

Създаваме папка и копираме скрипта
# mkdir /usr/local/nginx
# cp -r ispcp-nginx-0.7.1/* /usr/local/nginx
# cd /usr/local/nginx

Инсталираме mod_rpaf

Инсталираме необходимите модули

# apt-get install libhtml-parser-perl libwww-perl libcompress-zlib-perl apache2-prefork-dev

Рестартираме Apache

# /etc/init.d/apache2 restart

Сваляме и инсталираме mod_rpaf
# cd /usr/local/src
# wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
# tar xzf mod_rpaf-0.6.tar.gz
# cd mod_rpaf-0.6
# apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Създаваме файл rpaf-2.0.load и вписваме това

LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.0 x.x.x.x

Включваме модула

# a3enmod rpaf-2.0

рестартираме Apache

# /etc/init.d/apache2 restart

За да проверим дали модула mod_rpaf работи направете файл test.php с това съдържание:

<?
echo $_SERVER['REMOTE_ADDR'];
?>

Инсталиране на nginx

    # wget http://sysoev.ru/nginx/nginx-0.8.50.tar.gz
    # tar xzf nginx-0.8.50.tar.gz
    # cd nginx-0.8.50
    # aptitude install libpcre3-dev libssl-dev
    # ./configure --with-http_realip_module --with-http_addition_module --with-http_gzip_static_module --with-http_stub_status_module && make -j2 && make install
    # mkdir /var/log/nginx && chown www-data:www-data /var/log/nginx

След инсталацията на nginx създаваме база данни.

# mysql -u root -p ispcp

USE ispcp
grant select on ispcp.domain to 'nginx'@'localhost' identified by 'вашата парола';
grant select on ispcp.subdomain to 'nginx'@'localhost' identified by 'вашата парола';
grant select on ispcp.domain_aliasses to 'nginx'@'localhost' identified by 'вашата парола';
exit

Прехвърляне на администраторския панел на 443 порт

# mkdir /etc/apache2/ssl
# openssl req -x509 -days 3650 -nodes -new -newkey rsa:2048 -out /etc/apache2/ssl/ispcpweb.pem -keyout /etc/apache2/ssl/ispcpweb.pem
# chmod 600 /etc/apache2/ssl/ispcpweb.pem
# a2enmod ssl

Проверяваме конфигурацията на Apache

# nano /etc/apache2/ports.conf

Променяме порта, на който работи админа

Пълно копиране на раздела

<VirtualHost 111.222.333.444:80>
содержимое секции
</VirtualHost>

и променяме съдържанието на раздела

файла трябва да съдържа

<VirtualHost 111.222.333.444:80>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    
        съдържанието на раздела
</VirtualHost>

и по-долу

<VirtualHost 111.222.333.444:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/ispcpweb.pem
    
        содержимое секции
</VirtualHost>

Добавяме зареждането на nginx

# nano /etc/logrotate.d/nginx

/var/log/nginx/*.log {
          daily
        missingok
        rotate 20
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if [ $(ps ax | grep nginx | grep -v grep | wc -l) = "0" ]; then killall -s HUP nginx; fi
        endscript
}

Промяна на настройките за достъп до администраторския панел

nano /etc/ispcp/ispcp.conf
BASE_SERVER_VHOST_PREFIX = https://

За да работи правилно трябва да се промени и съдържанието на phpmyadmin

# nano /var/www/ispcp/gui/client/sql_auth.php

на

$fp = fsockopen('ssl://'.Config::get('BASE_SERVER_IP'), 443, $errno, $errstr, 5);

Добавяне на домейни и поддомейни, за което следва да се отмени конфигурация в папката /conf.d

touch /usr/local/nginx/conf.d/site1.bg
touch /usr/local/nginx/conf.d/site2.bg
touch /usr/local/nginx/conf.d/subdomain.site1.bg
touch /usr/local/nginx/conf.d/subdomain.site2.bg

После пускаме скрипта

# ./ispcp-nginx.pl

Когато скриптът работи правилно трябва да видите нещо подобно

//Writing global nginx configuration file...
Writing nginx.conf...done
Converted subdomain.site1.bg
Converted    site1.bg
Converted subdomain.site2.bg
Converted    site2.bg
Writing nginx virtual hosts configuration file...
Writing vhosts.conf...done//

проверка на синтаксиса на конфигурационните файлове

# nano /usr/local/nginx/sbin/nginx -t

Трябва да има нещо подобно

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

Добавяме в IPTABLES и пренасочваме целият входящ трафик към сървъра на порт 80 - 81

# iptables -t nat -A PREROUTING ! -s 127.0.0.1 -d Вашият ip address -p tcp --dport 80 -j REDIRECT --to-ports 81

Рестартирайте apache и nginx

# /etc/init.d/apache2 restart
# kill -HUP `cat /var/run/nginx.pid`

translated readme_ru partly because I did not understand some of the words if you are able to translate the English file readme_ru gonna be easier.


RE: nginx module - DragonZX - 11-05-2010 08:08 AM

English version of Readme. Sory for some mistakes. It's very hard work to translate manual into foreign language specific text, if you're don't know how to translate some dialectic words


RE: nginx module - Alex1 - 11-05-2010 09:08 AM

ready

readme_bg.txt

Code:
Инструкции за инсталиране на модула nginx в хостинг панела ispCP (Български език)

***************************************************************************
***************************************************************************
***    Module Development - koffu                    ***
***    Instruction - Enkil                        ***
***    Adaptation - DragonZX                        ***
***    Module version - 0.7.1                        ***
***    Hopefully tested on (during writing this manual) -         ***
***                                    ***
***    ispCP 1.0.7 OMEGA                        ***
***    build: 20100819                            ***
***    Operation system: Ubuntu Server 10.4 LTS            ***
***************************************************************************
***************************************************************************

Обща информация
Модулът ispcp2nginx е необходим за автоматично създаване на конфигурационни файлове за интерфейса на уеб сървър nginx

За да не се конфигурира ръчно панела, nginx ще използва порт 81, а Apache порт 80 ще използваме препращане чрез IPTABLES
Предвидени са и ограничения, определени в "/" и ".php", който претоварват Apache.

# Той е настроен за себе си, при условие, че цялата конфигурация и целият сайт са били пренатоварени(DDOS-ed) може да промените стринговете на 70-71.
# За FreeBSD и Linux автоматично се променя използвайки kqueue за epoll.

Apache ще има въпроси от 127.0.0.1, за това трябва да инсталирате mod-rpaf, които предоставят заглавията на Nginx и записва точната информация
в access.log. Трафика чрез Nginx няма нищо общо с панела !

По време на създаването на конфигурационният скрипт при пълен пропуск на vhosts.conf с информация взета предварително натоварва конфигурационните файлове.
Конфигурацията може да не се генерира от празни, но копира от vhosts.conf, след предварителното натоварване конфигурационните файлове ще бъдат генерирани.
Ако файловете са празни те ще бъдат пропуснати.

################################################################################​###################

Модула използва тези файлове и папки:

/conf.d - Предварително натоварване на конфигурационните файлове директория: domains/subdomeins/aliases' (домейни,поддомейни,домейни,псевдоними)
ispcp-nginx.pl - изпълним файл
ispcp-nginx.conf - конфигурационният файл
readme_bg.txt - Инструкции за инсталиране на модула
conf-structure_bg.txt - Всичко за ispcp-nginx.conf
installation_bg - Инструкции за инсталация

################################################################################​###################