обратный прокси для нескольких сайтов - PullRequest
0 голосов
/ 30 мая 2018

Первоначально я установил два сервера приложений Weblogic в своей сети с первым WebLogic по IP-адресу 192.168.0.201 (hostname firstserver.example.com) и вторым сервером Weblogic по IP-адресу 192.168.0.202 (hostname secondserver.example.com) Я установил сервер Apache на своем виртуальном ящике Oracle (для настройки обратного прокси-сервера в целях тестирования)

Первоначально я настроил обратный прокси-сервер для одного сервера приложений. Я настроил обратный прокси-сервер, например httpd.conf * 1003.*

<VirtualHost 127.0.0.1:80>
    ServerName www.firstserver.com
     ServerAlias firstserver.com
     ErrorLog /var/log/httpd/error_log
     TransferLog /var/log/httpd/access_log

     <Location /console/>
    ProxyPass  http://firstserver.example.com:7001/console/ retry=0
    ProxyPassReverse   http://firstserver.example.com:7001/console/
   
     </Location>
</VirtualHost>

Это отлично работало, когда я ввел следующий адрес в браузере (www.firstserver.com/console /).

Я ввел следующие данные в хостефайл

    192.168.0.201 firstserver.example.com   firstserver
    192.168.0.202 secondserver.example.com   secondserver
Когда я пытался отменить прокси двух серверов приложений

Я пробовал с различными настройками в httpd.conf, например

Listen 192.168.0.201:80
Listen 192.168.0.202:80
NameVirtualHost 192.168.0.201:80
NameVirtualHost 192.168.0.202:80
<VirtualHost 192.168.0.201:80>
    ServerName www.firstserver.com
     ServerAlias firstserver.com
     ErrorLog /var/log/httpd/error_log
     TransferLog /var/log/httpd/access_log

     <Location /console/>
    ProxyPass  http://firstserver.example.com:7001/console/ retry=0
    ProxyPassReverse   http://firstserver.example.com:7001/console/
    
   
     </Location>
</VirtualHost>
<VirtualHost 192.168.0.202:80>
    ServerName www.secondserver.com
     ServerAlias secondserver.com
     ErrorLog /var/log/httpd/error_log
     TransferLog /var/log/httpd/access_log

     <Location /console/>
    ProxyPass  http://secondserver.com:7001/console/ retry=0
    ProxyPassReverse   http://secondserver.com:7001/console/
    
   
     </Location>
</VirtualHost>

Но не сработало Пожалуйста, предложите мне лучшее решение

1 Ответ

0 голосов
/ 31 мая 2018

Ваша конфигурация apache показывает, что вы неверно истолковали значение директив «Listen» и «Servername».Это должны быть значения, которые разрешаются веб-серверу и указывают Apache, какой IP-адрес должен прослушивать запросы, и как обрабатывать любые HTTP-запросы, поступающие для «www.webserver.com».Они не должны разрешаться на серверах приложений в любом случае.

Если вы добавите «[ip address webserver] www.webserver.com» в файл хоста машины, на которой запущен браузер, этот пример будет работать с вашими примерами:

    <VirtualHost *:80>
     ServerName www.webserver.com
     ErrorLog /var/log/httpd/error_log
     TransferLog /var/log/httpd/access_log

     <Location /console/>
         ProxyPass  http://firstserver:7001/console/ 
         ProxyPassReverse   http://firstserver:7001/console/
     </Location>

Вот пример NamedVirtualHost, если бы вы дали своему веб-серверу вторую запись файла хоста ("www.webserver2.com") на клиенте :

   <VirtualHost *:80>
     ServerName www.webserver.com
     ErrorLog /var/log/httpd/error_log
     TransferLog /var/log/httpd/access_log

     <Location /console/>
         ProxyPass  http://firstserver:7001/console/ 
         ProxyPassReverse   http://firstserver:7001/console/
     </Location>
   </VirtualHost>

    <VirtualHost *:80>
     ServerName www.webserver2.com
     ErrorLog /var/log/httpd/error_log
     TransferLog /var/log/httpd/access_log

     <Location /console/>
         ProxyPass  http://secondserver:7001/console/ 
         ProxyPassReverse   http://secondserver:7001/console/
     </Location>
   </VirtualHost>

Таким образом, изклиент вы бы получить доступ к www.webserver.com/console и www.webserver2.com/console

...