Nginx Proxy Manager简介

  Nginx Proxy Manager(NPM)是一个基于Nginx的开源工具,用于简化和管理反向代理服务器和虚拟主机的配置。它提供了一个用户友好的图形用户界面(GUI),使用户能够轻松设置和管理代理规则,同时无需深入了解Nginx的配置细节。

主要特点和功能:

  1. 用户友好的界面:NPM的用户界面非常直观,允许用户轻松创建和管理代理主机和路由规则,而无需手动编辑Nginx配置文件。

  2. SSL证书管理:NPM可以自动为每个代理主机生成和维护SSL/TLS证书,确保你的网站可以通过HTTPS进行加密访问。

  3. 多域名支持:你可以为一个Nginx Proxy Manager实例管理多个域名和虚拟主机,统一集中管理多个网站的反向代理规则。

  4. 身份验证和访问控制:NPM支持访问控制列表(ACL)和基本身份验证,允许你限制对代理的访问。

  5. 日志和监控:NPM提供了详细的请求日志,以帮助你监视流量和检查问题。

  6. 自动HTTP到HTTPS重定向:NPM可以自动将HTTP请求重定向到HTTPS,以增强网站的安全性。

  7. Docker容器化:NPM以Docker容器的形式提供,可以轻松部署到Docker环境中,简化了安装和管理过程。

  8. 多种代理支持:NPM支持代理到各种后端服务,包括Web应用、API、和其他网络服务。

Nginx Proxy Manager是一个非常有用的工具,特别适合那些需要在Nginx服务器上设置反向代理的用户,而不想深入了解Nginx配置的细节。在本博客文章中,详细介绍如何使用Nginx Proxy Manager来轻松部署反向代理,以及它的一些核心功能和用例。

安装部署

安装docker compose

  首先连接服务器,输入下列代码检查是否已安装docker compose。

docker-compose --version

  如何返回类似Docker Compose version v2.17.3即表示已经安装好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

  这将从 Docker Compose 的官方 GitHub 存储库下载二进制文件并保存在 /usr/local/bin 目录中。

  添加执行权限: 使用以下命令添加执行权限:

sudo chmod +x /usr/local/bin/docker-compose

  验证安装: 运行以下命令来验证 Docker Compose 安装:

docker-compose --version

安装部署NPM

  先检查81端口是否被占用

lsof -i:81 

  如果什么都没有返回,说明没有占用,如果有返回则说明端口已经被占用。
  如果返回-bash: lsof: command not found那么先安装lsof,再进行检查81端口。

apt install lsof  #安装 lsof

  首先在/root/docker-data文件夹下面新建npm文件夹,以后docker 文件都放置/docker-data文件夹下,方便统一管理。

mkdir -p /root/docker-data/npm

  前往npm文件夹

cd /root/data/docker_data/npm

  新建vim docker-compose.yml文件

vim docker-compose.yml

  切换到英文输入法按下i,粘贴下面内容端口为81,也可以改成其他端口,但是只能修改81:81左边的81!改为未占用的端口。

version: '3'  
services:  
 app:  
 image: 'jc21/nginx-proxy-manager:latest'  
 restart: unless-stopped  
 ports:  
 - '80:80'  # 保持默认即可,不建议修改左侧的80  
 - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口  
 - '443:443' # 保持默认即可,不建议修改左侧的443  
 volumes:  
 - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中  
 - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

  按一下 esc,然后输入 :wq 保存退出。

  放行81(或者你自己改的端口)

ufw allow 81

  如果返回ufw command not found就先安装ufw。

sudo apt install ufw

  如果购买的网页上也有防火墙,记得也要打开(Azure,AWS,腾讯云,阿里云)。
  现在就可以通过http://ip:81(或者你自己改的端口)进行访问桌面 Nginx Proxy Manager。

  初始邮箱密码如下:

Email:    admin@example.com
Password: changeme

  进入之后修改自己的邮箱账号、密码和昵称。

开始进行反向代理

  1. 添加Proxy Host
  2. 填写域名以及服务器和端口,记得打开 Block Common Exploits
  3. 保存
  4. 再点击域名旁边三点,进行编辑,准备申请SSL证书。
  5. 打开Force SSLAgree to the Let's Encrypt Terms of Service保存即可。
申请完成之后,就可以通过域名进行访问了。

  注意:

  1. 现在CloudFlare域名管理网站对域名进行解析,ping通后再申请
  2. 申请前不要打开CloudFlare小云朵,否则可能会申请失败
  3. 在宝塔等面板使用工具进行网站搭建,可能会申请失败,直接在宝塔面板工具处申请SSL证书即可