NginxProxyManager实现unraid反向代理

最近从黑群晖转到了unraid,然后再unraid里面虚拟了黑群晖,通过acme脚本申请泛域名证书,反向代理依然用的群晖的。本来一切正常,但最近突然发现申请的泛域名证书出了问题,自动恢复到了群晖默认证书,导致各种服务都因证书无法访问了,所以打算将反代和证书申请从群晖中剥离出来,然后就看到了NginxProxyManager(简称npm)这个应用,这里将自己的配置过程记录一下

NginxProxyManager安装

由于使用docker进行安装,所以不同系统之间其实都差不多,这里以unraid为例。

  1. 在unraid的app中搜索NginxProxyManager,点击安装(我这里是已经安装了)
  2. 填写对应端口,大家可自行选择端口
  3. 点击Apply即可安装成功

NginxProxyManager配置

  1. 访问http://YourIP:7818,打开管理页登录,默认账号admin@example.com,密码changeme,登录后会提示修改账号密码,自行修改即可
  2. 申请泛域名证书
  • 点击SSL Certificates,然后点击Add SSL Certificate,选择Let's Encrypt类型
  • 填入自己的域名,泛域名需要填两个,一个*.domain,一个domain,DNS厂商获取凭证大家自己搜一下,我这里使用的Aliyun,所以凭证为access_keyaccess_key_secret
  • 点击保存,如果前面填的凭证都正确,一般证书就能申请成功了
  1. 添加反向代理
  • 点击ProxyHosts,然后Add Proxy Host

  • 填入自定义二级域名和对应服务的内网访问地址,我的unraid访问地址为http:192.168.1.1:80,所以填入后如图所示

  • 在SSL中选择刚申请的证书,并勾选Force SSL

  • (可选)配置自定义选项
    对于大多数服务来说,点击保存后就可以了,不过有些服务比较特殊,像unraid,按照刚才配置的方法,是无法访问的。因为unraid在登录时重定向到login会丢失端口号,导致访问失败,所以针对这种服务还需要填入以下配置。其中的http://192.168.1.1:80换成自己的服务地址

location / {
      proxy_pass http://192.168.1.1:80/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Host $http_host;
      proxy_set_header X-Forwarded-Port $server_port;
      proxy_set_header X-Forwarded-Proto $scheme;
}


4. 点击保存即可,如果需要反向代理其他服务,则添加其他ProxyHost
5. 访问测试,首先要做好DDNS,将自己的域名解析到自己的服务器上,然后将前面配置的https端口映射到外网,我这里时映射8888端口到外网,之后访问https://unraid.YourDomain:8888,可以看到链接前面已经加锁了

6. 到此,大功告成

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值