Virtualbox +NAT Apache ProxyPass

Скажите мне, что я делаю неправильно. У меня есть конфигурация, где апач слушает во внешнем интерфейсе, размещает домен и действует как прокси для нескольких внутренних серверов. По большей части это работает отлично. Когда определенный URL соответствует proxypass директиве, апач вперед на внутренний сайт. Однако я пытаюсь использовать NAT для передачи другому виртуальному серверу, но это продолжает передавать хосту, но только с внешней стороны. Например, Это - конфигурация прокси:

<VirtualHost *:80>
   ServerName example.com

Хост слушает на порте 12000 под именем example.com. ProxyPass вперед корень домена к компьютеру, хост-машине

ProxyPass / http://hostmachine:12000/

Прокси вперед / тарифицирующий портировать 2080 на хост-машине, которая передается, с помощью vbox NAT, от порта 2080, для портирования 80, под именем example.com/billing

ProxyPass /billing http://hostmachine:2080/billing/

Я использую NAT для порта передачи 2080 на хосте, для портирования 80 из виртуального сервера.

vboxmanage showvminfo server1
...
NIC 1 Rule(0):   name = http, protocol = tcp, host ip = , host port = 2080, guest ip = , guest port = 80

Вот проблема, когда я направляю внутреннее (даже proxyserver) браузер к hostmachine:2080, я получаю ожидаемый файл HTML от виртуального server1. Когда я пытаюсь получить доступ к нему с внешней стороны, направляющий через прокси я получаю файл HTML от хост-машины

От внутреннего компьютера:

telnet hostmachine 2080
Trying 10.28.45.100...
Connected to hostmachine.
Escape character is '^]'.
GET /billing/index.html
test billing server1
Connection closed by foreign host.

От внешнего браузера:

http://example.com/billing
test billing hostmachine

С внешней стороны это - то, что должно произойти

example.com:80/billing -> ProxyPass -> hostmachine:2080 -> 2080:NAT:80 -> server1:80/billing

Что происходит

example.com:80/billing -> ProxyPass -> hostmachine:80
0
задан 17 August 2017 в 05:48

1 ответ

Вычисленный проблема была с прокси-сервером. Я забыл, что Apache обрабатывает вещи в порядке, они появляются, таким образом, я должен был поместить тарификацию / перед/. Например, в conf файле для домена,

ProxyPass /billing http://hoststmachine:2080/billing/

ЗАТЕМ

ProxyPass / http://hostmachine:12000/
0
ответ дан 2 November 2019 в 10:24

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

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