轻松上手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 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方式访问指定的二级域名,不出意外即可访问对应的服务
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://sg.hqyman.cn/post/9511.html 非本站原创文章欢迎转载,原创文章需保留本站地址!


休息一下~~