Apache端口代理

Dav*_*ave 17 apache2 apache-config

我有一个非Apache服务器侦听端口8001和Apache侦听端口80.我希望某个虚拟域实际上由非Apache服务器通过端口80提供服务.

例:

<VirtualHost *:80>
  Servername example.com

  # Forward this on to the server on port 8001
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我以为我可以用mod_proxy和ProxyPass这样做.

ProxyPass * http://www.example.com:8001/
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

txy*_*oji 27

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

星号仅在一个区块内有效.正斜杠就是你想要的.

ProxyPass / http://www.example.com:8001/
ProxyPassReverse / http://www.example.com:8001/
Run Code Online (Sandbox Code Playgroud)

反向代理确保将端口8001服务器发送的重定向调整为代理的规范名称.

apache手册有一些例子. http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

  • 如果您收到内部服务器错误: `sudo a2enmod proxy` `sudo a2enmod proxy_http` `sudo service apache2 restart` (4认同)

Buv*_*inJ 5

我有一个由端口80上的apache托管的站点.我还有一个python web服务器监听端口8880,需要通过http:// [mydomainname]/something访问.使用txyoji的答案,我通过简单地将代理传递添加到我的虚拟主机定义来实现它,如下所示:

ProxyPass /something http://mydomainname:8880/something
ProxyPassReverse /something http://mydomainname:8880/something
Run Code Online (Sandbox Code Playgroud)

UPDATE

根据您的设置,更好的方法是在"localhost"上为端口设置代理传递.我认为你做的更清楚,加上更便携.除此之外,您甚至不必打开防火墙到该端口!您可以在本地代理传递到任何端口,因此如果您不需要,则没有理由将其公开给外部世界.通过端口80汇集所有内容,让Apache始终"在前面耗尽".然后,你可以担心它的安全性.

ProxyPass /something http://localhost:8880/something
ProxyPassReverse /something http://localhost:8880/something
Run Code Online (Sandbox Code Playgroud)