Ubiquiti EdgeRouter POE 上的反向代理

Ubiquiti EdgeRouter POE 上的反向代理

是否可以在 Edgerouter 上构建轻量级反向代理服务器?我认为这应该是可能的,因为路由器上的操作系统是 Debian。但在查看问题/答案后,我没有找到有关此主题的任何先前记录。有人知道这个吗 - 以及如何知道?

我发现路由器里面有 3.8G 的“磁盘”,并且还有 debian-utils 和其他 debian 内容。没有列出官方存储库。将路由器转换为反向代理的目的是处理传入的 SSL 请求。目前,我们将 Web 服务器 IP 重定向到邮件或文件服务器 IP。我们担心的是,如果 Web 服务器发生故障,那么 SSL 上的 Web 邮件和 Web 文件访问将无法正常工作。因此,我们的想法是在 USG 网关和服务器之间插入路由器 - 并让路由器/代理执行正确的 IP 分配。

答案1

Edge Router 捆绑了 Lighttpd。只要您不做太复杂的操作,就可以重写配置文件。

但是,要知道,路由器的设计目标是默认为特定状态,并且 - 除非你理解 - 否则它将覆盖你的更改。mgbowen 的 Github 存储库[1]整合 Let's Encrypt 认证是一个很好的起点。

虽然可以安装其他服务,例如 Nginx,只要它们具有兼容的mips软件包并且sources.list已更新以反映这一点。当然,如果您想使用 Lighttpd 以外的其他服务,则必须从头开始重建整个配置。

在我开始离题之前,我还想补充(并强调)一下,不顾一切地安装应用程序可能会让您的路由器变成一块砖头。您必须获取管理电缆并重新安装固件;这不是一项简单的任务,不适合胆小的人!

在考虑了这些注意事项之后,我将分享一些我做过的事情的片段。

Lighttpd.conf.补丁

  --- include "conf-enabled/10-ssl.conf"
  +++ # include "conf-enabled/10-ssl.conf"    # original
  +++ include "conf-enabled/11-ssl.conf"      # updated
  +++ include "conf-enabled/20-network.conf"  # redirects

11-ssl.conf

  $SERVER["socket"] == "192.168.1.1:80" {
      ### Handle the existing 80 to 443 traffic
      .
      .
      .

      ### Added for personal use:
      $HTTP["host"] == "foo.internal.tld" {
        proxy.server = ( "" =>
          (
            ( "host" => "192.168.1.1", "port" => <random unused port> )
          )
        )
      }
  }

20-网络.conf

     $SERVER["socket"] == "192.168.1.1:<port defined in 11-ssl.conf>" {
       url.rewrite-once = ( "^(?!/gui)(.*)" => "/gui$1" )
       proxy.server = ( "" =>
         ( "" =>
           ( "host" => "<IP of server running service>", "port" => <port for service> )
         )
       )
     }

 

笔记:

端口到端口到端口重定向的原因在于当前可用的 Lighttpd 版本以及建议的解决方法[2]用于端口转发。

 

参考:

  1. https://github.com/mgbowen/letsencrypt-edgemax
  2. https://stackoverflow.com/a/19466700/982245

相关内容