西区代码小仓库 - NPM
type: channel
link: https://www.lisper517.top/tag/NPM/
items: 可视化管理Nginx-Nginx Proxy Manager

可视化管理Nginx-Nginx Proxy Manager
type: item
date: 2023-12-23T02:52:00+00:00
description: 步骤/目录： 1.背景介绍 2.docker安装NPM 3.通配符SSL证书的申请 4.NPM的使用 （1）使用docker网络 （2）Access List通用密码 5.NPM + frp 6.NPM + v2ray 7.其它问题 （1）登录时卡在502 （2）端口开放 （3）ipv6+DDNS时80、443封禁 （4）无法申请证书本文首发于个人博客https://lisper517.top/index.php/archives/107/，转载请注明出处。本文的目的是介绍Nginx Proxy Manager，一款可通过Web UI管理Nginx反代的工具。本文写作日期为2023年12月23日。主要受up主 我不是咕咕鸽 的启发。他还分享了很多其它有趣的内容，讲解也很详细、基础，很适合小白学习。1.背景介绍在日常管理服务器的过程中，一些工具能大大减轻工作量。之前在up主 我不是咕咕鸽 的空间看到了很多有趣的分享，也尝试自己搭建一下。其中NPM是搭建个人网页服务比较基础的工具。之前笔者曾经介绍过frp，一款很常用的开源反向代理软件。理论上nginx也可以用来做反向代理，但是nginx的配置笔者经常出问题，太麻烦了。NPM则是一款方便的、容易上手的反代工具，还能很方便地申请免费的SSL证书。不过需要注意，frp是端口对端口、可开放内网机器到公网，nginx则是端口对域名、更多用于在服务器上搭建各种子域名网页（换一个子域名就能切换到该服务器的不同网页，很方便）。frp + NPM，就可以通过子域名访问内网机器，不需要背端口号。NPM另外一个好处则是，如果用NPM，很多其它服务的网页端口也能走80、443，提升了安全性。2.docker安装NPM在安装之前需要提醒，由于接下来会用到80、81、443端口，如果有服务占用的话需要先关掉。已经搭建了自己的网页时，也不用慌，后面访问时加个子域名就行，现在可以安心关掉。访问 NPM官方设置 可以看到官方给出的yml文件示例。在服务器上如下操作：mkdir -p /docker/NPM/data/NPM mkdir -p /docker/NPM/data/mysql mkdir -p /docker/NPM/letsencrypt cd /docker/NPM vim docker-compose.yml写入以下内容：version: '3.8' services: NPM: image: 'jc21/nginx-proxy-manager:latest' ports: - '80:80' - '443:443' #仅在第一次配置时映射81端口 - '81:81' environment: DB_MYSQL_HOST: "mariadb" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm_user" DB_MYSQL_PASSWORD: "123456" DB_MYSQL_NAME: "npm" volumes: - /docker/NPM/data/NPM:/data - /docker/NPM/letsencrypt:/etc/letsencrypt depends_on: - mariadb restart: unless-stopped mariadb: image: 'jc21/mariadb-aria:latest' environment: MYSQL_ROOT_PASSWORD: '999999' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm_user' MYSQL_PASSWORD: '123456' volumes: - /docker/NPM/data/mysql:/var/lib/mysql restart: unless-stopped数据库的密码可以自己修改一下，这个数据库不会开放到公网，理论上来说没有风险，但是docker毕竟比较透风。运行一下：docker-compose config docker-compose up容器开始运行，先不要退出，使用过程中观察有无异常输出。最后，记得在ufw和厂商的服务器防火墙控制台把80、443、81端口打开。docker-compose up 后稍微等待十几秒没有输出后，访问 服务器ip:81 端口，默认的邮箱、密码是 admin@example.com 和 changeme ，马上修改一下。3.通配符SSL证书的申请在正式使用NPM之前，还需要一些小小的工作。如果没有为这台服务器申请域名，可参考 Docker实践——如何查阅wiki百科及V2Ray 。总之，买好域名、配置好DNS解析（必须把域名解析到本服务器上）后，到你的DNS解析厂商的控制台，以阿里云为例，在…