WinServer安装NPM(Nginx Proxy Manager),并设置反向代理和开启https

NPM官方安装指引:

1,安装Docker Desktop

Windows环境安装Docker

2,创建docker-compose.yml 文件

找个地方创建文件夹(以后的工作目录),里面创建txt文件,然后重命名

XML 复制代码
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped

    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP

    environment:
      TZ: "Australia/Brisbane"

      # Uncomment this if you want to change the location of
      # the SQLite DB file within the container
      # DB_SQLITE_FILE: "/data/database.sqlite"

      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'

    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

3,根据配置文件安装和启动Nginx Proxy Manager

刚才创建文件的路径打开CMD,执行命令

XML 复制代码
docker compose up -d

安装中

等待安装完成

在docker desktop也可以看到

4,访问管理界面

  • 打开浏览器访问:http://localhost:81
  • 默认登录信息:
    • 邮箱:admin@example.com
    • 密码:changeme

输入新的名字,邮箱,密码后

5,添加一个反向代理

点击 Proxy Hosts

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

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

  • 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 自带的一个限制访问功能,这边我们不管,后续可以自行研究。

以下是一个样列:

因为样例的 NPM 和 Halo 搭建在同一台 VPS 上,所以这边的 IP,图中填的是 172.17.0.1,为 Docker 容器内部的 IP 地址,

可以通过下面的命令查询:

XML 复制代码
ip addr show docker0
XML 复制代码
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:e4:a3:b5:b9 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

这边的 IP 是 172.17.0.1,填入这个 IP,可以不用打开防火墙的 8090 端口。

当然,如果你的 NPM 和 Halo 不在同一台服务上,你需要在 IP 部分填入 你的 Halo 所在的服务器的 IP ,并在服务商(部分服务商如腾讯、阿里)的后台打开 8090 端口。

6,一键申请 SSL 证书

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

如图所示,记得打开强制 SSL,其他四个的功能请自行研究,这边不多做讨论。

信息

  1. 申请证书需要你提前将域名解析到 NPM 所在的服务器的 IP 上;
  2. 如果你使用的是国内的服务器,默认 80443 端口是关闭的,你需要备案之后才能使用;
  3. 如果你使用了 CloudFlare 的 DNS 服务,记得把小黄云关闭(即不开启 CDN)。

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

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

至此,你已经成功完成了 Halo 的反向代理,快尝试使用域名访问一下看看吧!

同样的,举一反三,试试把你的 NPM 也用一个域名来反向代理一下吧。(小提示:你需要再解析一个域名(可以是二级域名)到 NPM 所在的服务器上,反代页面需要填的 IP 可以填 docker 容器内的 IP 也可以填服务器的 IP,端口填 81 即可)

参考: 与 Nginx Proxy Manager 配合使用

Nginx Proxy Manager(以下简称 NPM)官网

相关推荐
两只羊ovo8 分钟前
Agent 干活的底层地基:path 路径 + fs 文件系统,一次讲透
前端
一用书生9 分钟前
我给 ChatGPT、DeepSeek、Kimi 都加了一个「保存为笔记」按钮
前端·ai编程·vibecoding
咖啡无伴侣11 分钟前
1. 从零搭建企业级 Monorepo 工程化模板:初始化、应用创建与共享 TypeScript 配置
前端·前端框架
moonsims12 分钟前
再议AiBrainBox-V的前左右三目布局-满足多目SLAM算法;对比单下视VIO(低空、地面纹理丰富、飞行速度适中无人机 )&多目VIO
前端·人工智能·量子计算
AI编程实验室13 分钟前
Agent Handoff 自动跟踪 Skill:安装、事件映射与证据分级
前端·ai编程
KoPa14 分钟前
HeySmart:事件总线——异步解耦的艺术
前端·后端
金花顺14 分钟前
ndroid 音频系统:AudioTrack 源码深度解析(从 Java 构造到 Native 启动)
前端·架构
用户9210802628614 分钟前
AI SSE Client 和普通 SSE Client 有什么不同:一次生成任务背后的坑与设计边界
前端
PedroQue9923 分钟前
@meng-xi/create-uni-app v1.0.0 正式发布
前端·uni-app
younuo365531 分钟前
广州网站搭建费用明细:域名、服务器与开发成本全解析
服务器·前端·github