powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Virtualhost tomcat nginx
9 сообщений из 9, страница 1 из 1
Virtualhost tomcat nginx
    #37887460
НаЗлобуДня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,
срочно требуется развернуть несколько экземпляров tomcat на сервере с одним ip адресом.
Соответственно, требуется поставить frontend сервер, принимающий запросы и перенаправляющий на tomcat
с нужным приложением.
За пару часов уже успел прочитать это , это , вот это , http://vygovskiy.com/xwiki/bin/view/Main/nginx+%D0%B8+%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80+%D1%81%D0%B5%D1%80%D0%B2%D0%BB%D0%B5%D1%82%D0%BE%D0%B2
]это и вот это .

Толку, скажем прямо, мало. Они очень уж замучено написаны, минимум пояснений, а лезть в документацию nginx времени нет. Да и прямо скажем она у него не ахти. Может кто-нибудь знает хороший мануал, как организовать виртуальные хостинги для tomcat. В принципе это можно сделать и средствами самого tomcat, но проблема в том, что приложения (сайты от разных заказчиков) не хотелось бы помещать в один контейнер. Поэтому каждому приложению выделяю по tomcat а перед ними ставлю nginx.

ЗЫ Хотелось бы еще протестировать все это добро на локальном компьютере без добавления доменных имен в таблицы dns. Или это невозможно сделать? Т.е. требуется ли еще поднимать локально dns сервер, чтобы посмотреть, правильно ли nginx разруливает вводимые доменные имена в адресную сроку браузера. Т.е. на локальной машине, после запуска хотелось бы видеть при вводе, скажем,
www.mysite1.ru контент, отдаваемый первым tomcat'ом
www.mysite2.ru контент, отдаваемый вторым tomcat'ом и т.д.
...
Рейтинг: 0 / 0
Virtualhost tomcat nginx
    #37887508
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот самый простой маппинг.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
server {
        listen 80;
        server_name app1.domain.ru;

        location / {
                proxy_pass               http://localhost:8080/app1/; 
                proxy_set_header        X-Real-IP $remote_addr;
        }
}

server {
        listen 80;
        server_name app2.ru;
        location / {
                proxy_pass               http://localhost:8080/app2/; 
                proxy_pass_header Set-Cookie;
                proxy_pass_header X-Forwarded-For;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_cookie_domain localhost smartrss.ru;
                proxy_cookie_path   /app2/ /;
        }
}
proxy_cookie работает начиная с какой-то 1.1x версии.

А что именно не понятно в статье с моего сайта? (vygovskiy.com).
...
Рейтинг: 0 / 0
Virtualhost tomcat nginx
    #37887740
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv, я начинал как раз с вашего) Спасибо за труды)
...
Рейтинг: 0 / 0
Virtualhost tomcat nginx
    #37887984
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе это можно сделать и средствами самого tomcat, но проблема в том, что приложения (сайты от разных заказчиков) не хотелось бы помещать в один контейнер."Короткий путь - известный путь".
Поэтому: "не хотелось бы" или "невозможно"?Хотелось бы еще протестировать все это добро на локальном компьютере без добавления доменных имен в таблицы dns.Ну так допишите в hosts что-то вроде:
Код: sql
1.
2.
site2 127.0.0.2
site3 127.0.0.3
...
Рейтинг: 0 / 0
Virtualhost tomcat nginx
    #37889273
НаЗлобуДня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv,
Спасибо за ответ. Что не очень понравилось в Вашей статье, нет явных указаний по поводу рабочего контекста nginx. Так во многих статьях, которые я прочитал, предполагают, что домашняя директория для nxinx - /var/www/ в вашей статье, судя вот по этой записи
Код: sql
1.
2.
3.
4.
5.
location / 
{
  root   html;
  index  index.html index.htm;
}


делается другое предположение. Кроме того, во многих источниках используются директории sites-available и sites-enabled. У Вас они даже не упоминаются. Поэтому для меня, как человека не очень компетентного в этих вопросах, статья оставляет больше вопросов, чем ответов. Способ, который Вы используете для автоматического запуска tomcat тоже требует, видимо некоторых уточнений. У меня он с ходу не прошел, разбираться пока не стал в чем проблема, но подозреваю, что у tomcat нет доступа к библиотекам JDK. Последняя у меня установлена не из репозитория ubuntu, распакована в корневой каталог моего пользователя и далее инициированы переменные JAVA_HOME и JRE_HOME в .bashrc и .bashprofile моего пользователя. Видимо требуется перенести все это добро в файл /etc/profile или /etc/bash.bashrc. А так статья, конечно, хорошая, но она подходит больше для людей, которые уже сталкивались с nginx и более менее в нем ориентируются.
...
Рейтинг: 0 / 0
Virtualhost tomcat nginx
    #37889301
НаЗлобуДня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovПоэтому: "не хотелось бы" или "невозможно"?

Скорее невозможно, поскольку есть некоторые приложения, которые идут в тестовом режиме и периодически складывают tomcat. поэтому не хотелось бы их мешать в одном контейнере с остальными. Кроме того есть проект на Ruby on Rails, там вообще другой сервер используется. Поэтому хотелось бы один раз настроить нормально фронт-енд сервер, который бы разруливал грамотно запросы из вне и забыть об этом.

Ну так допишите в hosts что-то вроде:
Код: sql
1.
2.
site2 127.0.0.2
site3 127.0.0.3



Спасибо. А можно сделать что-нибудь наподобие
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
hosts:
www.site1.ru 127.0.0.1
www.site2.ru 127.0.0.1

nginx_config:

server {
        listen 80;
        server_name www.site1.ru;
        location / {
                proxy_pass              http://localhost:8080/;
                proxy_pass_header Set-Cookie;
........

server {
        listen 80;
        server_name www.site2.ru;
        location / {
                proxy_pass              http://localhost:8081/;
                proxy_pass_header Set-Cookie;


Т.е. задать два алиаса для одного ip адреса. nginx затем сможет правильно перенаправить на нужный tomcat, если сделать соответствующие записи в конфиге nginx?
...
Рейтинг: 0 / 0
Virtualhost tomcat nginx
    #37889443
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НаЗлобуДняLeonidv,
Спасибо за ответ. Что не очень понравилось в Вашей статье, нет явных указаний по поводу рабочего контекста nginx. А так статья, конечно, хорошая, но она подходит больше для людей, которые уже сталкивались с nginx и более менее в нем ориентируются.
Спасибо за отзыв. Учту.
...
Рейтинг: 0 / 0
Virtualhost tomcat nginx
    #37889559
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НаЗлобуДняТ.е. задать два алиаса для одного ip адреса"Name-based virtual hosting" именно это и делает - одному IP-адресу назначается несколько имён. HTTP/1.1-совместимый клиент обязан указывать заголовок Host. На основании этого заголовка и принимается решение о выборе бэкэнда.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Virtualhost tomcat nginx
    #39548682
Ulcigor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот статья о виртуальных хостах, посмотрите, может поможет. https://it-spring.ru/Коты-и-виртуальные-хосты/
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Virtualhost tomcat nginx
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]