前提条件
- 操作系统:Ubuntu(建议 20.04 或 22.04,但其他版本通常也适用)。
- 网络:VPS 有公网 IP,防火墙允许端口 80(HTTP)、443(HTTPS)、81(NPM 管理界面)。
- 端口检查:NPM 默认使用 80、443、81 端口。确保这些端口未被其他服务占用(稍后会教你检查)。
安装步骤
步骤 1:更新系统并安装 Docker
- 更新系统包:
sudo apt update && sudo apt upgrade -y
安装 Docker:
sudo apt install docker.io -y
启动并启用 Docker:
sudo systemctl start docker
sudo systemctl enable docker
验证 Docker 安装:
docker --version
安装 Docker Compose: 下载最新版本的 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予执行权限:
sudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker-compose --version
步骤 2:检查端口冲突
NPM 默认使用端口 80、443 和 81。安装前检查这些端口是否被占用:
sudo netstat -tuln | grep ':80\|:443\|:81'
- 如果输出显示这些端口被占用(例如 Apache 或其他服务),需要释放端口或修改 NPM 的端口配置。
- 释放端口(可选):如果 80 或 443 被其他服务占用(例如 Apache),停止相关服务:
sudo systemctl stop apache2
sudo systemctl disable apache2
或者,在后续步骤中修改 docker-compose.yml 的端口映射(例如将 81 改为 8081)。
步骤 3:创建 Nginx Proxy Manager 配置文件
-
创建项目目录:
mkdir ~/npm && cd ~/npm
创建 docker-compose.yml 文件: 使用 nano 编辑器:
nano docker-compose.yml
粘贴以下内容(使用 SQLite 数据库,简单且适合大多数场景):
version: '3.8'
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
environment:
DB_SQLITE_FILE: "/data/database.sqlite"
# 如果你的 VPS 不支持 IPv6,取消注释以下行
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
保存并退出(Ctrl+O, Enter, Ctrl+X)。
端口说明:
- 80:80:HTTP 流量。
- 443:443:HTTPS 流量。
- 81:81:NPM 管理界面。
- 如果 80、443 或 81 端口被占用,可以修改主机端口,例如将 81:81 改为 8081:81。
步骤 4:启动 Nginx Proxy Manager
- 启动容器: 在 ~/npm 目录下运行:
docker-compose up -d
这将下载 jc21/nginx-proxy-manager:latest 镜像并启动容器。
检查容器状态:
docker-compose ps
确保状态为 Up。如果有问题,查看日志:
docker logs npm_app_1
步骤 5:配置防火墙
确保 Ubuntu 的防火墙(如 ufw)允许 80、443 和 81 端口:
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 81
检查防火墙状态:
sudo ufw status
如果你的 VPS 使用云提供商的防火墙(如 AWS、GCP、阿里云),登录云平台控制台,确保这些端口在安全组或网络规则中开放。
步骤 6:访问 Nginx Proxy Manager 管理界面
在浏览器中访问:
http://<你的VPS公网IP>:81
默认登录凭据:
- 用户名:[email protected]
- 密码:changeme
- 首次登录: 登录后,系统会提示修改默认用户名和密码。设置一个安全的邮箱和密码。
步骤 7:配置反向代理(可选,基础测试)
- 添加代理主机:
- 在 NPM 管理界面,点击“Proxy Hosts” > “Add Proxy Host”。
- 填写:
- Domain Names:你的域名(若无域名,可暂时跳过此步)。
- Scheme:http 或 https(取决于目标服务)。
- Forward Hostname/IP:目标服务的 IP(例如本地服务 127.0.0.1 或其他容器名称)。
- Forward Port:目标服务的端口(例如 8080)。
- 保存后,NPM 会自动配置反向代理。
- 配置 SSL(可选):
- 如果有域名,点击“SSL Certificates” > “Add SSL Certificate”。
- 选择“Let’s Encrypt”,输入域名和邮箱,启用“Force SSL”以自动重定向 HTTP 到 HTTPS。
- 确保域名 DNS 已指向 VPS 的公网 IP。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容