2012-08-09 65 views
0

好吧,我在某个地方,因为阅读了数百个手册和指令页,并且仍然没有得到它,所以我感到自己有很大的愚蠢感。我希望你可以帮助我!Apache2 - 子域到端口 - >转发

我有一台运行Ubuntu服务器的服务器。在服务器上,我运行ddclient用dyn.com更新我的IP。在那里我有一个域名“rasterkomplex.net”,它指向更新的IP。简单。

还有连接到运行它自己的网络服务器端口@ 3360

当我现在进入了服务器的摄像机:rasterkomplex.net:3360 - 瞧。 但是现在有两个同时在5001和5002上运行的minecraft服务器。对于每个mc-server,都有dynmap-plugins,它在不同的端口上运行一个web服务器。然后一个网站存储......你知道了吗?我不想记得像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. 

我读了很多关于虚拟主机,ProxyPass伪等,但我不能管理它得到的工作。

你能给我一个方向如何做到这一点?如果它与VHosts有关,也许是样本?

非常感谢你的时间!

Regards,

Elias。

回答

1

你可以用apache做到这一点,一方面与mod_proxyProxyPass重定向你在这里或那里,或者,你也可以做的就是安装haproxy。然后,根据请求的URL中的主机将请求传递给一个或另一个Web存储。

haproxy正是这样做的一个例子的配置,这将是:

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被绑定到端口80和当的请求的URL包含*.hudson,它就会被重定向到一个internal.host.com与IP Y.Y.Y.Y到端口8080

现在,为基于apache的解决方案。

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

要做到基于域名的vhosting,你的Apache配置应该包含:

NameVirtualHost * 

然后,虚拟主机本身,应该是:

<Virtualhost *> 
    DocumentRoot "/var/www/somewhere" 
    ServerName localhost 
    ServerAdmin [email protected] 
    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> 

随意选择任何解决方案似乎更可行的您。

+0

我和VHost解决方案一起工作,它的工作大部分都像一个魅力 - 除了请求不是来自端口80的尝试,就像我尝试使用ssh,游戏或rtsp时一样。但我想这是因为apache2只是一个网络服务器? 如何才能完成?有了这个haproxy的东西? 无论如何,非常感谢! – user1450661 2012-08-09 20:41:18

+0

是的,apache只是网络服务器。另一方面,haproxy是一种支持TCP的负载均衡器。 – favoretti 2012-08-09 20:45:52