johnhao
johnhao
发布于 2025-11-28 / 14 阅读
0

Nginx Proxy Manager 安装与使用全攻略

68747470733a2f2f6e67696e7870726f78796d616e616765722e636f6d2f6769746875622e706e67

项目仓库地址:

中文:https://github.com/xiaoxinpro/nginx-proxy-manager-zh.git

英文:https://github.com/NginxProxyManager/nginx-proxy-manager

一、简介

Nginx Proxy Manager(简称 NPM)是一个基于 Nginx 的图形化反向代理管理工具,提供可视化界面实现 SSL 证书管理、反向代理配置、访问控制等功能。其核心优势在于:

  • 零 Nginx 配置经验即可操作

  • 自动申请/续期 Let's Encrypt 免费证书

  • 支持 HTTP/HTTPS 双协议

  • 提供访问控制、Websocket 支持等高级功能

二、环境准备

1. 系统要求

  • Linux/Windows/macOS 系统

  • Docker 20.10+

  • Docker Compose 1.29+

2. 安装 Docker

# Ubuntu/Debian 系统
sudo apt-get update
sudo apt install docker.io docker-compose -y

# CentOS 系统
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-compose -y

三、安装 Nginx Proxy Manager

1. 创建项目目录

mkdir -p ~/npm/{data,letsencrypt}
cd ~/npm

2. 配置 Docker Compose

创建 docker-compose.yml 文件,内容如下:

version: '3'
services:
  app:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      - "80:80"     # HTTP 代理端口
      - "443:443"   # HTTPS 代理端口
      - "81:81"     # 管理界面端口
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

3. 启动服务

# 启动,并后台运行
docker-compose up -d
# 查看日志
docker-compose logs -f

四、初次配置

1. 访问管理界面

浏览器打开:http://服务器IP:81,

默认账号:

邮箱:admin@example.com
密码:changeme

首次登录后系统会强制修改密码。

2. 系统设置

  • 用户管理:点击右上角头像 → Edit User 修改个人信息

  • 邮件通知:Settings → Email 配置 SMTP 服务器

  • 数据存储:默认使用 SQLite,如需 MySQL 参考文末高级配置

五、核心功能配置

1. 添加反向代理

  1. 点击 Hosts → Proxy Hosts → Add Proxy Host

  2. 填写基本信息:

    • Domain Namesexample.com,www.example.com

    • Forward Hostname/IP:目标服务器 IP 或域名

    • Forward Port:目标服务端口(如 80/3000)

    • Block Common Exploits:建议开启基础安全防护

  3. 点击 Save 完成创建

2. 配置 SSL 证书

  1. 申请证书

    • 点击 SSL → Add SSL Certificate

    • 选择 Let's Encrypt 模式

    • 填写邮箱和域名,系统自动完成验证

  2. 绑定证书

    • 编辑对应 Proxy Host

    • 在 SSL 选项卡选择已申请的证书

    • 勾选 Force SSL 启用 HTTPS 强制跳转

3. 访问控制

  • IP 白名单:在 Proxy Host 配置页 → Access List 设置允许访问的 IP 范围

  • HTTP 认证:勾选 Authentication 后设置用户名密码

六、高级配置

1. 使用 MySQL 存储

修改 docker-compose.yml

version: '3.8'
services:
  app:
    ...
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    depends_on:
      - db
  db:
    image: 'jc21/mariadb-aria:latest'
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'

2. 中文版部署

替换镜像为中文版:

image: chishin/nginx-proxy-manager-zh:release

七、常见问题

1. 证书申请失败

  • 检查域名解析是否指向服务器 IP

  • 确保 80/443 端口未被其他服务占用

  • 在容器内安装 DNSPod 插件(如需 DNS 验证):

docker exec -it npm_container_id bash
pip3 install certbot-dns-dnspod

2. 服务无法访问

  • 检查防火墙规则:

sudo ufw allow 80,443,81/tcp
  • 验证容器状态:

docker ps -a

八、总结

Nginx Proxy Manager 通过图形化界面大幅降低了 Nginx 的使用门槛,配合自动化的 SSL 证书管理功能,即使是初学者也能快速搭建安全的反向代理服务。建议定期检查更新日志,及时升级到最新版本以获取安全补丁和新特性。