OpenVZ/Sharedhosting
Материал из ALT Linux Wiki
(перенос в категорию Admin) |
|||
(2 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
- | |||
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenVZ/Sharedhosting}} | {{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenVZ/Sharedhosting}} | ||
- | + | ''ALT-адаптированная выжимка из 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: |
- | <pre># for i in | + | <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 | + | <pre># for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl exec $i apt-get install openssh-server; done</pre> |
+ | Ставим в контейнеры по вкусу/потребностям mod_php, mod_perl, mod_fastcgi и остальное.. | ||
+ | |||
+ | == Настройка порт-форвардинга == | ||
На хост-системе правим /etc/sysconfig/iptables — добавляем: | На хост-системе правим /etc/sysconfig/iptables — добавляем: | ||
<pre>*nat | <pre>*nat | ||
Строка 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> | ||
- | Ставим | + | == Установка MySQL == |
+ | |||
+ | Ставим 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 | + | |
+ | и раскоментируем в /var/lib/mysql/my.cnf строчку skip-networking | ||
+ | |||
+ | == Настройка nginx == | ||
- | + | В хост-системе в /etc/sysconfig/iptables добавляем: | |
- | В хост-системе в /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 | ||
Строка 61: | Строка 66: | ||
} | } | ||
...</pre> | ...</pre> | ||
+ | |||
+ | == Настройка apache и ftp == | ||
Далее в каждом контейнере с 103-его по 111-й настраиваются Apache и вуаля — все работает! | Далее в каждом контейнере с 103-его по 111-й настраиваются Apache и вуаля — все работает! | ||
- | Теперь остается по аналогии поставить и настроить ftp-доступ | + | == Настройка ftp == |
- | В контейнеры ставим ftp-сервер | + | |
- | <pre># for i in | + | Теперь остается по аналогии поставить и настроить 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]] |
* [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}}}} |
Текущая версия на 13:52, 1 июля 2015
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: дописать про почту (и централизованное логохранилище?)
Ссылки
- OpenVZ
- Про nginx в частности
- Зачем нужен nginx by Anton V. Yuzhaninov
- Подводные камни при использовании кэширования в nginx