ToB企服应用市场:ToB评测及商务社交产业平台

标题: 轻松上手Nginx Proxy Manager:安装、设置与实战 [打印本页]

作者: 我可以不吃啊    时间: 2024-12-24 20:19
标题: 轻松上手Nginx Proxy Manager:安装、设置与实战
安装部署

概述

   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文件和相关设置文件:
  1. mkdir nginx-proxy-manager
  2. cd nginx-proxy-manager
复制代码
创建Docker Compose文件

在项目目次中创建一个名为docker-compose.yml的文件,并添加以下内容:
  1. services:
  2.   app:
  3.     image: 'jc21/nginx-proxy-manager:latest'
  4.     restart: unless-stopped
  5.     ports:
  6.       - '80:80'
  7.       - '81:81'
  8.       - '443:443'
  9.     volumes:
  10.       - ./data:/data
  11.       - ./letsencrypt:/etc/letsencrypt
复制代码
启动

在项目目次中运行以下下令启动Nginx Proxy Manager,这将下载所需的Docker镜像并启动容器。
  1. docker-compose up -d
  2. # 如果使用docker-compose-plugin
  3. docker compose up -d     
复制代码
数据存储方式说明

   Nginx Proxy Manager默认利用SQLite数据库来存储其数据,包括设置、代理主机信息、SSL 证书等。除此之外,Nginx Proxy Manager还可以利用MySQL来进行数据存储。
  以下是一个docker-compose.yml文件,Nginx Proxy Manager利用MySQL进行数据存储的示例
  1. version: '3.8'
  2. services:
  3.   app:
  4.     image: 'jc21/nginx-proxy-manager:latest'
  5.     restart: unless-stopped
  6.     ports:
  7.       # These ports are in format <host-port>:<container-port>
  8.       - '80:80' # Public HTTP Port
  9.       - '443:443' # Public HTTPS Port
  10.       - '81:81' # Admin Web Port
  11.       # Add any other Stream port you want to expose
  12.       # - '21:21' # FTP
  13.     environment:
  14.       # Mysql/Maria connection parameters:
  15.       DB_MYSQL_HOST: "db"
  16.       DB_MYSQL_PORT: 3306
  17.       DB_MYSQL_USER: "npm"
  18.       DB_MYSQL_PASSWORD: "npm"
  19.       DB_MYSQL_NAME: "npm"
  20.       # Uncomment this if IPv6 is not enabled on your host
  21.       # DISABLE_IPV6: 'true'
  22.     volumes:
  23.       - ./data:/data
  24.       - ./letsencrypt:/etc/letsencrypt
  25.     depends_on:
  26.       - db
  27.   db:
  28.     image: 'jc21/mariadb-aria:latest'
  29.     restart: unless-stopped
  30.     environment:
  31.       MYSQL_ROOT_PASSWORD: 'npm'
  32.       MYSQL_DATABASE: 'npm'
  33.       MYSQL_USER: 'npm'
  34.       MYSQL_PASSWORD: 'npm'
  35.       MARIADB_AUTO_UPGRADE: '1'
  36.     volumes:
  37.       - ./mysql:/var/lib/mysql
复制代码
Web管理控制台

访问Web界面

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

登录

首次登录时,利用以下默认凭据
  1. Email: admin@example.com
  2. Password: changeme
复制代码
登录后,系统会提示更改默认密码。

根本利用

域名与IP绑定

   在域名管理服务商那里添加域名与IP的绑定关系。
  这里添加一条DNS解析,也就是创建一个二级域名:范例:A、名称:npm、IP:服务器IP。
这表示:访问二级域名npm.域名即可访问服务IP。

添加代理主机

   在Web界面中,可以添加新的代理主机来管理反向代理设置。
  点击Proxy Hosts选项卡

然后点击Add Proxy Host按钮

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

设置说明

  1. Domain Names :填写网站域名,需要上面做好DNS解析,把域名绑定到服务器IP
  2. Scheme : 选择HTTP或HTTPS。默认http即可,除非有自签名证书
  3. Forward Hostname/IP :填写要代理到的目标主机名或IP地址,或者Docker容器内部IP(NPM和程序服务在同一台服务器上)
  4. Forward Port:填写目标主机的端口号,这里是NPM管理界面81端口
  5. Cache Assets :缓存,根据需求选择打开
  6. Block Common Exploits: 阻止常见的漏洞,根据需求选择打开
  7. Websockets Support :WS支持,根据需求选择打开
  8. Access List: NPM自带的一个限制访问功能
复制代码
注意:
这里填的是172.17.0.1,为Docker容器内部的IP所在。可以通过下面的下令查询:
  1. [root@vm ~]# ip addr show docker0
  2. 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
  3.     link/ether 02:42:39:63:84:15 brd ff:ff:ff:ff:ff:ff
  4.     inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
  5.        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令牌
  1. API令牌:在Cloudflare仪表板中,点击右上角的头像,然后选择我的个人资料,在左侧菜单中,选择API 令牌
  2. 创建新的API令牌:点击创建令牌按钮
  3. 选择API令牌模板:Cloudflare提供了一些预定义的模板,可以选择其中之一,也可以自定义令牌。
  4. 根据API令牌用途选择不同模板:对于Nginx Proxy Manager,通常选择编辑区域DNS模板是一个不错的选择。
复制代码
利用模板后,只必要修改区域资源项,选择要操作的域名即可

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

添加泛域名证书

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

填写域名: *.域名或域名 *.域名、邮箱
勾选:Use a DNS Challenge、选择DNS提供商:Cloudflare,根据模板提示填入服务商处获取的API令牌
勾选同意条款,然后保存即可

新建代理

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

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

验证

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4