当前位置: 首页 > news >正文

轻松上手Nginx Proxy Manager:安装、配置与实战

轻松上手Nginx Proxy Manager:安装、配置与实战
  • 安装部署
    • 概述
    • 安装Docker和Docker Compose
    • 创建项目目录
    • 创建Docker Compose文件
    • 启动
    • 数据存储方式说明
  • Web管理控制台
    • 访问Web界面
    • 登录
  • 基本使用
    • 域名与IP绑定
    • 添加代理主机
    • 配置说明
    • 保存并应用配置
    • 一键申请SSL证书
  • 申请泛域名SSL证书
    • 获取API令牌
    • 添加泛域名证书
    • 新建代理
    • 验证

安装部署

概述

Nginx Proxy Manager (NPM) 是一个基于 Nginx 的反向代理管理工具,旨在简化 Nginx 的配置和管理。它提供了一个直观的 Web 界面,使用户可以轻松地设置和管理反向代理、SSL 证书、访问控制等功能。

官网:https://nginxproxymanager.com/

GitHub:https://github.com/NginxProxyManager/nginx-proxy-manager

安装Docker和Docker Compose

如果你的系统上还没有安装Docker和Docker Compose,你可以根据你的操作系统参考官方文档进行安装:

Docker安装文档

Docker Compose安装文档

创建项目目录

创建一个目录来存放Docker Compose文件和相关配置文件:

mkdir nginx-proxy-manager cd nginx-proxy-manager

创建Docker Compose文件

在项目目录中创建一个名为docker-compose.yml的文件,并添加以下内容:

services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt

启动

在项目目录中运行以下命令启动Nginx Proxy Manager,这将下载所需的Docker镜像并启动容器。

docker-compose up -d # 如果使用docker-compose-plugin docker compose up -d

数据存储方式说明

Nginx Proxy Manager默认使用SQLite数据库来存储其数据,包括配置、代理主机信息、SSL 证书等。除此之外,Nginx Proxy Manager还可以使用MySQL来进行数据存储。

以下是一个docker-compose.yml文件,Nginx Proxy Manager使用MySQL进行数据存储的示例

version: '3.8' services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format <host-port>:<container-port> - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP environment: # Mysql/Maria connection parameters: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt depends_on: - db db: image: 'jc21/mariadb-aria:latest' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' MARIADB_AUTO_UPGRADE: '1' volumes: - ./mysql:/var/lib/mysql

Web管理控制台

访问Web界面

一旦容器启动,你可以通过浏览器访问Nginx Proxy Manager的Web界面。默认地址是http://<your-server-ip>:81

登录

首次登录时,使用以下默认凭据

Email: admin@example.com Password: changeme

登录后,系统会提示更改默认密码。

基本使用

域名与IP绑定

在域名管理服务商那里添加域名与IP的绑定关系。

这里添加一条DNS解析,也就是创建一个二级域名:类型:A、名称:npm、IP:服务器IP

这表示:访问二级域名npm.域名即可访问服务IP。

添加代理主机

在Web界面中,可以添加新的代理主机来管理反向代理配置。

点击Proxy Hosts选项卡

然后点击Add Proxy Host按钮

在添加代理主机的页面中,填写以下信息:

配置说明

Domain Names :填写网站域名,需要上面做好DNS解析,把域名绑定到服务器IP Scheme : 选择HTTP或HTTPS。默认http即可,除非有自签名证书 Forward Hostname/IP :填写要代理到的目标主机名或IP地址,或者Docker容器内部IP(NPM和程序服务在同一台服务器上) Forward Port:填写目标主机的端口号,这里是NPM管理界面81端口 Cache Assets :缓存,根据需求选择打开 Block Common Exploits: 阻止常见的漏洞,根据需求选择打开 Websockets Support :WS支持,根据需求选择打开 Access List: NPM自带的一个限制访问功能

注意:
这里填的是172.17.0.1,为Docker容器内部的IP地址。可以通过下面的命令查询:

[root@vm ~]# ip addr show docker0 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:39:63:84:15 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever

保存并应用配置

填写完所有必要的信息后,点击Save按钮保存配置。Nginx Proxy Manager会自动生成并应用Nginx 配置文件。

此时,浏览器访问二级域名http://<your-server-domain>即可访问到Nginx Proxy Manager的管理界面

