小白也能学会的 Nginx Proxy Manager 入门 – wiki基地


小白也能学会的 Nginx Proxy Manager 入门:告别复杂的服务器配置

服务器的世界,尤其是网络服务的配置,在很多新手眼中常常充满了神秘和复杂。你需要理解端口、协议、域名、SSL证书、反向代理等等概念,然后用令人望而生畏的命令行去敲击那些配置文件。想要在同一台服务器上运行多个网站或服务,并让它们都能通过域名访问,听起来就像是只有经验丰富的工程师才能完成的任务。

但是,如果有一个工具,能把这一切变得像搭积木一样简单呢?一个图形化的界面,让你点几下鼠标,填几个表格,就能完成复杂的反向代理、SSL证书申请和配置?

这就是我们要介绍的主角:Nginx Proxy Manager (NPM)

Nginx Proxy Manager 是什么?为什么小白需要它?

Nginx Proxy Manager (NPM) 本质上是一个基于 Nginx 的可视化管理工具。它提供了一个用户友好的网页界面,让你无需深入理解 Nginx 的命令行配置,就能轻松地设置反向代理、管理 SSL 证书(通过 Let’s Encrypt 自动化)、配置重定向等。

简单来说,它可以帮助你:

  1. 在同一台服务器上,用不同的域名(或同一域名的不同子路径)访问不同的内部服务。 比如你有一台服务器,上面跑着一个博客程序(端口 8000)、一个网盘服务(端口 8010)、一个监控面板(端口 8020)。没有 NPM,你可能只能通过 你的服务器IP:8000, 你的服务器IP:8010, 你的服务器IP:8020 这样的方式访问。有了 NPM,你可以设置 blog.你的域名.com 指向博客,drive.你的域名.com 指向网盘,monitor.你的域名.com 指向监控面板。甚至可以设置 你的域名.com/blog 指向博客,你的域名.com/drive 指向网盘。
  2. 轻松申请和管理免费的 SSL 证书(HTTPS)。 让你的网站从不安全的 HTTP 变成安全的 HTTPS,这是现代网站的标配。手动申请和配置 Let’s Encrypt 证书可能会比较麻烦,NPM 集成了这个功能,点几下按钮就能自动完成申请、续期和配置,让你的网站地址前面出现那个绿色的小锁。
  3. 集中管理所有的网站和服务。 所有代理、证书、重定向规则都集中在一个界面,清晰明了,方便管理和修改。

对于小白来说,NPM 最大的吸引力在于:它将复杂的 Nginx 配置抽象化,变成了图形界面的操作。 你不再需要学习 Nginx 的配置文件语法,不需要 SSH 到服务器手动修改文件,不需要担心配置错误导致服务崩溃。只需要理解反向代理的基本概念(把外部请求转发到内部服务),然后在界面上填写正确的信息即可。

所以,如果你想在自己的服务器上折腾各种有趣的应用,但又不想被复杂的网络配置劝退,NPM 绝对是你入门服务器管理的绝佳起点。

开始之前:你需要准备什么?

在正式开始安装和使用 NPM 之前,你需要准备好以下几样东西:

  1. 一台服务器: 这可以是云服务商(如阿里云、腾讯云、AWS、Google Cloud、Vultr、DigitalOcean 等)提供的 VPS (Virtual Private Server),也可以是你的家用电脑或树莓派,只要它能联网并且安装操作系统。操作系统推荐使用基于 Linux 的发行版,比如 Ubuntu、Debian、CentOS 等。本教程将以 Ubuntu 为例。
  2. 一个域名: 你需要购买一个自己的域名(比如 .com, .cn, .net 等),并在域名注册商那里将域名的 DNS 解析指向你的服务器 IP 地址。这是实现通过域名访问服务的必要步骤。如果你只是想在本地局域网测试,可以暂时跳过域名,直接使用服务器的局域网 IP 进行转发,但这样就无法使用 SSL 证书了。要使用 NPM 强大的 SSL 自动化功能,域名是必需的。
  3. 服务器已安装 Docker 和 Docker Compose: NPM 最推荐且最简单的安装方式就是使用 Docker。Docker 是一种容器化技术,能让应用(比如 NPM)在隔离的环境中运行,避免与系统环境产生冲突。Docker Compose 是 Docker 的一个工具,用于定义和运行多容器应用,NPM 的安装会用到它。如果你的服务器还没有安装 Docker 和 Docker Compose,请先自行搜索相关教程进行安装,这通常只需要几条简单的命令。
  4. 服务器防火墙开放端口 80 和 443: 这两个是 HTTP 和 HTTPS 的标准端口。NPM 需要监听这两个端口来接收外部的网络请求。请确保你的服务器防火墙(例如 ufw 或云服务商的安全组)允许外部流量访问这两个端口。同时,NPM 默认的 Web UI 管理界面运行在端口 81,你也需要开放这个端口才能访问管理界面。所以,请确保服务器防火墙开放 80, 443, 81 这三个端口。

