V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yeohreet
V2EX  ›  程序员

请教大佬们关于 NGINX 内网反向代理的疑问。

  •  
  •   yeohreet · 142 天前 · 1838 次点击
    这是一个创建于 142 天前的主题,其中的信息可能已经有所发展或是发生改变。
    描述:家里 ROS 主机拨号并做网关,地址 192.168.1.1 ,EXSI 虚拟机上跑了一个 Debian ( 192.168.1.5 ),在 Debian 主机上安装了 NGINX ,并使用 ACME.SH 申请了证书。买了一个域名(例如:xxx.com ),在域名申请了泛域名解析:*.xxx.com ,在 nginx 的 CONFIG 文件设置了反代,例如:a.xxx.com 可以访问内网服务 192.168.1.8 。因为家里公网 IP 没有 443 端口,在 ROS 上设置了转发:9443 到 192.168.1.5 的 443.

    问题:访问 a.xxx.com:9443,可以正常访问内网的 192.168.1.8 服务(因为 NGINX 的 CONG 文件已经设置了反向代理),但是为什么访问 b.xx.com:9443 等等,任何的泛解析域名都是同样的访问 192.168.1.8 ,CONG 文件已经做了精准匹配域名了,按我理解,除了 a.xxx.com:9443 可以访问外,其他泛域名应该不能访问才对。实在不想在阿里的域名管理平台每一个服务都设置 A 解析,想在内网的 NGINX 上实现。

    百思不得其解,还望各位大佬帮忙指点。
    12 条回复    2024-06-28 23:31:08 +08:00
    nitmali
        1
    nitmali  
       142 天前   ❤️ 1
    default_server
    ccloving
        3
    ccloving  
       142 天前
    家宽封了 80 和 443 也能用 ACME 正常获取证书吗?我一直都是失败的。
    yinmin
        4
    yinmin  
       142 天前 via iPhone
    #1 正解。 因为 nginx 有 1 个默认网站概念,即使 servername 不匹配也会用这个默认网站配置
    yinmin
        5
    yinmin  
       142 天前 via iPhone
    @ccloving #2 amce 用 dns 认证模式
    ccloving
        6
    ccloving  
       142 天前
    @yinmin 谢,我试试
    anjing01
        7
    anjing01  
       142 天前
    #1 正确/配置下 80/443 的 default_server(80 端口示例)
    server {
    listen 80 default_server;
    server_name _;

    location / {
    return 403;
    }

    error_page 404 /404.html;
    location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
    }
    yeohreet
        8
    yeohreet  
    OP
       142 天前
    @anjing01 @nitmali @yinmin 谢谢各位大佬指点,问题已经解决,感谢!
    yeohreet
        9
    yeohreet  
    OP
       142 天前
    @ccloving #3 可以的,家里所有服务都是用的 ACME.SH 自动更新和部署。
    lovelylain
        10
    lovelylain  
       142 天前 via Android
    @ccloving acme.sh 更新证书原理是通过 dns 记录证明你拥有这个域名,跟你网站是不是默认端口部署在当前 ip 没有关系
    bli22ard
        11
    bli22ard  
       142 天前
    家里玩,caddy 不比 nginx 好用?自带 acme 和主流 dns 服务商的集成,配置 token 就可以实现基于 dns 验证的 https 证书签发
    yeohreet
        12
    yeohreet  
    OP
       142 天前
    @bli22ard #11 主要是玩过了,没有啥可以折腾了,开始自建 liunx 玩服务,顺带学习
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1842 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:16 · PVG 00:16 · LAX 08:16 · JFK 11:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.