一、简介

Nginx 身为一款高性能的 HTTP 及反向代理 Web 服务器,乃是当下构建网站至关重要的组成部分。通常而言,我们若要新增反向代理、创建证书,皆需登录服务器,并借助命令行加以处理。那么,是否存在能够直接于 Web 端修改 Nginx 配置、新增反向代理的途径呢?类似于此功能的开源项目实则存有若干,诸如:NginxWebUI、Nginx-UI 等等。此文重点介绍 Nginx Proxy Manager,其涵盖了反向代理、证书自动续签等实用的功能。

  • 什么是 NPM?

Nginx Proxy Manager 是一个依托于 Nginx 的反向代理管理工具,呈献了一个对用户亲善的界面,用以管理 Nginx 反向代理、SSL 证书以及其他相关配置。其让用户能够游刃有余地设定和管控代理服务,而无需径直编辑 Nginx 配置文件。

Nginx Proxy Manager

  • NPM 特点
  1. 反向代理管理:用户可以通过可视化的表单添加、编辑和删除反向代理设置,支持 HTTP、HTTPS 和 WebSocket。
  2. 用户界面:提供一个简洁直观的 Web 界面,方便地进行各种配置,不需要使用复杂的命令。
  3. SSL管理:支持 Let's Encrypt 自动生成和更新 SSL 证书,用户可以轻松地为自己的域名启用 HTTPS。
  4. 访问控制:提供基本的身份验证,限制对某些服务的访问。
  5. 日志查看:提供访问日志和错误日志的查看功能,帮助用户监控和排查问题。

二、Docker 部署

2.1 Linux 安装 Docker

#这里只是演示,前置更新包安装依赖等不做缀述
apt install docker-ce -y

2.2 创建本地挂载目录

cd /data
mkdir npm && cd npm
mkdir data && mkdir letsencrypt

2.3 获取npm镜像

docker pull jc21/nginx-proxy-manager:latest

2.4 运行 docker 容器

docker run -itd -p 80:80 -p 81:81 -p 443:443 --name npm --restart=always -v /data/npm/data:/data -v /data/npm/letsencrypt:/etc/letsencrypt -v /etc/localtime:/etc/localtime:ro  jc21/nginx-proxy-manager:latest

2.5 docker compose 运行

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - /data/npm/data:/data
      - /data/npm/letsencrypt:/etc/letsencrypt
docker-compose up -d
#docker-compose-plugin
docker compose up -d

2.6 访问界面

浏览器输入地址 http://localhost:81

登录界面

2.7 默认账号和密码

账号: admin@example.com
密码: changeme

三、简单使用

3.1 新增反向代理
反向代理

2.3 自动续签 SSL 证书
续签SSL证书

这里开启后,会自动去申请https证书,绑定到服务器IP,域名为你申请反代填写的域名。