Apache Port Proxy - PullRequest
       11

Apache Port Proxy

17 голосов
/ 22 июля 2009

У меня не-Apache сервер, прослушивающий порт 8001 и Apache, прослушивающий порт 80. Я хочу, чтобы определенный виртуальный домен фактически обслуживался сервером не-Apache через порт 80.

Пример:

<VirtualHost *:80>
  Servername example.com

  # Forward this on to the server on port 8001
</VirtualHost>

Я думал, что смогу сделать это с mod_proxy и ProxyPass с чем-то вроде этого.

ProxyPass * http://www.example.com:8001/

Но это не работает.

Ответы [ 2 ]

25 голосов
/ 10 августа 2009

ProxyPass * http://www.example.com:8001/

звезда действительна только в блоке. Косая черта - это то, что вы хотите.

ProxyPass / http://www.example.com:8001/
ProxyPassReverse / http://www.example.com:8001/

Обратный прокси-сервер гарантирует, что перенаправления, отправленные вашим сервером порта 8001, будут адаптированы к каноническому имени вашего прокси-сервера.

В руководстве по apache есть несколько примеров. http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

5 голосов
/ 06 августа 2015

У меня есть сайт, размещенный apache на порту 80. У меня также есть веб-сервер python, прослушивающий порт 8880, к которому нужно было получить доступ через http://[mydomainname]/something. Используя ответ txyoji, я заработал, просто добавив прокси к моему определению виртуального хоста вот так:

ProxyPass /something http://mydomainname:8880/something
ProxyPassReverse /something http://mydomainname:8880/something

UPDATE

В зависимости от настроек, еще лучший способ сделать это - настроить прокси-проход для порта на "localhost". Я думаю, что это немного более понятно, что вы делаете, плюс более портативный. Наряду с этим вам даже не нужно открывать брандмауэр для этого порта! Вы можете передавать прокси локально на любой порт, поэтому нет причин показывать это внешнему миру, если вам это не нужно. Проведите все через порт 80, и у Apache всегда будет «впереди». Тогда вы можете просто беспокоиться о безопасности этого.

ProxyPass /something http://localhost:8880/something
ProxyPassReverse /something http://localhost:8880/something
...