Nginx Proxy Manager配置OpenWRT
Nginx Proxy Manager (NPM) 是一个基于 Nginx 的图形化反向代理管理工具,它简化了通过 Nginx 进行反向代理、SSL 管理和虚拟主机配置的过程。NPM 适合那些不熟悉命令行或希望快速配置反向代理的用户。
- 反向代理 (Reverse Proxy):可以将外部请求代理到内部服务器,隐藏内部服务器的真实 IP 地址。它支持通过域名或路径进行路由。
- SSL/TLS 管理:内置支持 Let's Encrypt,能够自动获取和更新 SSL 证书,从而实现 HTTPS 加密。
- 简单的图形界面:提供一个用户友好的 Web 界面,帮助用户轻松管理反向代理、SSL 证书和其他 Nginx 配置。
- 访问控制:可以为不同的服务或域设置基础的访问认证。
- 日志与监控:提供基本的访问日志和错误日志,帮助用户进行监控和故障排查。
- 部署多个 Web 服务,利用反向代理通过不同的域名或路径访问不同的服务。
- 为自托管的服务(如 Home Assistant、NextCloud、Jellyfin 等)提供 HTTPS 保护。
- 集中管理 SSL 证书,简化多站点的证书更新工作。
OpenWRT 是一个开源的 Linux 操作系统,专为嵌入式设备(如路由器)设计。它为普通路由器提供了强大的功能扩展,可以将路由器打造成一台灵活的网络设备,支持网络路由、设备管理、VPN、广告拦截等多种网络功能。
- 灵活的路由功能:支持多种高级路由协议(如 OSPF、BGP),并提供复杂的网络配置能力。
- 丰富的包管理系统:通过 OpenWRT 的软件包管理系统 opkg,用户可以安装大量的扩展包,如 VPN、AdBlock、DNS 服务器等。
- 网络管理:可以管理多个无线和有线网络接口,支持 VLAN、WAN 和 LAN 接口的灵活配置。
- 防火墙:内置防火墙功能,支持状态监控、防火墙规则、NAT 转发、端口映射等。
- 安全性:OpenWRT 社区会不断发布更新,提供最新的安全补丁,并支持加密协议、VPN、入侵检测等多种安全功能。
- 家庭网络优化:通过 OpenWRT 提升普通家用路由器的功能,实现更高效的网络管理,如 QoS(质量服务)、流量控制、双拨、负载均衡等。
- 企业级网络管理:在中小企业环境中,OpenWRT 可以用于复杂的网络拓扑配置,如多 WAN 接入、VLAN、VPN、远程办公接入等。
- 自托管服务的网关:通过 OpenWRT,用户可以将路由器变成一个网关,使用 Nginx Proxy Manager 等工具管理家中或企业内部的多个服务。
将 Nginx Proxy Manager 与 OpenWRT 结合使用,可以为网络环境中的多个 Web 服务提供反向代理功能和 SSL 加密。在 OpenWRT 路由器上部署 Docker 容器后,用户可以轻松地通过 Nginx Proxy Manager 管理这些服务。OpenWRT 负责处理外部网络流量,并将流量通过端口转发传递给 Nginx Proxy Manager,由 NPM 再将请求分配给不同的内部服务。
组合使用的优势: 集中化管理:Nginx Proxy Manager 提供了可视化的管理工具,用户可以在一个界面中集中管理多个站点和服务的反向代理、SSL 证书等配置。 增强网络安全:通过 OpenWRT 的防火墙功能和 Nginx Proxy Manager 的 SSL 加密功能,能够提升整个网络的安全性。 灵活的网络访问:Nginx Proxy Manager 可以将多个内网服务暴露给外网,同时通过 OpenWRT 实现流量控制和带宽优化。
配置 Nginx Proxy Manager 在 OpenWRT 上, 可以通过以下步骤进行。 你可以通过 Docker 安装 Nginx Proxy Manager(NPM),然后在 OpenWRT 上配置相关的转发规则。
由于 OpenWRT 没有直接支持 Docker,你可以先确保你的路由器具有足够的性能并支持 Docker 的安装。如果 OpenWRT 支持 Docker,那么可以继续执行以下步骤。
首先,你需要在 OpenWRT 上准备好 Docker,并通过 Docker 部署 Nginx Proxy Manager。
你可以创建一个 docker-compose.yml 文件来简化 Nginx Proxy Manager 的配置。
然后在 /opt/nginx-proxy-manager 目录下创建 docker-compose.yml 文件,内容如下:
执行以下命令以启动 Nginx Proxy Manager:
此时,Nginx Proxy Manager 将通过 Docker 容器运行,并可以通过以下端口访问:
- Web UI 访问地址:http://路由器IP:81
- 初始登录信息:
- 用户名: [email protected]
- 密码: changeme
为了使 OpenWRT 能将外部流量转发到 Nginx Proxy Manager,你需要配置防火墙规则和端口转发。
在 OpenWRT Web 界面:
- 打开 Network > Firewall > Port Forwards。
- 添加新的端口转发规则:
- Name: Nginx Proxy Manager
- Protocol: TCP
- External Port: 80 (HTTP) 和 443 (HTTPS)
- Internal IP Address: NPM 容器所在的 OpenWRT 内部 IP(比如 192.168.1.x)。
- Internal Port: 80 (HTTP) 和 443 (HTTPS)
确保在 Network > Firewall 中启用相应的防火墙规则,使外部流量可以访问到 NPM 的 80 和 443 端口。
现在你可以通过 Nginx Proxy Manager 的 Web 界面来配置反向代理。
- 登录到 Nginx Proxy Manager (http://(路由器IP):81)。
- 通过点击 Proxy Hosts,然后点击 Add Proxy Host 来添加反向代理条目。
- 填写以下信息:
- Domain Names: 你希望代理的域名或 IP 地址。
- Forward Hostname/IP: 目标服务的内部 IP(例如在你网络中的 Web 服务器)。
- Forward Port: 目标服务的端口号(例如 80 或 443)。
- 根据需要启用 SSL,并选择获取免费的 Let's Encrypt SSL 证书(如适用)。
确保你已经正确配置了 Nginx Proxy Manager 和 OpenWRT 防火墙。如果所有步骤都正确,外部流量将被正确代理到内部服务器。
通过在 OpenWRT 上运行 Docker 和 Nginx Proxy Manager,结合 OpenWRT 的防火墙和端口转发功能,你可以为你的网络服务提供一个强大的反向代理解决方案。这不仅可以简化对多个内部服务的访问,还能为外部访问提供 SSL 加密。