Bootstrap

如何在 Ubuntu 22.04 上安装 Nginx Proxy Manager 教程

简介

在本教程中,将学习如何在 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_passwordnpm_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

我的博客:https://blog.ivwv.site

;