NPM(nginx proxy manager)解决部分站点代理失败问题,unraid登录页面代理不成功

2022-09-20 20:00:15 32点赞 308收藏 36评论

描述

Nginx Proxy Manager是一个图形化的nginx反代配置程序,网上安装使用教程很多,本次不再赘述。相信有很多小伙伴在使用NPM反代的时候经常会出现一些站点代理后会出现端口丢失(自动跳转到80端口)、502错误,或者需要加路径才能访问。

页面访问报错页面访问报错

以unraid登录页面为例,添加一个站点,填写外网访问的域名,和内网代理ip、端口

添加站点添加站点

启用ssl,选择对应证书

强制ssl强制ssl

一般网站到此之后,点保存就能够愉快的进行访问了,但是unraid页面就不行了,登录页面并没有很顺利打开。此处可能会碰到各种错误,有人可能会端口丢失,有人可能需要手动在域名后面加上 /unraid才能打开页面等情况。原因是我们使用的是非标准80端口,访问unraid页面的时候有个自动重定向的动作,导致路径和端口丢失。

解决办法

知道原因后就好解决,我们可以在高级配置里面添加一些nginx的参数,时段端口和路径能够正确携带给server即可,配置如下图

NPM(nginx proxy manager)解决部分站点代理失败问题,unraid登录页面代理不成功

具体参数内容如下,需要改动的只有第2行,其他都可以保持不变,实际使用的时候需要把#和// 去掉,然后填入高级配置,增加配置后就能够愉快的访问了。

  • ##location / {

  • ## proxy_pass http://192.168.6.6:80/; //需要代理的服务器内网访问方式

  • ## proxy_set_header Host $http_host;

  • ## proxy_redirect http:// https://; //http强制https

  • ##

  • ## proxy_set_header X-Forwarded-Host $http_host; //携带主机

  • ## proxy_set_header X-Forwarded-Port $server_port; //携带端口

  • ## proxy_set_header X-Forwarded-Proto $scheme;

  • ## proxy_set_header X-Forwarded-Scheme $scheme;

  • ## proxy_set_header X-Real-IP $remote_addr;

  • ## proxy_set_header X-Forwarded-For $remote_addr;

  • ##

  • ##

  • ## proxy_set_header Upgrade $http_upgrade;

  • ## proxy_set_header Connection $http_connection;

  • ## proxy_http_version 1.1;

  • ##

  • ##}

https登录https登录

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
36评论

  • 精彩
  • 最新
  • 我是后面加\login,保存在收藏夹和导航里,直接域名加端口在公网访问确实是不跳转。

    校验提示文案

    提交
    加了这个配置就能自动跳转了

    校验提示文案

    提交
    收起所有回复
  • 我代理了gotify,可以打开账号登录页面,但是登录的时候就报错,也不知道是什么问题

    校验提示文案

    提交
    可以f12看看有啥报错

    校验提示文案

    提交
    报错403,然后照抄了你的设置,可以了

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 不加也行

    校验提示文案

    提交
    没错,一般的网站都可以不加,等你失败了再加下试试

    校验提示文案

    提交
    收起所有回复
  • 还需要路由器端口映射?

    校验提示文案

    提交
    只需要映射npm的端口,所有站点都是用相同的端口访问

    校验提示文案

    提交
    收起所有回复
  • heimdall也不行,大佬有解决方案吗

    校验提示文案

    提交
    你把这个配置抄上就能用了,通用的

    校验提示文案

    提交
    收起所有回复
  • 内网地址也可以这么反代?

    校验提示文案

    提交
    可以的

    校验提示文案

    提交
    收起所有回复
  • 常见端口被封的情况下,如何映射反代?比如去掉端口直接用域名访问

    校验提示文案

    提交
    随便找个你认为好记的端口映射给反代,然后通过域名加端口访问,正常情况是一个应用要一个端口,用反代就是不同的域名加同一个端口

    校验提示文案

    提交
    可以先解析一个到你的地址,比如把123.xsd.com解析到你的主机,然后再设置一条URL隐性转发到,比如去看看解析隐性转发到123.xsd.com:8084,这样访问去看看就没有端口号了。但是国内注册的域名不行,他会提示你服务器没有备案

    校验提示文案

    提交
    收起所有回复
  • 大佬你好,我从别的地方找到了另一个解决方法
    location / {
    proxy_set_header Host $host:18443;
    proxy_set_header X-Forwarded-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass 去看看:80;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;
    }
    不知道有什么区别?
    另外,我用大佬您的方法替换上面那个方法后,chrome报不安全的站点,这是什么原因?

    校验提示文案

    提交
    报不安全链接是证书的问题,你添加证书了吗

    校验提示文案

    提交
    收起所有回复
  • 经过研究,第二行用了域名导致失效,改为内网ip+端口正常访问了

    校验提示文案

    提交
    你的应用默认可不就是ip加端口 [高兴]

    校验提示文案

    提交
    收起所有回复
  • nextcloud和兰空图床用这个方法端口还是会丢失

    校验提示文案

    提交

    xdos

    作者

    醉浪

    nextcloud我测试了下没问题,代理的地址要改成https,然后他自己的配置文件要修改下,添加一个域名

    校验提示文案

    提交

    醉浪

    xdos

    作者
    手机APP登录端口还是会消失

    校验提示文案

    提交
    收起所有回复
  • 学到了高手啊 [欢呼]

    校验提示文案

    提交
  • 我的啥都没搞为啥也能正常代理 [偷笑]

    校验提示文案

    提交
  • 这个很有用解决了我长时间困扰的问题

    校验提示文案

    提交
  • 群晖系统

    校验提示文案

    提交
  • 群晖系统搭了访问不了

    校验提示文案

    提交
    我的也是,目前有啥方法吗?

    校验提示文案

    提交
    收起所有回复
  • 感谢楼主。按照楼主方法反代gotify成功,给后来人一个提醒:gotify部署时要用br0模式,给它专门设置一个不同于unraid的ip,不要用host或者bridge模式,否则反代会失败。

    校验提示文案

    提交
  • 老师,为什么我在群晖docker中安装了npm,点击域名都不跳转呢

    校验提示文案

    提交
  • 同样的设置,还是502失效

    校验提示文案

    提交
  • 可以试试nginxwebui也不错

    校验提示文案

    提交
  • 非常感谢,完美解决群晖Note退出登录跳转丢端口的问题

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

xdos

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
308
扫一下,分享更方便,购买更轻松