简介
在本教程中,你将学习如何在 Ubuntu 22.04 服务器上安装 Nginx Proxy Manager。
Nginx Proxy Manager 是一个用户友好的、基于 Web 的界面,旨在简化 Nginx 作为反向代理的管理。它允许用户管理代理主机、SSL 证书和转发规则,而无需手动配置 Nginx。该工具特别适用于处理单个服务器上运行的多个应用程序的 Web 流量,通过将请求路由到适当的服务。
Nginx Proxy Manager 的主要功能包括:
- 反向代理管理: 它使你能够轻松地为 Web 应用程序设置反向代理,允许你将域流量转发到不同的服务。
- SSL 支持: 与 Let’s Encrypt 集成,它提供自动的 SSL 证书生成和续订,确保安全的流量。
- 基于 Web 的 GUI: 该平台提供了一个图形界面来添加、编辑和管理代理主机和设置,而不是通过命令行管理配置。
- 用户管理: 它支持多用户设置,允许你创建和管理具有特定访问权限的不同用户帐户。
- 简化的域名和证书处理: 你可以轻松管理多个域名及其证书,从而降低手动设置的复杂性。
本指南将逐步向你展示如何在 Ubuntu 22.04 上安装 Nginx Proxy Manager。
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh [email protected]
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
安装和配置步骤
第一步:更新你的服务器
首先更新服务器的软件包列表,以确保所有软件都是最新的。
sudo apt update && sudo apt upgrade -y
第二步:安装 Docker
Nginx Proxy Manager 使用 Docker,所以第一步是安装 Docker 和 Docker Compose。
安装 Docker:
运行以下命令来安装 Docker:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \\
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \\
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \\
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
要安装最新版本,请运行:
sudo apt-get install docker-ce
验证安装:
docker --version
你应该看到 Docker 版本输出。
接下来,安装 Docker Compose:
下载 Docker Compose 二进制文件:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
设置可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker-compose --version
第三步:创建 Nginx Proxy Manager 的目录
现在已经安装了 Docker,让我们设置 Nginx Proxy Manager。
创建目录:
mkdir -p ~/nginx-proxy-manager
cd ~/nginx-proxy-manager
第四步:创建 Docker Compose 文件
我们将使用 Docker Compose 来管理 Nginx Proxy Manager 容器。在 nginx-proxy-manager 目录中,创建一个 docker-compose.yml 文件。
创建 docker-compose.yml
文件:
nano docker-compose.yml
添加以下配置:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
- '80:80' # HTTP
- '81:81' # Admin GUI
- '443:443' # HTTPS
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm_password"
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
db:
image: 'mariadb:latest'
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'root_password'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm_password'
volumes:
- ./db:/var/lib/mysql
- ports:暴露 HTTP (80)、Admin GUI (81) 和 HTTPS (443) 的端口。
- 将
root_password
和npm_password
替换为你安全的密码。 - volumes:这些定义了数据和证书将存储在主机系统上的位置。
第五步:使用 Docker Compose 启动 Nginx Proxy Manager
一旦配置了 docker-compose.yml 文件,你可以使用 Docker Compose 启动 Nginx Proxy Manager。
运行 Docker Compose:
docker-compose up -d
d
标志在分离模式下运行容器,允许你继续使用终端。
验证容器是否正在运行:
docker-compose ps
你应该看到 Nginx Proxy Manager 和 MariaDB 容器都在运行。
第六步:访问 Nginx Proxy Manager
现在 Nginx Proxy Manager 正在运行,你可以访问基于 Web 的界面。
打开你的浏览器并导航到 http://<你的服务器IP>:81
。
使用默认凭据登录:
Email: [email protected]
Password: changeme
更改默认凭据:登录后,系统会提示你更改电子邮件和密码。设置一个强密码来保护你的系统。
第七步:保护 Nginx Proxy Manager
要使用主机名(例如,https://hostname 而不是 http://serverip:81)通过 HTTPS 安全地访问 Nginx Proxy Manager (NPM) 面板,你需要按照以下步骤操作。这包括为面板设置域名、配置 DNS 记录以及使用 Let’s Encrypt 获取 SSL 证书。
访问 Nginx Proxy Manager 的 Web UI
通过访问 http://serverip:81
登录 NPM 面板。
输入你的登录凭据。
为 NPM 面板添加新的代理主机
要使 Nginx Proxy Manager 本身可以通过域名上的 HTTPS 访问,你需要为其自己的界面创建反向代理规则。
- 转到 Nginx Proxy Manager 中的“主机”选项卡,然后选择“代理主机”。
- 单击“添加代理主机”以创建新的代理主机。
配置代理主机
在代理主机创建表单中:
- 域名:输入你的域名或子域名(例如,npm.yourdomain.com)。
- 方案:选择“http”(因为你正在转发可通过 HTTP 在端口 81 上访问的管理界面)。
- 转发主机名/IP:输入你的服务器的主机名(例如,localhost)。
- 转发端口:输入端口 81(因为 Nginx Proxy Manager 管理面板默认在此端口上运行)。
- 启用 Websockets 支持:启用此选项以允许 WebSocket 连接,某些服务可能需要它。
- SSL 选项卡:
- 选择“请求新的 SSL 证书”以通过 Let’s Encrypt 自动颁发 SSL 证书。
- 选中“强制 SSL”:此选项确保所有流量都重定向到 HTTPS。
- 通过选中该框同意 Let’s Encrypt 服务条款。
保存配置。
测试 HTTPS 访问
创建代理主机后,等待 Nginx Proxy Manager 通过 Let’s Encrypt 为你的域/子域自动颁发 SSL 证书。
打开你的浏览器并导航到 https://npm.yourdomain.com
。
你现在应该可以通过 HTTPS 安全地访问 Nginx Proxy Manager 面板。
第八步:设置反向代理主机
登录后,你可以开始为你的应用程序创建反向代理主机。
- 转到仪表板中的“主机”>“代理主机”。
- 单击“添加代理主机”以添加新主机。
填写详细信息:
- 域名:输入你要转发的域名。
- 方案:根据后端服务选择 HTTP 或 HTTPS。
- 转发主机名/IP:输入你要代理的服务的 IP 地址或主机名。
- 转发端口:后端服务的端口。
SSL 配置:你可以使用 Let’s Encrypt 直接从 Nginx Proxy Manager 界面为你的域启用 SSL。
保存你的设置。
Nginx Proxy Manager 现在将为你的应用程序处理反向代理。
第九步:使用 Let’s Encrypt 启用 SSL
要使用 SSL 保护你的反向代理,你可以轻松启用 Let’s Encrypt 证书。
- 在设置代理主机时转到 SSL 选项卡。
- 选择“请求新的 SSL 证书”。
- 选中“强制 SSL”以将所有 HTTP 流量重定向到 HTTPS。
- 点击“保存”。
Nginx Proxy Manager 将自动请求并安装来自 Let’s Encrypt 的 SSL 证书。
第十步:管理代理主机和证书
从 Nginx Proxy Manager 仪表板,你可以管理多个反向代理主机和证书。你还可以监视证书的状态并自动续订它们。
第十一步:管理 Docker 容器(可选)
如果需要停止或重新启动 Nginx Proxy Manager 容器,你可以使用 Docker 命令执行此操作:
停止容器:
docker-compose down
重新启动容器:
docker-compose up -d
结论
我们已经了解了如何在 Ubuntu 22.04 服务器上安装 Nginx Proxy Manager。凭借其用户友好的 GUI,你现在可以轻松管理反向代理、SSL 证书等。此设置提供了一种简化的方法,可以在单个界面下处理多个 Web 服务,同时使用 Let’s Encrypt 对其进行保护。
请随意探索其他功能,如访问列表、重定向主机等!
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site