准备好以上这些,我们就可以开始 NPM 的安装之旅了!

第一步:安装 Nginx Proxy Manager

如前所述,我们使用 Docker Compose 来安装 NPM。这种方法非常简洁高效。

  1. 连接到你的服务器: 使用 SSH 客户端(如 PuTTY, Xshell, 或者 Linux/macOS 自带的终端)连接到你的服务器。你需要服务器的 IP 地址、用户名和密码(或 SSH 密钥)。

  2. 创建 Docker Compose 文件存放目录: 在服务器上找一个合适的位置创建一个目录来存放 NPM 的 Docker Compose 配置文件。
    bash
    mkdir nginx-proxy-manager
    cd nginx-proxy-manager

  3. 创建 Docker Compose 文件: 在这个目录下创建一个名为 docker-compose.yml 的文件。
    bash
    nano docker-compose.yml

    或者使用 vim 或其他你熟悉的文本编辑器。

  4. 编辑 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。

  5. 保存并退出文件:nano 编辑器中,按 Ctrl + X,然后按 Y 确认保存,最后按回车确认文件名。

  6. 启动 NPM 容器:nginx-proxy-manager 目录下,运行 Docker Compose 命令来启动服务。
    bash
    docker compose up -d

    • up:根据 docker-compose.yml 文件创建并启动服务。
    • -d:以后台(detached)模式运行容器,这样你关闭 SSH 终端后容器也不会停止。
  7. 检查容器状态: 运行以下命令检查容器是否正常启动。
    bash
    docker ps

    你应该会看到一个名为 nginx-proxy-manager-app-1 (或者类似的名称,取决于你的 Docker Compose 版本和目录名) 的容器,状态是 Up ...

如果容器状态显示正常,恭喜你,Nginx Proxy Manager 已经安装并运行在你的服务器上了!

第二步:首次登录及基本设置

现在 NPM 容器已经在运行了,我们可以通过浏览器访问它的管理界面。

  1. 打开浏览器: 在你的电脑上打开一个网页浏览器。
  2. 访问管理界面: 在地址栏输入你的服务器 IP 地址,后面加上端口号 81,例如:http://你的服务器IP:81
  3. 登录: 第一次访问时,你会看到一个登录页面。使用默认的用户名和密码登录:
  4. 修改默认信息: 登录成功后,NPM 会立即要求你修改默认的管理员信息。
    • 修改 Name (名字) 和 Email Address (邮箱地址)。
    • 最重要的一步:修改密码。输入你的当前密码 (changeme),然后输入两次你的新密码。请务必设置一个强密码并牢记。
    • 点击 “Save” 保存。

完成这些步骤后,你会被重定向到登录页面,使用你刚刚设置的新邮箱和新密码重新登录。

登录成功后,你将看到 NPM 的仪表盘界面。虽然现在还没有任何配置,但界面非常简洁,你可以看到菜单栏、一些状态信息等。

第三步:创建第一个反向代理 (Proxy Host)

反向代理是 NPM 最核心的功能。我们将演示如何将一个运行在你服务器内部某个端口上的服务,通过域名或子域名暴露出来。

