/ Steve 心得 / 178浏览

Nginx Proxy Manager反向代理神器

简介

Nginx Proxy Manager 一个 Nginx 的代理管理器,它最大的特点是简单方便。

可视化的操作,非常适合配合 docker 搭建的应用使用。

Nginx Proxy Manager 后台还可以一键申请 SSL 证书,并且会自动续期,方便省心。

安装 Nginx Proxy Manager

说明:默认你的服务器已经安装了 Docker 和 Docker Compose

点击下方链接进入 Nginx Proxy Manager(以下简称 NPM) 官网:https://nginxproxymanager.com/

我们可以直接选择 快速安装

首先,我们创建一个文件夹来存放 NPM 的 docker-compose.yml 文件:

mkdir -p ~/data/docker_data/nginxproxymanager   # 创建一个 npm 的文件夹

cd ~/data/docker_data/nginxproxymanager    # 进入该文件夹

vi docker-compose.yml

在英文状态的输入法下,按下 i,左下角出现 --INSERT-- 后,粘贴填入下面的内容:

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'              # 不建议修改端口
      - '81:81'              # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口
      - '443:443'            # 不建议修改端口
    volumes:
      - ./data:/data         # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建
      - ./letsencrypt:/etc/letsencrypt  # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建

NPM

注意:安装了 NPM 之后,就不需要再安装 Nginx 了,否则会端口冲突(不建议修改 NPM 的 80、443 端口)。如果你的服务器安装了宝塔面板,也可以和 NPM 一起使用,只要你到软件后台把宝塔安装的 Nginx 关闭或者卸载即可。

之后,同样在英文输入法下,按一下 esc,然后 :wq 保存退出。

启动 NPM:

docker-compose up -d     # -d 表示后台运行

docker compose up -d     # 如果你用的是 docker-compose-plugin 的话,用这条命令

不出意外,此时你使用 http://127.0.0.1:81 就可以访问 NPM 的网页端了。(注意把 127.0.0.1 替换成你实际服务器的 IP)

默认登陆的用户名:admin@example.com 密码:changeme

第一次登陆会提示更改用户名和密码,建议修改一个复杂一点的密码。

至此,我们已经完成了 Nginx Proxy Manager 的搭建,之后就可以用它给我们的 Halo 或者其他 Web 应用做反向代理了。

配置 Alist 的反向代理

首先我们登陆网页端之后,会弹出修改用户名和密码的对话框,我们根据自己的实际来修改自己的用户名和邮箱。

登录

保存之后,会让我们修改密码(建议用一个复杂的密码)。

修改重设密码

反向代理

点击 Proxy Hosts

Proxy

接着点击 Add Proxy Host,弹出如下对话框:

Add

看起来都是英文,很复杂,但是其实很简单,我们只要用到其中的几个功能即可,这边稍微解释一下:

  • Domain Names :填我们 Halo 网站的域名,首先记得做好 DNS 解析,把域名绑定到我们的服务器的 IP 上
  • Scheme :默认 http 即可,除非你有自签名证书
  • Forward Hostname/IP :填入服务器的 IP,或者 Docker 容器内部的 IP(如果 NPM 和 Halo 搭建在同一台服务器上的话)
  • Forward Port:填入 Halo 映射出的端口,这边默认是 8090
  • Cache Assets :缓存,可以选择打开
  • Block Common Exploits: 阻止常见的漏洞,可以选择打开
  • Websockets Support :WS 支持,可以选择打开
  • Access List: 这个是 NPM 自带的一个限制访问功能,这边我们不管,后续可以自行研究。

例子

一键申请 SSL 证书

接着我们来申请一张 SSL 证书,让我们的网站支持 https 访问。

SSL

你将成功申请到 SSL 证书,证书会三个月自动续期。

再次点开配置,查看一下,将强制 SSL 打开。

SSL

Steve
Follow
国行 iPhone 16 系列开启 Apple Intelligence 保姆级教程
国行 iPhone 16 系列开启 Apple Intelligence 保姆级教程
船新版本的 Surge 配置- 支持 Apple Intelligence 分流已更新
船新版本的 Surge 配置- 支持 Apple Intelligence 分流已更新
2024-砥砺前行
2024-砥砺前行
美区 Apple ID 注册教程
美区 Apple ID 注册教程
Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程
Debian 12 / Ubuntu 22.04 安装 Docker 以及 Docker Compose 教程

1

  1. freddy

    遇到一个问题,使用npm配置玩反代之后,连接不上webdav服务器,网页倒是很正常

    来自美国

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注