好的,由于阅读了数百本手册和说明页但仍然没有得到它,我正处于某个时刻,我觉得自己非常愚蠢。我希望你能帮帮我!
我有一台运行 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 等的文章。但我无法管理它来工作。
你能给我一个方向如何做到这一点吗?如果它与虚拟主机有关,也许是一个样本?
非常感谢您的宝贵时间!
问候,
埃利亚斯。
最佳答案
您可以使用 apache
一方面与 ProxyPass
的 mod_proxy
将您重定向到这里或那里,或者,您还可以安装 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
绑定(bind)到端口 80 并且请求的 URL 包含 *.hudson
,它被重定向到 internal.host.com
IP 为 Y.Y.Y.Y
到港口 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>
随意选择对您来说更可行的任何解决方案。
关于Apache2 - 子域到端口 -> 转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890389/