假设你在服务器上运行了一个 Web 应用,它监听在 localhost:3000 端口。我们现在要设置 app.你的域名.com 来访问它。

  1. 确保域名解析已设置: 在你的域名注册商那里,为 app.你的域名.com 添加一条 A 记录,指向你的服务器公网 IP 地址。这一步非常重要! 如果 DNS 解析没有生效(可能需要几分钟到几小时),后面的 SSL 申请会失败。
  2. 访问 NPM 管理界面: 登录 NPM Web UI (http://你的服务器IP:81)。
  3. 进入 Proxy Hosts 页面: 在左侧菜单栏,点击 “Hosts” -> “Proxy Hosts”。
  4. 添加新的 Proxy Host: 点击右上角的 “Add Proxy Host” 按钮。
  5. 配置 Details (详情) 选项卡:

    • Domain Names (域名): 输入你想通过哪个域名访问这个服务。这里我们输入 app.你的域名.com。你可以输入多个域名,每行一个或用逗号分隔。
    • Scheme (方案): 选择转发协议。通常内部服务是 HTTP,所以选择 http。如果你的内部服务已经是 HTTPS,则选择 https
    • Forward Hostname / IP (转发主机名/IP): 输入运行内部服务的服务器的 IP 地址或主机名。如果服务运行在 同一台 服务器上,这里通常填 127.0.0.1localhost。如果你是将另一台机器上的服务转发出来,就填写那台机器的内网 IP 地址。
    • Forward Port (转发端口): 输入内部服务正在监听的端口号。我们假设是 3000,所以输入 3000
    • Block Exploits (阻止攻击): 建议勾选,提供一些基本的安全防护。
    • Websockets Support (WebSocket 支持): 如果你的应用使用了 WebSocket(例如聊天应用、实时数据应用等),请勾选此项。大多数 Web 应用不需要。
  6. 配置 SSL 选项卡 (暂时跳过,后续再配置 HTTPS): 先点击保存,我们稍后再设置 SSL。

  7. 配置 Advanced (高级) 选项卡 (可选): 这是用于添加自定义 Nginx 配置片段的地方,初学者通常不需要改动。
  8. 配置 Custom Locations (自定义位置) 选项卡 (可选): 这个功能非常有用,稍后我们详细介绍。
  9. 保存 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 验证。

步骤:

  1. 访问 NPM 管理界面: 登录 NPM Web UI (http://你的服务器IP:81)。
  2. 进入 Proxy Hosts 页面: 在左侧菜单栏,点击 “Hosts” -> “Proxy Hosts”。
  3. 编辑之前创建的 Proxy Host: 找到你刚才创建的 app.你的域名.com 这个 Proxy Host,点击右侧的编辑按钮(通常是铅笔图标)。
  4. 切换到 SSL 选项卡: 点击顶部的 “SSL” 选项卡。
  5. 请求新的 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)即可
  6. 保存并申请证书: 填写完所有信息后,点击底部的 “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 重定向源域名)。
    • 保存。

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 地址访问。

  • 用途: 保护你的管理面板、内部工具等不希望对外开放的服务。
  • 使用:
    1. 在左侧菜单栏选择 “Access Lists”,点击 “Add Access List”。
    2. 给列表命名(例如 admin-only)。
    3. 在 “Authorization” 部分,点击 “Add” 添加允许访问的用户名和密码。
    4. 在 “Satisfy Any” 或 “Satisfy All” 下设置 IP 限制(可选)。
    5. 保存 Access List。
    6. 编辑你的 Proxy Host,切换到 “Access List” 选项卡,选择你刚刚创建的访问列表。
    7. 保存 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 端口无法访问。

总结

Nginx Proxy Manager 是一个对新手极为友好的 Nginx 可视化管理工具。它通过提供一个直观的 Web 界面,极大地简化了反向代理和 SSL 证书的配置过程。从安装 Docker 环境下的 NPM,到首次登录配置,再到创建 Proxy Host 实现域名访问内部服务,以及最常用的通过 Let’s Encrypt 自动化配置 HTTPS,这些核心功能对于“小白”来说都是完全可以掌握的。

虽然 NPM 还有一些更高级的功能,但掌握了基本的 Proxy Host 和 SSL 配置,你已经能够满足绝大多数个人或小型项目需求:在同一台服务器上通过不同的域名安全地访问你的博客、图床、网盘、开发中的应用等等。

希望这篇详细的入门指南能帮助你迈出服务器管理的第一步。不要害怕尝试,按照步骤一步步来,遇到问题就查看日志、搜索资料,你会发现服务器配置的世界并没有想象中那么难以触碰。NPM 让这一切变得触手可及!

祝你使用愉快!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部