Обратный прокси Nginx и поддоменов

У меня проблемы с настройкой Nginx. Я уже искал проблему, но предложенные решения не помогли мне.

У меня есть несколько приложений на сервере Tomcat и несколько приложений на сервере jboss. Я настроил на другом сервере Nginx в качестве обратного прокси и он работает правильно. Теперь я хотел бы получить доступ к приложениям на tomcat и jboss, используя доменные имена. Например. У меня есть приложения на tomcat по этому адресу: tomcat.domain.com:8080/app1; tomcat.domain.com:8080/app2 и так далее, даже для приложений jboss. С обратным прокси у меня есть такой вывод: proxy.domain.com/app1 proxy.domain.com/app2 и так далее, поэтому я не не нужно указывать ни номер порта, ни принадлежность к указанному серверу. Но я бы использовал субдомены следующим образом: app1.domain.com, app2.domain.com и так далее. Итак, моя конфигурация Nginx, которая работает и используется только для обратного прокси-сервера, такова (для простоты я сообщу строки только о tomcat):

upstream tomcat_server {

    server tomcat.domain.com:8080;
}
server {
     listen 80;
     location /app1 {
                  proxy_pass http://tomcat_server;
                  proxy_set_header  X-Forwarded-Host $host;
                }
    }

Для конфигурации субдомена я изменил часть о определение сервера примерно так:

server {
     listen 80;
     server_name app1.domain.com;
     location / {
                  proxy_pass http://tomcat_server/app1;
                  proxy_set_header  X-Forwarded-Host $host;
                }
    }

, как предлагается на некоторых форумах, но это не работает. Я указываю, что на сервере, который управляет DNS, app1.domain.com указывает на сервер proxy.domain.com. Я видел бревна, но их не было. Что мне делать?

Спасибо

Люциана

5
задан 21 July 2014 в 17:27

2 ответа

Можно хотеть проверить установку DNS.

Я также использую несколько субдоменов, которые я создаю на лету для различных приложений с помощью веб-платформ, таких как Python Django или Ruby on Rails.

Типичный пример в mydomain.com Я могу хотеть иметь myapp.mydomain.com где myapp является платформой, подаваемой в my_server_IP:some_port.

Для достижения такой вещи (много субдоменов на лету в тех же ИЛИ различных портах), я делегирую решение с DNS на веб-сервер с Подстановочным знаком, запись DNS видит Википедию. Как следует из названия такая запись производит выгоду весь домен, которым можно легко управлять от веб-сервера с использованием виртуальных хостов - доменные прокси и т.д.

A подстановочная запись в инструменте управления DNS GoDaddy похожа на это:

Host Points To TTL

* YOUR_SERVER_IP 1 Hour

И конфигурационный файл Nginx, который передает все запросы на app.mydomain.com кому: otherserver.com:9000/index.html

Результат: Вы вводите в браузере http://app.mydomain.com и Nginx обслуживает содержание от otherserver.com:9000/index.html который может быть другим сервером или приложением и т.д.

server {
    listen   80;

    server_name app.mydomain.com www.app.mydomain.com;

    access_log  /var/log/nginx/app_mydomain_com_access.log;
    error_log   /var/log/nginx/pp_mydomain_com_error.log;

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;

    location / {
        proxy_pass http://otherserver.com:9000/index.html;
    }

}
5
ответ дан 21 July 2014 в 17:27

DNS был всеми правами, я делал некоторую пробную версию в локальном домене прежде, чем поместить их на производство.. Я решил более легче проблему (у меня нет index.html или любых других файлов, у меня есть только имя папки).. Наконец, я думаю, что это было бы полезно для кого-то, конфигурация:

upstream tomcat_server {
    server tomcat.domain.com:8080;
}
server {
    listen 80;
    server_name app1.domain.com;
    location / {
        proxy_pass http://tomcat_server/app1/;
        sub_filter /app1/  /;
    }
}

"/" в конце proxy_pass необходимо...

sub_filter необходим, чтобы избежать, чтобы результат был бы чем-то как

   app1.domain.com/app1

, Это - все.. Я пытаюсь улучшить эту конфигурацию для приложения, работающего с котом 6, потому что использование субдоменов могло генерировать (как в моем случае) некоторую болезнь в приложениях.

3
ответ дан 21 July 2014 в 17:27

Другие вопросы по тегам:

Похожие вопросы: