OpenVZ/Sharedhosting: различия между версиями

Материал из ALT Linux Wiki
(Import from freesource.info)
 
Нет описания правки
 
(не показаны 3 промежуточные версии 3 участников)
Строка 1: Строка 1:
[[Category:Documentation]]
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenVZ/Sharedhosting}}
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenVZ/Sharedhosting}}


== Shared webhosting ==
''ALT-адаптированная выжимка из http://wiki.openvz.org/Shared_webhosting''
(ALT-адаптированная выжимка из [http://wiki.openvz.org/Shared_webhosting http://wiki.openvz.org/Shared_webhosting])


== Создание/конфигурирование контейнеров ==
Сначала создаем нужное количество vz-контейнеров:
Сначала создаем нужное количество vz-контейнеров:
<pre># vzctl create 101 --ostemplate altlinux-3.0 --config vps.basic -- # тут будет жить nginx
<pre># vzctl create 101 --ostemplate altlinux-3.0 --config vps.basic -- # тут будет жить nginx
Строка 12: Строка 11:
# vzctl create 111 --ostemplate altlinux-3.0 --config vps.basic -- # а это пусть будет последний</pre>
# vzctl create 111 --ostemplate altlinux-3.0 --config vps.basic -- # а это пусть будет последний</pre>


И назначаем ip:
И назначаем IP:
<pre># for i in `vzlist –o vpsid -H -a`; do echo "VPS $i"; vzctl set $i --ipaddr 172.16.1.$i --save; done</pre>
<pre># for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl set $i --ipaddr 172.16.1.$i --save; done</pre>


Ставим в каждый контейнер openssh-server:
Ставим в каждый контейнер openssh-server:
<pre># for i in `vzlist –o vpsid -H -a`; do echo "VPS $i"; vzctl exec $i apt-get install openssh-server; done</pre>
<pre># for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl exec $i apt-get install openssh-server; done</pre>


На хост-системе правим /etc/sysconfig/iptables - добавляем:
Ставим в контейнеры по вкусу/потребностям mod_php, mod_perl, mod_fastcgi и остальное..
 
== Настройка порт-форвардинга ==
На хост-системе правим /etc/sysconfig/iptables — добавляем:
<pre>*nat
<pre>*nat
-A PREROUTING -p tcp --dport 10122 -j DNAT --to-destination 172.16.1.101:22
-A PREROUTING -p tcp --dport 10122 -j DNAT --to-destination 172.16.1.101:22
Строка 25: Строка 27:
-A PREROUTING -p tcp --dport 11122 -j DNAT --to-destination 172.16.1.111:22</pre>
-A PREROUTING -p tcp --dport 11122 -j DNAT --to-destination 172.16.1.111:22</pre>


Ставим в контейнеры по вкусу/потребностям mod_php, mod_perl, mod_fastcgi и остальное..
== Установка MySQL ==
 
Ставим MySQL и вешаем его на порт 3306:


Ставим Mysql  и вешаем его на порт 3306:
<pre># vzctl exec 102 apt-get install MySQL-server
<pre># vzctl exec 102 apt-get install MySQL-server
# vzctl enter 102
# vzctl enter 102</pre>
и раскоментируем в /var/lib/mysql/my.cnf  skip-networking</pre>


Теперь переходим к настройке Nginx
и раскоментируем в /var/lib/mysql/my.cnf строчку skip-networking
В хост-системе в /etc/sysconfig/iptables добавляем
 
== Настройка nginx ==
 
В хост-системе в /etc/sysconfig/iptables добавляем:
<pre>-A PREROUTING -p tcp -d REAL_IP --dport 80 -j DNAT --to-destination 172.16.1.101:80</pre>
<pre>-A PREROUTING -p tcp -d REAL_IP --dport 80 -j DNAT --to-destination 172.16.1.101:80</pre>
Потом  
Потом:
<pre># vzctl enter 101
<pre># vzctl enter 101
# joe /etc/nginx/nginx.conf
# joe /etc/nginx/nginx.conf
Строка 62: Строка 67:
...</pre>
...</pre>


Далее в каждом контейнере с 103-его по 111-й настраиваются Apache и вуаля -- все работает!
== Настройка apache и ftp ==


Теперь остается по аналогии поставить и настроить ftp-доступ:
Далее в каждом контейнере с 103-его по 111-й настраиваются Apache и вуаля — все работает!
В контейнеры ставим ftp-сервер
 
<pre># for i in `vzlist –o vpsid -H -a`; do echo "VPS $i"; vzctl exec $i apt-get install proftpd; done</pre>
== Настройка ftp ==
 
Теперь остается по аналогии поставить и настроить ftp-доступ.
 
В контейнеры ставим ftp-сервер:
<pre># for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl exec $i apt-get install proftpd; done</pre>
На хост-системе добавляем:
На хост-системе добавляем:
<pre>*nat
<pre>*nat
Строка 74: Строка 84:
-A PREROUTING -p tcp --dport 11121 -j DNAT --to-destination 172.16.1.111:21</pre>
-A PREROUTING -p tcp --dport 11121 -j DNAT --to-destination 172.16.1.111:21</pre>


 
== TODO ==
TODO: дописать про почту (и централизованное логохранилище?)
TODO: дописать про почту (и централизованное логохранилище?)


=== Ссылки ===
== Ссылки ==
* [[OpenVZ|OpenVZ]]
* [[OpenVZ]]
* [http://freesource.info/wiki//AntiApache Про nginx в частности]
* [http://freesource.info/wiki//AntiApache Про nginx в частности]
* [http://ospf-ripe.livejournal.com/754.html Зачем нужен nginx] by Anton V. Yuzhaninov
* [http://ospf-ripe.livejournal.com/754.html Зачем нужен nginx] by Anton V. Yuzhaninov
* [http://dklab.ru/chicken/nablas/56.html Подводные камни при использовании кэширования в nginx]
[[Категория:OpenVZ]]
{{Category navigation|title=OpenVZ|category=OpenVZ|sortkey={{SUBPAGENAME}}}}

Текущая версия от 16:52, 1 июля 2015

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


ALT-адаптированная выжимка из http://wiki.openvz.org/Shared_webhosting

Создание/конфигурирование контейнеров

Сначала создаем нужное количество vz-контейнеров:

# vzctl create 101 --ostemplate altlinux-3.0 --config vps.basic -- # тут будет жить nginx
# vzctl create 102 --ostemplate altlinux-3.0 --config vps.basic -- # а тут - MySQL
# vzctl create 103 --ostemplate altlinux-3.0 --config vps.basic -- # это первый из контейнеров с апачем
...
# vzctl create 111 --ostemplate altlinux-3.0 --config vps.basic -- # а это пусть будет последний

И назначаем IP:

# for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl set $i --ipaddr 172.16.1.$i --save; done

Ставим в каждый контейнер openssh-server:

# for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl exec $i apt-get install openssh-server; done

Ставим в контейнеры по вкусу/потребностям mod_php, mod_perl, mod_fastcgi и остальное..

Настройка порт-форвардинга

На хост-системе правим /etc/sysconfig/iptables — добавляем:

*nat
-A PREROUTING -p tcp --dport 10122 -j DNAT --to-destination 172.16.1.101:22
-A PREROUTING -p tcp --dport 10222 -j DNAT --to-destination 172.16.1.102:22
...
-A PREROUTING -p tcp --dport 11122 -j DNAT --to-destination 172.16.1.111:22

Установка MySQL

Ставим MySQL и вешаем его на порт 3306:

# vzctl exec 102 apt-get install MySQL-server
# vzctl enter 102

и раскоментируем в /var/lib/mysql/my.cnf строчку skip-networking

Настройка nginx

В хост-системе в /etc/sysconfig/iptables добавляем:

-A PREROUTING -p tcp -d REAL_IP --dport 80 -j DNAT --to-destination 172.16.1.101:80

Потом:

# vzctl enter 101
# joe /etc/nginx/nginx.conf
...
      server {
      listen REAL_IP;
      server_name domain1.ru www.domain1.ru;
      location / {
                      proxy_pass http://172.16.1.103;
                           }
                     }
      server {
      listen REAL_IP;
      server_name domain2.ru www.domain2.ru;
      location / {
                      proxy_pass http://172.16.1.104;
                           }
                     }
      server {
      listen ANOTHER_REAL_IP;
      server_name domain3.ru www.domain3.ru;
      location / {
                      proxy_pass http://172.16.1.103;
                           }
                     }
...

Настройка apache и ftp

Далее в каждом контейнере с 103-его по 111-й настраиваются Apache и вуаля — все работает!

Настройка ftp

Теперь остается по аналогии поставить и настроить ftp-доступ.

В контейнеры ставим ftp-сервер:

# for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl exec $i apt-get install proftpd; done

На хост-системе добавляем:

*nat
-A PREROUTING -p tcp --dport 10121 -j DNAT --to-destination 172.16.1.101:21
-A PREROUTING -p tcp --dport 10221 -j DNAT --to-destination 172.16.1.102:21
...
-A PREROUTING -p tcp --dport 11121 -j DNAT --to-destination 172.16.1.111:21

TODO

TODO: дописать про почту (и централизованное логохранилище?)

Ссылки