Apache2 - 子域到端口 - >转发

时间:2012-08-09 19:14:05

标签: apache ubuntu subdomain portforwarding dyndns

好吧,我在某个时刻因为阅读了数以百计的手册和说明页而仍然没有得到它,我觉得自己有很多愚蠢。我希望你能帮助我!

我有一台运行Ubuntu Server的服务器。在服务器上,我正在运行ddclient来使用dyn.com更新我的IP。在那里,我有一个域“rasterkomplex.net”,它指向更新的IP。容易。

还有一台连接到服务器的摄像头,它运行自己的网络服务器@端口3360。

当我现在进入时:rasterkomplex.net:3360 - 瞧。 但是现在有2个Minecraft服务器同时在5001和5002上运行。对于每个mc-server,都有dynmap-plugins,它们在不同的端口上也运行一个webserver。然后是一个网络存储......你明白了吗?我不想记住8个或更多端口,仅用于访问相关服务。

我想要完成的事情:

cam.rasterwerks.net -> internal to 127.0.0.1:3360
mc1.rasterwerks.net -> internal to 127.0.0.1:5001
mc2.rasterwerks.net -> internal to 127.0.0.2:5002
etc. etc. etc.

我读了很多关于VHosts,ProxyPass等的内容。但是我无法管理它的工作。

你能指点一下如何做到这一点吗?如果它与VHosts有关,可能是样本吗?

非常感谢您的时间!

此致

利亚。

1 个答案:

答案 0 :(得分:1)

您可以apache ProxyPass mod_proxy haproxy重定向到这里或那里,或者您也可以安装haproxy。然后,根据请求的URL中的主机将请求传递给一个或另一个Web存储。

frontend public bind X.X.X.X:80 mode http log global option httplog option dontlognull option httpclose maxconn 8000 clitimeout 90000 reqisetbe ^Host:\ .*hudson hudson backend hudson mode http balance roundrobin contimeout 120000 srvtimeout 120000 redispatch retries 5 server internal.host.com Y.Y.Y.Y:8080 check inter 1000 的一个示例配置就是:

haproxy

因此,在此示例中,*.hudson绑定到端口80,当请求的URL包含internal.host.com时,它会被重定向到Y.Y.Y.Y,其IP为8080到端口apache

现在,基于NameVirtualHost * 的解决方案。

您可以定义多个具有不同名称的VHost,每个名称都包含以下内容。

要执行基于名称的虚拟主机,您的apache配置应包含:

<Virtualhost *>
  DocumentRoot "/var/www/somewhere"
  ServerName localhost
  ServerAdmin support@mycompany.com
  DirectoryIndex index.html index.php
  ProxyRequests On
  ProxyPreserveHost On
  ProxyVia full

  <proxy>
    Order deny,allow
    Allow from all
  </proxy>

  ProxyPass        /  http://somehost:1234/
  ProxyPassReverse /  http://somehost:1234/
</Virtualhost>

然后,vhost本身应该是:

{{1}}

随意选择对您来说更可行的解决方案。