简介

Nginx Proxy Manager(以下简称 NPM)就是一个 Nginx 的代理管理器,它最大的特点是简单方便。
即使是没有 Nginx 基础的小伙伴,也能轻松地用它来完成反向代理的操作,不需要自己写复杂的nginx配置,而且因为自带面板,操作极其简单。
Nginx Proxy Manager 后台还可以一键申请 SSL 证书,并且会自动续期,方便省心。
官方网站:Nginx Proxy Manager官方快速安装:Guide | Nginx Proxy Manager

环境搭建

我们推荐按照 Docker 官方文档安装 Docker 和 Docker Compose,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。

Docker 安装文档
Docker Compose 安装文档

创建容器

1. 在系统任意位置创建一个文件夹,此文档以当前目录创建npm为例

mkdir -p npm && cd npm

注意:后续操作中,产生的所有数据都会保存在这个目录,请妥善保存

2. 创建 docker-compose.yaml

nano docker-compose.yml

粘贴填入下面的内容:

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'              # 不建议修改端口
      - '81:81'              # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口
      - '443:443'            # 不建议修改端口
    volumes:
      - ./data:/data         # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建
      - ./letsencrypt:/etc/letsencrypt  # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建
    # network_mode: "host"   # 如果代理的服务不是同一个网络建议启用

之后,同样英文输入法下,按一下Ctrl+X,然后 输入y,最后回车确认退出。

3. 启动服务

输入docker compose up -d回车启动服务

4. 登录服务

用浏览器访问 http://你的ip:81 即可
例如: http://127.0.0.1:81
默认登陆的用户名:[email protected] 密码:changeme

第一次登陆会提示更改用户名和密码,建议修改一个复杂一点的密码。

更新容器

1. 停止运行中的容器组

cd npm && docker compose down

2. 备份数据(重要)

cp -r ~/npm ~/npm.back

需要注意的是,npm.back 文件名不一定要根据此文档命名,这里仅仅是个示例。

3. 更新服务

拉取最新镜像

docker compose pull

重新启动容器

docker compose up -d

配置NPM

首先我们登陆网页端之后,会弹出修改用户名和密码的对话框,我们根据自己的实际来修改自己的用户名和邮箱。

PixPin_2025-04-02_18-46-08.png

保存之后,会让我们修改密码(建议用一个复杂的密码)。

PixPin_2025-04-02_18-46-22.png

接着我们就可以添加一个反向代理了。

配置反向代理

配置前记得将域名解析到你的服务器上

PixPin_2025-04-02_10-38-15.png
PixPin_2025-04-02_10-39-11.png
PixPin_2025-04-02_10-40-09.png
PixPin_2025-04-02_10-41-21.png

汉化

由于官方镜像是英文,对部分人员使用起来不方便,在github上有汉化版
xiaoxinpro/nginx-proxy-manager-zh: 基于nginx-proxy-manager翻译的中文版本
以及对应的docker镜像
chishin/nginx-proxy-manager-zh - Docker Image | Docker Hub

当你使用官方示例的docker-compose时需要注意,将image镜像jc21/nginx-proxy-manager替换为chishin/nginx-proxy-manager-zh即可实现中文部署

中文镜像并没有重新构建后端代码,由Dockerfile-zh源码可以得知,中文版镜像基于官方镜像替换前端代码来实现的,所以中文版本的全部功能与官方版本完全相同,只是显示界面的文字不同的区别。