小白也能学会的 Nginx Proxy Manager 入门:告别复杂的服务器配置
服务器的世界,尤其是网络服务的配置,在很多新手眼中常常充满了神秘和复杂。你需要理解端口、协议、域名、SSL证书、反向代理等等概念,然后用令人望而生畏的命令行去敲击那些配置文件。想要在同一台服务器上运行多个网站或服务,并让它们都能通过域名访问,听起来就像是只有经验丰富的工程师才能完成的任务。
但是,如果有一个工具,能把这一切变得像搭积木一样简单呢?一个图形化的界面,让你点几下鼠标,填几个表格,就能完成复杂的反向代理、SSL证书申请和配置?
这就是我们要介绍的主角:Nginx Proxy Manager (NPM)。
Nginx Proxy Manager 是什么?为什么小白需要它?
Nginx Proxy Manager (NPM) 本质上是一个基于 Nginx 的可视化管理工具。它提供了一个用户友好的网页界面,让你无需深入理解 Nginx 的命令行配置,就能轻松地设置反向代理、管理 SSL 证书(通过 Let’s Encrypt 自动化)、配置重定向等。
简单来说,它可以帮助你:
- 在同一台服务器上,用不同的域名(或同一域名的不同子路径)访问不同的内部服务。 比如你有一台服务器,上面跑着一个博客程序(端口 8000)、一个网盘服务(端口 8010)、一个监控面板(端口 8020)。没有 NPM,你可能只能通过
你的服务器IP:8000
,你的服务器IP:8010
,你的服务器IP:8020
这样的方式访问。有了 NPM,你可以设置blog.你的域名.com
指向博客,drive.你的域名.com
指向网盘,monitor.你的域名.com
指向监控面板。甚至可以设置你的域名.com/blog
指向博客,你的域名.com/drive
指向网盘。 - 轻松申请和管理免费的 SSL 证书(HTTPS)。 让你的网站从不安全的 HTTP 变成安全的 HTTPS,这是现代网站的标配。手动申请和配置 Let’s Encrypt 证书可能会比较麻烦,NPM 集成了这个功能,点几下按钮就能自动完成申请、续期和配置,让你的网站地址前面出现那个绿色的小锁。
- 集中管理所有的网站和服务。 所有代理、证书、重定向规则都集中在一个界面,清晰明了,方便管理和修改。
对于小白来说,NPM 最大的吸引力在于:它将复杂的 Nginx 配置抽象化,变成了图形界面的操作。 你不再需要学习 Nginx 的配置文件语法,不需要 SSH 到服务器手动修改文件,不需要担心配置错误导致服务崩溃。只需要理解反向代理的基本概念(把外部请求转发到内部服务),然后在界面上填写正确的信息即可。
所以,如果你想在自己的服务器上折腾各种有趣的应用,但又不想被复杂的网络配置劝退,NPM 绝对是你入门服务器管理的绝佳起点。
开始之前:你需要准备什么?
在正式开始安装和使用 NPM 之前,你需要准备好以下几样东西:
- 一台服务器: 这可以是云服务商(如阿里云、腾讯云、AWS、Google Cloud、Vultr、DigitalOcean 等)提供的 VPS (Virtual Private Server),也可以是你的家用电脑或树莓派,只要它能联网并且安装操作系统。操作系统推荐使用基于 Linux 的发行版,比如 Ubuntu、Debian、CentOS 等。本教程将以 Ubuntu 为例。
- 一个域名: 你需要购买一个自己的域名(比如
.com
,.cn
,.net
等),并在域名注册商那里将域名的 DNS 解析指向你的服务器 IP 地址。这是实现通过域名访问服务的必要步骤。如果你只是想在本地局域网测试,可以暂时跳过域名,直接使用服务器的局域网 IP 进行转发,但这样就无法使用 SSL 证书了。要使用 NPM 强大的 SSL 自动化功能,域名是必需的。 - 服务器已安装 Docker 和 Docker Compose: NPM 最推荐且最简单的安装方式就是使用 Docker。Docker 是一种容器化技术,能让应用(比如 NPM)在隔离的环境中运行,避免与系统环境产生冲突。Docker Compose 是 Docker 的一个工具,用于定义和运行多容器应用,NPM 的安装会用到它。如果你的服务器还没有安装 Docker 和 Docker Compose,请先自行搜索相关教程进行安装,这通常只需要几条简单的命令。
- 服务器防火墙开放端口 80 和 443: 这两个是 HTTP 和 HTTPS 的标准端口。NPM 需要监听这两个端口来接收外部的网络请求。请确保你的服务器防火墙(例如
ufw
或云服务商的安全组)允许外部流量访问这两个端口。同时,NPM 默认的 Web UI 管理界面运行在端口 81,你也需要开放这个端口才能访问管理界面。所以,请确保服务器防火墙开放 80, 443, 81 这三个端口。
准备好以上这些,我们就可以开始 NPM 的安装之旅了!
第一步:安装 Nginx Proxy Manager
如前所述,我们使用 Docker Compose 来安装 NPM。这种方法非常简洁高效。
-
连接到你的服务器: 使用 SSH 客户端(如 PuTTY, Xshell, 或者 Linux/macOS 自带的终端)连接到你的服务器。你需要服务器的 IP 地址、用户名和密码(或 SSH 密钥)。
-
创建 Docker Compose 文件存放目录: 在服务器上找一个合适的位置创建一个目录来存放 NPM 的 Docker Compose 配置文件。
bash
mkdir nginx-proxy-manager
cd nginx-proxy-manager -
创建 Docker Compose 文件: 在这个目录下创建一个名为
docker-compose.yml
的文件。
bash
nano docker-compose.yml
或者使用vim
或其他你熟悉的文本编辑器。 -
编辑
docker-compose.yml
文件: 将以下内容复制粘贴到docker-compose.yml
文件中。yaml
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in use by the Nginx container,
# which is listening on the host machine
- '80:80' # HTTP 访问端口
- '443:443' # HTTPS 访问端口
- '81:81' # NPM 管理界面访问端口
volumes:
# This assumes your db and certs directories are within
# the same directory as your docker-compose file,
# but you can use absolute paths as well
- ./data:/data # 存放 NPM 配置、SSL证书等数据
- ./letsencrypt:/etc/letsencrypt # 存放 Let's Encrypt 证书文件(可选,也可以包含在 ./data 中)
environment:
# Optional: Set the timezone (see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
# - TZ=Asia/Shanghai
# Optional: Disable strict checks on forwarding addresses
# - DISABLE_IPV6=true # 如果你的网络环境不支持IPV6或者有问题,可以尝试关闭
# - NPM_OPTS=--disable-ipv6解释一下这个文件:
*version: '3.8'
:指定 Docker Compose 文件格式的版本。
*services:
:定义要运行的服务。我们这里只有一个服务,叫做app
。
*image: 'jc21/nginx-proxy-manager:latest'
:指定使用哪个 Docker 镜像来创建容器。jc21/nginx-proxy-manager
是 NPM 的官方镜像,:latest
表示使用最新版本。
*restart: unless-stopped
:设置容器的重启策略。unless-stopped
意味着除非你手动停止容器,否则 Docker 会在容器退出或服务器重启时自动重启它。
*ports:
:端口映射。将宿主机(你的服务器)的端口映射到容器内部的端口。
*- '80:80'
:将宿主机的 80 端口映射到容器的 80 端口。外部访问宿主机 80 端口的请求会转发到容器内部的 80 端口。
*- '443:443'
:将宿主机的 443 端口映射到容器的 443 端口。外部访问宿主机 443 端口的请求会转发到容器内部的 443 端口。
*- '81:81'
:将宿主机的 81 端口映射到容器的 81 端口。这是 NPM Web UI 的访问端口。
*volumes:
:数据卷映射。将容器内部的数据目录映射到宿主机上的目录。这样做的好处是,即使容器被删除重建,数据(配置、证书等)也不会丢失。
*- ./data:/data
:将当前目录下创建的data
目录映射到容器内部/data
目录。NPM 的核心数据(包括数据库、配置、日志等)会存放在这里。
*- ./letsencrypt:/etc/letsencrypt
:将当前目录下创建的letsencrypt
目录映射到容器内部/etc/letsencrypt
目录。Let’s Encrypt 证书文件会存放在这里。注意:根据 NPM 的版本,证书文件可能也存放在/data
目录下,这个映射有时是可选的,但写上更明确。
*environment:
:设置容器的环境变量。
*- TZ=Asia/Shanghai
:设置容器的时区。根据你所在的地区修改,方便查看日志时间。
*# - DISABLE_IPV6=true
:如果你不使用 IPv6 或者遇到问题,可以取消注释这一行来禁用 IPv6。 -
保存并退出文件: 在
nano
编辑器中,按Ctrl + X
,然后按Y
确认保存,最后按回车确认文件名。 -
启动 NPM 容器: 在
nginx-proxy-manager
目录下,运行 Docker Compose 命令来启动服务。
bash
docker compose up -dup
:根据docker-compose.yml
文件创建并启动服务。-d
:以后台(detached)模式运行容器,这样你关闭 SSH 终端后容器也不会停止。
-
检查容器状态: 运行以下命令检查容器是否正常启动。
bash
docker ps
你应该会看到一个名为nginx-proxy-manager-app-1
(或者类似的名称,取决于你的 Docker Compose 版本和目录名) 的容器,状态是Up ...
。
如果容器状态显示正常,恭喜你,Nginx Proxy Manager 已经安装并运行在你的服务器上了!
第二步:首次登录及基本设置
现在 NPM 容器已经在运行了,我们可以通过浏览器访问它的管理界面。
- 打开浏览器: 在你的电脑上打开一个网页浏览器。
- 访问管理界面: 在地址栏输入你的服务器 IP 地址,后面加上端口号 81,例如:
http://你的服务器IP:81
。 - 登录: 第一次访问时,你会看到一个登录页面。使用默认的用户名和密码登录:
- Username (Email):
[email protected]
- Password:
changeme
- Username (Email):
- 修改默认信息: 登录成功后,NPM 会立即要求你修改默认的管理员信息。
- 修改 Name (名字) 和 Email Address (邮箱地址)。
- 最重要的一步:修改密码。输入你的当前密码 (
changeme
),然后输入两次你的新密码。请务必设置一个强密码并牢记。 - 点击 “Save” 保存。
完成这些步骤后,你会被重定向到登录页面,使用你刚刚设置的新邮箱和新密码重新登录。
登录成功后,你将看到 NPM 的仪表盘界面。虽然现在还没有任何配置,但界面非常简洁,你可以看到菜单栏、一些状态信息等。
第三步:创建第一个反向代理 (Proxy Host)
反向代理是 NPM 最核心的功能。我们将演示如何将一个运行在你服务器内部某个端口上的服务,通过域名或子域名暴露出来。
假设你在服务器上运行了一个 Web 应用,它监听在 localhost:3000
端口。我们现在要设置 app.你的域名.com
来访问它。
- 确保域名解析已设置: 在你的域名注册商那里,为
app.你的域名.com
添加一条 A 记录,指向你的服务器公网 IP 地址。这一步非常重要! 如果 DNS 解析没有生效(可能需要几分钟到几小时),后面的 SSL 申请会失败。 - 访问 NPM 管理界面: 登录 NPM Web UI (
http://你的服务器IP:81
)。 - 进入 Proxy Hosts 页面: 在左侧菜单栏,点击 “Hosts” -> “Proxy Hosts”。
- 添加新的 Proxy Host: 点击右上角的 “Add Proxy Host” 按钮。
-
配置 Details (详情) 选项卡:
- Domain Names (域名): 输入你想通过哪个域名访问这个服务。这里我们输入
app.你的域名.com
。你可以输入多个域名,每行一个或用逗号分隔。 - Scheme (方案): 选择转发协议。通常内部服务是 HTTP,所以选择
http
。如果你的内部服务已经是 HTTPS,则选择https
。 - Forward Hostname / IP (转发主机名/IP): 输入运行内部服务的服务器的 IP 地址或主机名。如果服务运行在 同一台 服务器上,这里通常填
127.0.0.1
或localhost
。如果你是将另一台机器上的服务转发出来,就填写那台机器的内网 IP 地址。 - Forward Port (转发端口): 输入内部服务正在监听的端口号。我们假设是 3000,所以输入
3000
。 - Block Exploits (阻止攻击): 建议勾选,提供一些基本的安全防护。
- Websockets Support (WebSocket 支持): 如果你的应用使用了 WebSocket(例如聊天应用、实时数据应用等),请勾选此项。大多数 Web 应用不需要。
- Domain Names (域名): 输入你想通过哪个域名访问这个服务。这里我们输入
-
配置 SSL 选项卡 (暂时跳过,后续再配置 HTTPS): 先点击保存,我们稍后再设置 SSL。
- 配置 Advanced (高级) 选项卡 (可选): 这是用于添加自定义 Nginx 配置片段的地方,初学者通常不需要改动。
- 配置 Custom Locations (自定义位置) 选项卡 (可选): 这个功能非常有用,稍后我们详细介绍。
- 保存 Proxy Host: 点击底部的 “Save” 按钮。
现在,你已经成功创建了一个反向代理规则。
第四步:测试 HTTP 访问
在你配置了 DNS 解析并创建了 Proxy Host 后,你应该可以通过配置的域名访问到你的内部服务了(尽管现在还是 HTTP)。
在浏览器中输入 http://app.你的域名.com
。
如果一切正常,你应该能看到你的内部服务页面,而不是服务器的默认页面或错误页面。
如果无法访问,请检查:
* DNS 解析是否生效: 在本地电脑使用 ping app.你的域名.com
或在线工具检查域名解析是否指向了你的服务器 IP。
* 服务器防火墙: 确保端口 80 对外开放。
* 内部服务是否正在运行: 确保你的 Web 应用在服务器的 3000 端口正常运行。
* NPM Proxy Host 配置: 检查填写的转发 IP/Hostname 和 Port 是否正确。
* NPM 容器状态: 确保 NPM Docker 容器正在运行 (docker ps
)。
第五步:为你的网站启用 HTTPS (SSL)
为网站启用 HTTPS 是非常重要的,它能保证用户数据的安全,提高网站的信任度,并且是现代 Web 技术的要求(例如 HTTP/2)。NPM 集成了 Let’s Encrypt,可以非常方便地申请和续期免费的 SSL 证书。
前提条件:
- 你的域名已经正确解析到你的服务器 IP 地址,并且解析已经生效。
- 服务器的 80 端口和 443 端口都已对外开放。Let’s Encrypt 在验证域名所有权时,通常会通过 80 端口进行 HTTP-01 验证。
步骤:
- 访问 NPM 管理界面: 登录 NPM Web UI (
http://你的服务器IP:81
)。 - 进入 Proxy Hosts 页面: 在左侧菜单栏,点击 “Hosts” -> “Proxy Hosts”。
- 编辑之前创建的 Proxy Host: 找到你刚才创建的
app.你的域名.com
这个 Proxy Host,点击右侧的编辑按钮(通常是铅笔图标)。 - 切换到 SSL 选项卡: 点击顶部的 “SSL” 选项卡。
-
请求新的 SSL 证书:
- SSL Certificate (SSL 证书): 选择 “Request a new SSL Certificate” (请求新的 SSL 证书)。
- Force SSL (强制使用 SSL): 强烈建议勾选。勾选后,所有通过 HTTP (80 端口) 访问你的域名的请求都会被自动重定向到 HTTPS (443 端口)。
- Use HTTP/2 (使用 HTTP/2): 建议勾选。HTTP/2 是新一代的 HTTP 协议,性能更好。需要客户端浏览器和服务器都支持。
- HSTS Enabled (启用 HSTS): 建议勾选,并填写合适的 HSTS Age (例如
2592000
,表示 30 天)。HSTS (HTTP Strict Transport Security) 告诉浏览器在未来的指定时间内,对该域名的所有访问都强制使用 HTTPS,即使地址栏输入的是 HTTP。这能增强安全性,防止中间人攻击。注意:启用 HSTS 后,如果你的 HTTPS 配置有问题,用户在指定时间内将无法通过 HTTP 访问你的网站,可能会导致网站无法访问。 在确认 HTTPS 配置稳定前,可以先不勾选 HSTS 或设置较短的 HSTS Age。 - Email Address (邮箱地址): 输入你的邮箱地址。Let’s Encrypt 会通过这个邮箱发送证书到期通知。
- I agree to the Let’s Encrypt Terms of Service (我同意 Let’s Encrypt 服务条款): 必须勾选。
- Propagate Certificates? (传播证书?): 通常不需要勾选,除非你有特殊的集群需求。
- DNS Challenge (DNS 验证): 默认是使用 HTTP-01 验证(通过访问域名下的特定文件验证)。如果你的服务器 80/443 端口被占用或无法对外开放,或者你想申请泛域名证书(如
*.你的域名.com
),则需要使用 DNS 验证。DNS 验证需要在你的域名解析服务商那里添加一个特定的 TXT 记录。对于初学者和普通情况,保持默认(不勾选 DNS Challenge)即可。
-
保存并申请证书: 填写完所有信息后,点击底部的 “Save” 按钮。NPM 会开始向 Let’s Encrypt 服务器申请证书。
如果一切顺利,证书申请会成功,页面会自动刷新,SSL Certificate 选项会变成你刚刚申请到的证书名称 (例如 #1 - app.你的域名.com
)。
SSL 申请常见问题与解决:
- Error: http://app.你的域名.com/.well-known/acme-challenge/… Not Found: 这通常是 Let’s Encrypt 无法通过 HTTP 访问你的域名进行验证。请检查:
- 域名解析是否生效,是否指向了正确的服务器 IP。
- 服务器防火墙是否开放了 80 端口。
- 是否有其他服务占用了服务器的 80 端口。
- 在 NPM 的 Proxy Host 配置中,”Scheme” 是否选择了
http
(对于内部是 HTTP 的服务)。
- Too Many Certificates Already Issued for this Domain: Let’s Encrypt 对每个域名每周颁发证书数量有限制。如果你反复申请失败,可能会遇到这个错误。请等待一周后再尝试。
- TLS ALPN 01, HTTP 01, DNS 01 validation errors: 这些是 Let’s Encrypt 的验证方式错误。HTTP 01 验证最常见,失败原因同上。DNS 01 验证用于泛域名或 80/443 端口不通的情况,需要确保你在 DNS 服务商那里添加了正确的 TXT 记录。
如果遇到问题,可以查看 NPM 的日志来获取更详细的错误信息。在 Docker 环境下,可以使用命令:docker logs <你的NPM容器名称>
(容器名称通常是 nginx-proxy-manager-app-1
)。
第六步:测试 HTTPS 访问
在 SSL 证书申请成功后,现在你应该可以通过 HTTPS 访问你的网站了。
在浏览器中输入 https://app.你的域名.com
。
你应该能看到你的网站,并且地址栏会显示一个绿色的小锁,表示连接是安全的。如果你之前勾选了 “Force SSL”,那么即使你输入 http://app.你的域名.com
也会自动跳转到 HTTPS。
至此,你已经成功地使用 Nginx Proxy Manager 为你的内部服务设置了反向代理并通过域名安全地访问了它!
更多进阶功能 (小白也可以尝试)
NPM 不仅仅只能做基本的反向代理,它还提供了一些其他非常实用的功能:
1. 重定向 (Redirection Hosts)
如果你想将一个域名重定向到另一个地址(另一个域名、一个特定的 URL 等),可以使用 Redirection Hosts。
- 用途: 例如,将
old-domain.com
重定向到new-domain.com
,或者将你的域名.com
重定向到www.你的域名.com
。 - 使用: 在左侧菜单栏选择 “Hosts” -> “Redirection Hosts”,点击 “Add Redirection Host”。
- 填写 Source Domains (源域名),例如
old-domain.com
。 - 选择重定向类型:
Permanent (301)
表示永久重定向(对搜索引擎友好),Temporary (302)
表示临时重定向。 - 填写 Destination URL (目标 URL),例如
https://new-domain.com
。 - 勾选 “SSL” 并选择合适的证书(如果目标是 HTTPS 且你想使用 HTTPS 重定向源域名)。
- 保存。
- 填写 Source Domains (源域名),例如
2. 静态文件服务器 (Streams – 相对不常用,初学者可跳过)
这个功能允许你直接将 NPM 作为简单的静态文件服务器,或者代理 TCP/UDP 端口。对于大部分小白用于 Web 服务反向代理的场景,Proxy Hosts 足够了。
3. 自定义位置 (Custom Locations) – 非常实用
如果你想在 同一个域名 下的不同路径访问 不同的内部服务,而不是为每个服务都配置一个子域名,Custom Locations 就派上用场了。
- 用途: 例如,将
你的域名.com/blog
转发到运行在 8000 端口的博客服务,将你的域名.com/drive
转发到运行在 8010 端口的网盘服务。 - 使用: 在创建或编辑 Proxy Host 时,切换到 “Custom Locations” 选项卡。
- 点击 “Add Location”。
- 填写 Define Location (定义位置): 这是你想要匹配的 URL 路径。例如
/blog/
或/drive/
。注意:路径通常以/
开头和结尾。 - 选择 Scheme (方案)、Forward Hostname / IP (转发主机名/IP) 和 Forward Port (转发端口),这些设置只对当前这个 Location 生效。例如,对于
/blog/
,Scheme 选择http
,Forward Hostname / IP 填localhost
,Forward Port 填8000
。 - 保存 Proxy Host。
配置完成后,访问 https://你的域名.com/blog/
就会访问到你的博客服务,访问 https://你的域名.com/drive/
就会访问到网盘服务。
重要提示: 当使用 Custom Locations 时,你需要转发的内部服务本身可能需要配置“子路径”。比如你的博客服务如果设计为直接运行在域名的根目录,将其转发到 /blog/
路径下可能会导致一些内部链接或资源加载错误(因为它内部生成的链接仍然是 /about
而不是 /blog/about
)。一些应用支持配置运行在子路径下(比如 base URL),有些则需要额外的 Nginx 配置或修改应用本身。对于初学者,建议先使用子域名的方式(如 blog.你的域名.com
)来避免这个问题,子域名通常更容易配置。Custom Locations 在内部服务本身就支持子路径访问时效果最好。
4. 访问列表 (Access Lists)
你可以为你的 Proxy Host 设置基本的访问控制,例如需要用户名密码才能访问,或者只允许特定的 IP 地址访问。
- 用途: 保护你的管理面板、内部工具等不希望对外开放的服务。
- 使用:
- 在左侧菜单栏选择 “Access Lists”,点击 “Add Access List”。
- 给列表命名(例如
admin-only
)。 - 在 “Authorization” 部分,点击 “Add” 添加允许访问的用户名和密码。
- 在 “Satisfy Any” 或 “Satisfy All” 下设置 IP 限制(可选)。
- 保存 Access List。
- 编辑你的 Proxy Host,切换到 “Access List” 选项卡,选择你刚刚创建的访问列表。
- 保存 Proxy Host。
现在访问该 Proxy Host 时,浏览器会弹出 Basic Auth 认证窗口,需要输入正确的用户名密码才能访问。
5. 自定义 Nginx 配置 (Advanced Tab)
对于有经验的用户或者需要一些特殊 Nginx 指令的场景,可以在 Proxy Host 的 “Advanced” 选项卡中直接添加自定义的 Nginx 配置片段。
- 用途: 添加额外的请求头、修改缓存策略、设置更复杂的重写规则等等。
- 使用: 在 Proxy Host 的 “Advanced” 选项卡中,将 Nginx 配置代码粘贴到文本框中。NPM 会将这些代码插入到对应的 Nginx server 块中。注意:你需要了解 Nginx 配置语法。错误的配置可能导致代理失效或 Nginx 启动失败。 初学者通常不需要使用此功能。
维护和故障排除
- 查看日志: 当遇到问题时,查看 NPM 容器的日志是排查问题最有效的方法。使用命令
docker logs nginx-proxy-manager-app-1
(替换为你的容器名称)。 - 重启容器: 有时简单的重启可以解决问题。使用命令
docker restart nginx-proxy-manager-app-1
。 - 更新 NPM: 要更新到最新版本的 NPM,进入存放
docker-compose.yml
文件的目录,先停止并删除旧容器,然后拉取新镜像并重建容器(数据卷会保留数据)。
bash
docker compose down
docker compose pull
docker compose up -d - 常见问题回顾:
- 无法访问 NPM 管理界面 (IP:81): 检查服务器防火墙 81 端口是否开放,检查
docker ps
确认 NPM 容器是否正在运行且端口映射正确 (81:81)。 - 无法通过域名访问网站 (HTTP 80): 检查域名解析是否生效,服务器防火墙 80 端口是否开放,内部服务是否运行正常,NPM Proxy Host 配置的转发地址和端口是否正确。
- 无法通过域名访问网站 (HTTPS 443): 检查 SSL 证书是否申请成功(查看 Proxy Host 配置是否显示了证书名称),服务器防火墙 443 端口是否开放,域名解析是否生效(SSL 申请需要验证域名),内部服务是否运行正常。特别是 SSL 申请失败,90% 的原因在于域名解析未生效或 80/443 端口无法访问。
- 无法访问 NPM 管理界面 (IP:81): 检查服务器防火墙 81 端口是否开放,检查
总结
Nginx Proxy Manager 是一个对新手极为友好的 Nginx 可视化管理工具。它通过提供一个直观的 Web 界面,极大地简化了反向代理和 SSL 证书的配置过程。从安装 Docker 环境下的 NPM,到首次登录配置,再到创建 Proxy Host 实现域名访问内部服务,以及最常用的通过 Let’s Encrypt 自动化配置 HTTPS,这些核心功能对于“小白”来说都是完全可以掌握的。
虽然 NPM 还有一些更高级的功能,但掌握了基本的 Proxy Host 和 SSL 配置,你已经能够满足绝大多数个人或小型项目需求:在同一台服务器上通过不同的域名安全地访问你的博客、图床、网盘、开发中的应用等等。
希望这篇详细的入门指南能帮助你迈出服务器管理的第一步。不要害怕尝试,按照步骤一步步来,遇到问题就查看日志、搜索资料,你会发现服务器配置的世界并没有想象中那么难以触碰。NPM 让这一切变得触手可及!
祝你使用愉快!