如何根据 url 中的域将 Web 请求路由到我的专用网络?

如何根据 url 中的域将 Web 请求路由到我的专用网络?

设想:

由于IP数量有限,多个域名会被解析为同一个IP地址。然而,这些域可能并不都运行在同一个网络服务器、虚拟机甚至专用机器上。因此,我想根据 url 中的域将进入专用网络的域路由到正确的位置。

我怎样才能做到这一点?

答案1

大多数路由器/防火墙允许基于特定端口重定向流量,例如所有 SMTP 流量(端口 25)都重定向到 192.168.1.1。

但是,如果您有多个服务器来处理流量(每个域 1 个服务器)。您需要安装诸如反向代理之类的东西(nginx支持 HTTP、IMAP、POP3)。例如,所有到端口 80 的流量都会被重定向到192.168.1.2运行 nginx 的端口,并且根据主机名将重定向到localhost192.168.1.4

答案2

我不确定我是否完全理解你的问题。如果这样做,您将拥有多台计算机作为 NAT 后面的 HTTP 服务器运行。当某个请求到达时,您希望将其转发到您的一台服务器,对吧?

如果您使用 apache 和 mod_rewrite,您也许可以这样提取:

  1. http://www.linuxquestions.org/questions/linux-networking-3/apache-forward-request-to-another-box-264864/

  2. http://www.sematopia.com/2007/09/apache-forwarding-requests-to-another-server/

干杯。

答案3

我已经使用类似的方法做了一些事情代理通行证Apache 中 mod_proxy 下的指令。

首先,使用基于名称的虚拟主机要允许不同的域使用相同的 IP 托管不同的站点,那么对于与内部网络服务器关联的域,您有如下配置:

# Within your VirtualHost definition
ServerName somedomain.com
ProxyPass / http://10.0.1.42/
ProxyPassReverse / http://10.0.1.42/

这将导致所有请求都http://somedomain.com透明地代理到托管在 上的内部站点http://10.0.1.42

华泰

答案4

不久前我也在寻找同样的东西。从来没有抽出时间去做,但我认为这可能有用。

使用mod_proxy 模块并使用该noproxy指令。

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#noproxy

相关内容