介绍
Nginx Proxy Manager (NPM) 是一个基于 Nginx 的图形用户界面(GUI)管理工具,使得配置反向代理、自动化 SSL 证书管理等任务变得更加简单和易用。它旨在让用户不需要具备深厚的技术背景即可轻松地配置和管理 Nginx 反向代理。
主要特点
- 简单的图形用户界面:用户可以通过直观的 web 界面管理 Nginx 配置,而无需编辑配置文件。
- 自动 SSL 证书管理:集成 Let's Encrypt,可以自动生成和续订 SSL 证书。
- 反向代理:轻松地配置和管理多个反向代理条目,包括域名、子域名和路径。
- 访问控制:支持基本的访问控制,如用户名和密码保护。
- 日志和状态监控:可以通过界面查看代理的日志和运行状态。
简单来说,就是使用 Nginx Proxy Manager 配置反向代理,将 IP+端口
变成 域名
来访问。
开始安装
在开始前,请确保你已经安装了 Docker 环境
1. 创建安装目录
老规矩,先升级 packages
sudo apt-get update
创建安装目录并进入,建议新建一个 data 文件夹来存放
sudo mkdir -p /data/docker_data/npm && cd /data/docker_data/npm
2. 创建 Docker Compose 文件
使用 nano 创建一个 docker-compose.yml
文件
sudo nano docker-compose.yml
添加以下内容:
version: '3.8' #在较新的docker版本中默认将始终使用最新按本的Compose文件模式,因此如果定义版本后,可能会收到警告,但并不会影响使用
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 保持默认即可,不建议修改左侧的80
- '833:81' # 冒号左边可以改成自己服务器未被占用的端口,例如833
- '443:443' # 保持默认即可,不建议修改左侧的443
environment:
DB_SQLITE_FILE: "/data/database.sqlite" #数据库文件,用于密码找回
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
还记得怎么保存退出吗?Ctrl + O
和 Ctrl + X
!
查看我们自定义的 833
端口是否被占用:
lsof -i:833
什么都没发生?那么恭喜你,可以继续下一步了!
3. 启动 Nginx Proxy Manager
运行以下命令以启动 Nginx Proxy Manager:
sudo docker-compose up -d
还记得我们之前的 UFW 防火墙吗?我们要将端口添加到规则里
sudo ufw allow 833/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
查看一下状态和规则
sudo ufw status
4. 访问 Nginx Proxy Manager
启动完成后,可以通过浏览器访问 Nginx Proxy Manager 的管理界面。默认情况下,管理界面运行在端口 833
:
http://your_server_ip:833
5. 默认登录
初次登录时使用以下默认凭据:
- Email:
[email protected]
- Password:
changeme
登录后,请立即更改默认密码以确保安全。
6. 配置和使用
登录到管理界面后,可以开始配置反向代理、SSL 证书和其他设置。以下是一些基本操作:
-
添加代理主机:
- 点击 "Proxy Hosts"。
- 点击 "Add Proxy Host"。
- 填写域名、IP 地址和端口。
- 配置 SSL 证书(可以选择自动生成 Let's Encrypt 证书)。
- 保存设置。
-
管理 SSL 证书:
- 点击 "SSL Certificates"。
- 查看、添加或删除 SSL 证书。
-
访问日志和状态:
- 点击 "Logs" 查看访问日志。
- 点击 "Dashboard" 查看状态和统计信息。
更新 Nginx Proxy Manager
cd /data/docker_data/npm
docker-compose down
cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive # 万事先备份,以防万一
docker-compose pull
docker-compose up -d
docker image prune # prune 命令用来删除不再使用的 docker 对象。
卸载 Nginx Proxy Manager
cd /root/data/docker_data/npm
docker-compose down
rm -rf /root/data/docker_data/npm # 完全删除映射到本地的数据
如果你忘记了密码,可以参考 Nginx Proxy Manager 忘了密码咋办?