我可以将 Raspberry Pi 设置为代理,以允许在我的家庭网络上的单个路由器后面使用 3 个不同的 Web 服务器吗?

我可以将 Raspberry Pi 设置为代理,以允许在我的家庭网络上的单个路由器后面使用 3 个不同的 Web 服务器吗?

我有三个 Web 服务器,希望能够通过同一个路由器访问它们。我该怎么做才能在互联网上输入服务器 A、B 或 C 的 Web 地址时,转到正确的服务器?如果可以使用 Raspberry Pi 来实现这一点,有人可以指导我完成这个过程或为我指明正确的方向吗?

答案1

正如评论中提到的那样,反向代理是处理这种情况的方法。

如何设置反向代理?

您需要安装具有此功能的 Web 服务器,例如 Apache 或 Nginx。这两种 Web 服务器均可用于 Raspberry Pi。

Apache 示例

跳过特定于 Linux/Raspberry Pi 的细节,您可以使用 Apache虚拟主机实现你的目标(具体来说,基于名称的虚拟主机)。

概述

  • 在你的 Raspberry Pi 上安装 Apache(根据需要)。

  • 设置您的 Raspberry Pi 以接收端口 80 上的所有 Web 请求(这通常通过使用路由器中的端口转发来实现)。

  • 确保适当的mod_proxy模块已在 Apache 配置中启用。您至少可能需要mod_proxymod_proxy_http和。mod_proxy_html

  • 为每个网址创建具有适当条目和 IP 的 Apache 虚拟ProxyPass主机ProxyPassReverse

    示例主机 1

    <VirtualHost *:80>
    
    ServerName site1.example.com
    #ServerAlias *.site1.example.com
    #DocumentRoot "/unneeded"
    
    ProxyPass / http://192.168.1.10/
    ProxyPassReverse / http://192.168.1.10/
    
    </VirtualHost>
    

    示例主机 2

    <VirtualHost *:80>
    
    ServerName site2.example.com
    #ServerAlias *.site2.example.com
    #DocumentRoot "/unneeded"
    
    ProxyPass / http://192.168.1.20/
    ProxyPassReverse / http://192.168.1.20/
    
    </VirtualHost>
    

    示例主机 3

    <VirtualHost *:80>
    
    ServerName site3.example.com
    #ServerAlias *.site3.example.com
    #DocumentRoot "/unneeded"
    
    ProxyPass / http://192.168.1.30/
    ProxyPassReverse / http://192.168.1.30/
    
    </VirtualHost>
    

相关内容