Несколько доменов, указывающих на разные порты на сервере Apache - PullRequest
1 голос
/ 10 октября 2010

Я работаю со средой веб-разработки, которая публикует свои приложения в портах сервера apache: 8080, 8081, 8082 и т. Д.

Например, MyApp1 работает на localhost: 8080, MyApp2 работает на localhost: 8081,и т. д.

Я хотел бы добиться, чтобы мои домены указывали на «порт» , где его приложение работает на моем веб-сервере apache, например, www.mydomainclient1.com долженукажите порт 8080, а www.mydomainclient2.com - порт 8081.

Я только что зашел на свой веб-сайт провайдера доменных имен, затем перешел на Total DNS Control и направил эти домены на мойIP выделенного сервера.

Теперь мои домены указывают на mydedicatedserverIP, поэтому, когда я делаю www.mydomainclient1.com и www.mydomainclient2.com, они оба получают доступ к mydedicatedserverIP, по умолчанию 80-порт.

Вот ситуация, которую я пытаюсь решить:

Я бы хотел, чтобы www.mydomainclient1.com указывал прямо на mydedicatedserverIP: 8080 и www.mydomainclient2.com указывает на mydedicatedserverIP: 8081.

Как вы думаете, что будет хорошим решением для этого?(Надеюсь, мой вопрос достаточно ясен, поскольку я не являюсь носителем английского языка, как вы можете видеть)

Среда: Linux Debian 5 Lenny, Apache Server 2.2.9-10 + lenny8

AsЯ новичок на сервере Apache. Любой комментарий или предложение будут очень благодарны, даже если вы думаете, что-то очевидное :-).

1 Ответ

5 голосов
/ 10 октября 2010

Чтобы убедиться, что я понимаю, что вы имели в виду: вы хотите -

  • Клиент отправляет HTTP-запрос на http://mydomain1.com (порт 80) - затем перейдите к порту 8080 на вашем сервере;
  • Клиент отправляет HTTP-запрос на http://mydomain2.com (порт 80) - затем перейдите к порту 8081 на вашем сервере.

Единственный разумный способ (насколько я знаю) вы можете достичь этого в Apache:используя так называемый обратный прокси , объясненный здесь: http://httpd.apache.org/docs/current/mod/mod_proxy.html

В двух словах: определите два виртуальных хоста на основе имен, прослушивающих порт 80, каждый из которых обратного прокси-сервера запрашивает "скрытый "сервер.Два определения были бы почти одинаковыми ... Вот эскиз одного из них, вы должны иметь возможность заключить другое.

<NameVirtualHost *:80>
    ServerName mydomain1.com
    ServerAlias www.domain1.com
    ... *other aliases as you wish* ...
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
</NameVirtualHost>

Приведенное выше определение вызывает все HTTP-запросы, поступающие напорт 80 с заголовком «mydomain1.com» в заголовке «Путь к серверу» (это стандартное поведение, когда кто-то вводит URL-адрес, содержащий имя сервера; не беспокойтесь об этом) или любой из упомянутых псевдонимов для обратного проксина "localhost: 8080".

Попробуйте и дайте нам знать, как все прошло.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...