我想使用一个外部 IP 地址在两台不同的机器上设置多个(目前是两个)网站。每个网站将位于不同的子域或域上。
有没有办法利用 Ubuntu 服务器作为我进入网络的入口点(防火墙之后),根据某些方法的主机头将流量引导到适当的机器?我过去曾使用 Microsoft Proxy Server/ISA 这样做过。Microsoft 将此功能称为“反向代理”。
非常感谢你的帮助
马特
答案1
您可以安装 Apache 并将其设置为反向代理:
sudo apt-get install apache2
sudo a2enmod proxy proxy_http
创建 /etc/apache2/sites-available/site1,内容如下:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.site1.net
ProxyPass / http://local_site1_server/
ProxyPreserveHost on
</VirtualHost>
然后
sudo a2ensite site1
sudo /etc/init.d/apache2 restart
答案2
您可以使用不同的工具(例如 Apache)设置反向代理。您必须记住,为了在单个 IP 地址后面拥有多个服务器,您需要以下几点:- 为该唯一 IP 地址后面的每个服务器提供一个唯一的本地 IP 地址 - 一种唯一区分传入流量并适当重定向的方法
可以根据反向代理可以处理的不同事项重定向流量: - 源 IP 地址 - 目标 IP 地址(您)上使用的实际端口 - 对于 HTTP/HTTPS,您还可以根据 HTTP[S] 标头的主机名部分进行重定向。
第三个可能是您想要使用的,除非您准备宣传在非标准端口上运行的一些 Web 服务。
当然,安全永远是首要任务,您的设置应该由专家验证,或经过深度扫描以确保它不易受到攻击。始终保持您的反向代理或防火墙软件为最新版本。
答案3
是的,有许多 Linux Web 服务器和代理服务器可以充当反向代理,根据 http 请求中的主机名将页面请求发送到不同的服务器。我建议你看一下nginx。