0

好的,由于阅读了数百本手册和说明页但仍然没有得到它,我正处于某个时刻,我对自己感到非常愚蠢。我希望你能帮帮我!

我有一台运行 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 等的文章。但我无法管理它来工作。

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

非常感谢您的宝贵时间!

问候,

埃利亚斯。

4

1 回答 1

1

apache一方面,ProxyPass您可以mod_proxy在这里或那里重定向您,或者,您也可以做的是 install 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.comIP 为Y.Y.Y.Yto port的 URL 8080

现在,对于apache基于解决方案。

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

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

NameVirtualHost *

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

<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>

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

于 2012-08-09T19:31:07.043 回答