转发(全部80)到Debian服务器,然后有Debian委托在哪里?

我有一个路由器,将所有端口80转发到Debian的Web服务器,但我想添加另一台服务器到那一堆。 我怎么能得到debian说任何人尝试访问git.domain.com到192.168.0.21或什么(所以git.domain.com将转到标准IP只是被转发到另一台本地服务器,这样它会一个FQDN)?

您可以在服务器上使用proxy_mod和vhosts作为apache,并首先使用stream量。

第一个虚拟主机只会提供本地内容。 第二个虚拟主机将是另一个服务器上存储的内容的代理。 你的虚拟主机会类似于这个:

ServerName git.domain.com DocumentRoot /var/www/ ProxyRequests Off Order deny,allow Allow from all ProxyPass / http://192.168.0.21:80/ ProxyPassReverse / http://192.168.0.21:80/ 

端口转发与IP地址和端口,而不是主机名,所以简而言之 – 你不能。 假设你有多个指向同一个公共IP地址的DNS条目,路由器会以某种方式检查HTTP请求,以决定将哪个内部networking服务器发送到哪个networking服务器,这是我所想的所有家庭networking设备的范围。

唯一可以做到这一点的方法是拥有多个公有IP,每个公有IP在内部被转发到不同的web服务器,或者为另一个web服务器端口转发另一个端口(比如81)。

最简单的方法之一是运行反向代理,如haproxy。 您可以在Debian服务器上对其进行操作,然后将请求转发到您想要的地方。

举一个简单的例子:你的代理监听端口80,并将a.example.com的所有内容转发到监听127.0.0.1:8080的apache实例,并将b.example.com的一切转发给另一台机器上的apache实例(例如192.168.0.21:80)。

haproxy网站上的文档很容易理解,所以你可以适用于你的情况: http : //haproxy.1wt.eu 。 请注意,会有很多信息与您无关,因为haproxy可以完成比这个简单的任务更多的任务。