一键申请SSL证书

申请SSL证书,让网站支持https访问。

选择创建一个新的证书,勾选强制SSL,填写邮件、同意条款,点击Save即可申请SSL证书

此时,浏览器就可以使用https访问,并提示连接安全

申请泛域名SSL证书

泛域名SSL证书就是指:申请一个二级域名*.xxx.com证书,这样二级域名无论是什么都可以用这个证书,不再需要为每一个二级域名申请一个SSL证书。

获取API令牌

这里使用Cloudflare托管域名,故登录Cloudflare,获取域名服务商的API令牌

API令牌:在Cloudflare仪表板中,点击右上角的头像,然后选择我的个人资料,在左侧菜单中,选择API 令牌 创建新的API令牌:点击创建令牌按钮 选择API令牌模板:Cloudflare提供了一些预定义的模板,可以选择其中之一,也可以自定义令牌。 根据API令牌用途选择不同模板:对于Nginx Proxy Manager,通常选择编辑区域DNS模板是一个不错的选择。

使用模板后,只需要修改区域资源项,选择要操作的域名即可

得到如下提示,获得API令牌

添加泛域名证书

选择SSL Certificates -> Add SSL Certificate -> Let's Encrypt选项

填写域名:*.域名域名 *.域名邮箱

勾选:Use a DNS Challenge、选择DNS提供商:Cloudflare,根据模板提示填入服务商处获取的API令牌

勾选同意条款,然后保存即可

新建代理

进入Proxy Hosts,新建一个反向代理:指定一个二级域名,同时指定某个程序服务端口

证书配置这里指定泛域名证书

验证

浏览器以https方式访问指定的二级域名,不出意外即可访问对应的服务

http://www.jsqmd.com/news/478978/

相关文章:

  • IT项目管理:风险识别与应对策略
  • BGE Reranker-v2-m3在电力调度系统中的落地:告警信号Query与应急预案匹配
  • ChatGPT科研绘图入门指南:从零开始的高效可视化实践
  • 运维实战---多种方式在Linux中部署并初始化MySQL
  • 极寒之巅的“无头”巨兽:华能睿驰如何开启全球工业的无人化纪元
  • Stable Yogi Leather-Dress-Collection运维指南:Linux常用命令与监控脚本
  • Stable-Diffusion-V1-5 算法解析:从扩散模型原理到代码实现入门
  • 瓦楞纸螺旋横切刀哪家好?2026年高性价比钨钢合金/生活用纸横/塑料粉碎切刀推荐! - 品牌推荐用户报道者
  • GTE-Base-ZH模型推理性能基准测试:CPU vs GPU vs 云端API
  • Qwen3-Reranker-0.6B多场景落地:金融研报摘要匹配、专利文本相关性排序案例
  • 窗口函数-详细讲解分析
  • (CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)
  • (七)Spring Cloud Alibaba 2023.x:RocketMQ 消息队列配置与实现
  • ChatTTS 调试实战:从日志分析到性能优化的完整指南
  • 企业碳排放权交易会计信息处理规范 免费下载
  • Hunyuan-MT 7B Java面试题翻译工具:技术招聘国际化解决方案
  • C++ 中文输出乱码?一篇博客彻底搞定
  • 5个技巧让Unity资源提取效率提升10倍:告别编辑器依赖的轻量级解决方案
  • (五)Spring Cloud Alibaba 2023.x:Seata 分布式事务配置与实现
  • LangGraph.js 核心概念:State / Node / Edge 一文讲透
  • AI智能体编码 skeptic 的 Rust 性能优化实战
  • 198.arctan与arctan2鉴相器的区别
  • Claude生成式UI的逆向与利用
  • YOLOv13全网首发:CVPR2026 Transformer注意力 | BinaryAttention 1-bit注意力,推理提速100%,超越FlashAttention2
  • QQ空间记忆守护:用技术为青春时光建一座数字档案馆
  • C++】面向对象编程:继承与多态的魅力
  • Embedding和向量数据库
  • 深入剖析C++文件操作的底层机制
  • 字符串反转和统计字符串中字符类型及频次
  • [特殊字符] 龍魂系统执行日志|2026-03-13|底层宪法数据库落地·30天最后宣言·打破的根在道统不在霸权