Страница 1 из 1

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-01-27 21:51:46
Духовитин
Доброго дня!

Хочу проконсультироваться с вами в таком вопросе:
Есть сервер FreeBSD 10 amd64. Поднял на нём в клетках почту, mysql и dns.
Хочу также в клетках запустить веб-сервера, да так чтобы на каждый виртуальный хост была своя клетка.
Как я понимаю сделать это можно используя reverse proxy.

Прошу советов да помощи вашей, как это именно сделать?

Из мыслей у меня, что проксированием будет заниматься nginx и в зависимости от имени запрашиваемого хоста раскидывать запросы по клеткам.
В клетках же будет apache+php.

С nginx'ом к сожалению не было у меня опыта работы, потому хочу по минимум на грабли наступать. Покажите плиз участки конфига nginx которые должны за проксирование запросов отвечать.

Спасибо!

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-01-28 11:36:03
Amadeus
Мне кажется вы немного путайте термины.
1) Зачем вам на каждый виртуальный хост (почитайте что это такое) своя клетка?

2) Насчет участков конфига, лучше тут http://nginx.org/ru/docs/http/ngx_http_ ... odule.html

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-01-28 16:14:47
Духовитин
Amadeus писал(а):Мне кажется вы немного путайте термины.
1) Зачем вам на каждый виртуальный хост (почитайте что это такое) своя клетка?
Пока я не думаю что путаю термины. И что такое виртуальный хост тоже вроде как знаю.
А на каждый виртуальный хост мне своя клетка, так это же очевидно зачем. Сайты разные, разных сайтостроителей. И уж если какой-то из сайтов будет скомпрометирован, то чтобы это по минимуму затронуло другие сайты и хост. Можно конечно ограничения документрутом и ограниченым php для каждого вхоста рассматривать, но к сожалению не я рассказываю сайтостроителям каким образом им писать сайты и в итоге сайты зачастую не работают с php безопасном режиме или другими ограничениями.
Amadeus писал(а):2) Насчет участков конфига, лучше тут http://nginx.org/ru/docs/http/ngx_http_ ... odule.html
Это я посмотрю, но всё-же прошу у кого есть уже опыт в организации чего-то подобного, поделиться опытом.

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-01-28 16:30:07
Amadeus
Пока я не думаю что путаю термины. И что такое виртуальный хост тоже вроде как знаю.
1) Именно путаете, так как задача, которую вы описали - это не создание клеток для виртуальных хостов так как виртуальный хост, это директива веб сервера.
Ваша задача создание Х отдельных окружений для работы разных проектов, в каждом из которых может быть Y виртуальных хостов вообще рандомного типа на разных веб серверах, в которых будут работать совершенно рандомные проекты И это правильно).
Я почему уточняю, если в клетке будет стоять twisted, например с поднятым интерфейсом, где будем виртуальный хост создавать?), а если java висит? И так далее и тому подобные кейсы.

2) Насчет конфига, ну вот вам например сферический конь в вакуме.

У вас неправильный подход, надо сначала читать документацию, проще будет понять).

Код: Выделить всё

location  / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass   http://127.0.0.1:81;
            proxy_connect_timeout      120;
            proxy_send_timeout         120;
            proxy_read_timeout         120;
            proxy_send_lowat           12000;
            index  index.php index.html index.htm;
}

}
+ не забываем что реверс прокси так же может прекрасно обрабатывать статику

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-01-28 18:21:51
Духовитин
Amadeus писал(а): 1) Именно путаете, так как задача, которую вы описали - это не создание клеток для виртуальных хостов так как виртуальный хост, это директива веб сервера.
Согласен, подловил на терминологии :)
Amadeus писал(а):Ваша задача создание Х отдельных окружений для работы разных проектов, в каждом из которых может быть Y виртуальных хостов вообще рандомного типа на разных веб серверах, в которых будут работать совершенно рандомные проекты И это правильно).
Я почему уточняю, если в клетке будет стоять twisted, например с поднятым интерфейсом, где будем виртуальный хост создавать?), а если java висит? И так далее и тому подобные кейсы.
С описание того что мне надо совершенно верно, а вот то, что разные платформы крутиться будут, это нет. Я это всё делаю не в качестве хостера, а в конторе где работаю для разных проектов (продажи того или иного объекта) создаётся сайт объекта (ЖК или БЦ и т.д.). И хотя как писать сайты я сайтостроителям указывать не могу, но уж тех требования к платформе на которой сайт будет работать точно жестко оговариваю. Да в принципе все сайтостроители дальше {L,F}AMP не залезают. Так что явы и питоны не появляются. А если уж такое случится, то отдельное окружение под такой проект настрою.
Amadeus писал(а): 2) Насчет конфига, ну вот вам например сферический конь в вакуме.

У вас неправильный подход, надо сначала читать документацию, проще будет понять).
.....
Спасибо за пример!
А раскидывать по клеткам в зависимости от запрошенного домена это как я уже нарыл:

Код: Выделить всё

server {
        listen *:8080;
        server_name  host1.ru;
        access_log  /var/log/nginx/host1.ru-access.log  proxy;
        error_log   /var/log/nginx/host1.ru-error.log;
        location  / {
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_pass   http://127.0.0.1:81;
              proxy_connect_timeout      120;
              proxy_send_timeout         120;
              proxy_read_timeout         120;
              proxy_send_lowat           12000;
              index  index.php index.html index.htm;
       }
}

server {
        listen *:8080;
        server_name  host2.ru;
        access_log  /var/log/nginx/host2.ru-access.log  proxy;
        error_log   /var/log/nginx/host2.ru-error.log;
        location  / {
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_pass   http://127.0.0.1:82;
              proxy_connect_timeout      120;
              proxy_send_timeout         120;
              proxy_read_timeout         120;
              proxy_send_lowat           12000;
              index  index.php index.html index.htm;
       }
}

Спасибо за объяснения!

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-02-01 8:32:08
Alex Keda
mpm-itk

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-02-01 11:45:52
Духовитин
Alex Keda писал(а):mpm-itk
Лис, ты предельно лаконичен :)

Модуль этот себе на заметку конечно возьму. Но уже сделал как хотел. Да и всё-таки мне кажется что каждому по клетке всё-ж надёжней будет. Опять же для всяких phpmyadmin'ов и postfixadmin'ов да своих поделок поставил в клетке lighttpd а вот сторонние сайты с полпинка под лайтом не запускаются, а разработчики на это говорят, что подавай им стандартный апач и всё тут. Опять же с клетками проще это разруливается.

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-02-02 14:10:01
Alex Keda
ИП адреса не резиновые....

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-02-02 14:21:10
Amadeus
ИП адреса не резиновые....
proxy_pass и lo0 решают тут проблему)

Помогите разобраться с виртуальными хостами в jail

Добавлено: 2016-02-02 14:33:46
Духовитин
Alex Keda писал(а):ИП адреса не резиновые....
Amadeus писал(а):proxy_pass и lo0 решают тут проблему)
Да, у меня как верно подметил товарищ Амадеус все клетки имеют в качестве адресов алиасы на локальном интерфейсе.
Так что их поди хватит :)