美文网首页后端砖头
NginxProxyManager实现unraid反向代理

NginxProxyManager实现unraid反向代理

作者: 云中的Jason | 来源:发表于2022-07-19 21:13 被阅读0次

最近从黑群晖转到了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;
}
  1. 点击保存即可,如果需要反向代理其他服务,则添加其他ProxyHost
  2. 访问测试,首先要做好DDNS,将自己的域名解析到自己的服务器上,然后将前面配置的https端口映射到外网,我这里时映射8888端口到外网,之后访问https://unraid.YourDomain:8888,可以看到链接前面已经加锁了
  3. 到此,大功告成

相关文章

网友评论

    本文标题:NginxProxyManager实现unraid反向代理

    本文链接:https://www.haomeiwen.com/subject/zhjyirtx.html