846 字
4 分钟
Nginx Proxy Manager 使用指南
什么是 Nginx Proxy Manager
Nginx Proxy Manager 是一个开源的 Nginx 管理工具,旨在简化 Nginx 的配置和管理。它提供了一个 Web 界面,允许用户轻松地管理多个 Nginx 虚拟主机和反向代理。
TIPNginx Proxy Manager 通常简称 npm,这与前端的包管理工具 Node Package Manager 缩写同名,因此在使用时需要注意区分。
为什么需要 Nginx Proxy Manager
如果需要将内网服务暴露到外网,首先需要使用端口转发,将端口暴漏到公网中,如果我们有多个服务,就需要配置多个端口转发,这样不仅非常麻烦,而且还不方便管理,且多个端口暴漏还较为危险,因此我们可以使用 Nginx Proxy Manager 来管理多个反向代理。
安装
我使用的是 docker-compose
安装的,docker-compose.yml
文件如下:
version: '3.8'
services:
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '8880:80'
- '81:81'
- '8443:443'
volumes:
- ./nginx-proxy-manager/data:/data
- ./nginx-proxy-manager/letsencrypt:/etc/letsencrypt
注意:
- 端口 81 是 NPM 的 Web 端口,80 是 HTTP 端口,443 是 HTTPS 端口。
- 由于我在家庭网络(一般 80、443 端口被运营商屏蔽)中部署的 npm 服务,因此需要将端口映射为 80 -> 8880、443 -> 8443。
- 数据和证书存储在
./nginx-proxy-manager/data
和./nginx-proxy-manager/letsencrypt
目录中。 - 请根据需要调整端口和路径。
配置
浏览器进入 http://127.0.0.1:81
,默认账号密码是 admin@example.com
和 changeme
,登录后会提示你修改密码。
证书申请
- 首先需要添加域名并申请证书,点击
SSL Certificates
->Add SSL Certificate
->Let's Encrypt
- 在
Domain Names
处,添加你的域名,可以直接申请泛域名证书(例如*.chenjiahao.me
),Email Address for Let's Encrypt
填写你的邮箱。 - 开启
Use a DNS Challenge
,DNS Provider
处选择你的域名服务商,在Credentials File Content
处,将dns_cloudflare_api_token
修改为你的 DNS 令牌(这篇文章有申请指南使用 ddns-go 进行动态域名解析)。 - 同意
Let's Encrypt
的条款,点击Save
按钮,等待完成证书申请。
添加反向代理
- 点击
Hosts
->Proxy Hosts
->Add Proxy Host
- 在
Domain Name
处,填写你的域名(需要携带二级域名),我这里以alist
服务为例,填写alist.chenjiahao.me
- 在
Forward Hostname
处,填写你的内网服务地址,我这里以alist
服务为例,填写192.168.2.2
,Forward Port
填写你的服务端口,我这里是5244
- 选项
Cache Assets
、Block Common Exploits
、Websockets Support
可以按需开启。 - 在
SSL
处,选择你刚刚申请的证书。开启Force SSL
选项,其余选择可以按需开启。点击Save
按钮,完成反向代理添加。
验证
浏览器打开 https://alist.chenjiahao.me:8443 ,如果配置正确,则可以看到 alist
的页面。
TIP需要放行对应端口,如果配置正确,但是无法访问,请检查防火墙和安全组配置。如果你也是家庭宽带,请参考 端口转发 开启内网
npm
映射的443
端口转发到公网任何你想作为后缀访问的端口。 如果你仍然无法访问且使用的是Cloudflare
,根据它的提示使用@
作为根节点并不可用,请使用*
作为根节点。
最后
Nginx Proxy Manager
是一个非常强大的反向代理工具,可以让你通过域名访问到内网中的服务,也可以方便的申请证书并使用。且只需要放行一个对外端口即可,非常方便。
Nginx Proxy Manager 使用指南
https://www.promises.top/posts/network/nginx-proxy-manager-a-comprehensive-user-guide/