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

XDM,请问下域名解析的相关问题

  •  
  •   unt · 2022-08-15 11:14:08 +08:00 · 1945 次点击
    这是一个创建于 592 天前的主题,其中的信息可能已经有所发展或是发生改变。

    情况:二级域名(假设是 a.v2ex.com )已经在运营商控制台解析到了服务器 ip 地址(假设是 119.75.217.109),默认 80 端口。
    服务器上,iis 跑了一堆网站,80 端口被 iis 用了。

    nginx 跑了一堆网站,主要跑 18000 这个端口。

    我想让 a.v2ex.com 这个二级域名指向 119.75.217.109:18000 ,应该如何操作?

    第 1 条附言  ·  2022-08-15 12:50:13 +08:00
    端口换不了,跑的服务都是定死的,80 ,443 必须 iis, 18000 必须 nginx 。老服务器身兼多职,新项目是不可能这么搞的。
    曲线救国试了下,用 iis 的“http 重定向”,做了个跳转,现在能正常访问了,显示 url 地址栏地址会变成 ip 地址。
    请问大家有什么官方做法
    35 条回复    2022-08-15 17:14:21 +08:00
    deplivesb
        1
    deplivesb  
       2022-08-15 11:25:32 +08:00
    「二级域名(假设是 a.v2ex.com )已经在运营商控制台解析到了服务器 ip 地址(假设是 119.75.217.109),默认 80 端口」
    A 记录啥时候能带端口了,80 不是 http 默认端口么,你要想通过 a.v2ex.com 这个域名直接访问到 18000 端口最简单就是
    a.v2ex.com:18000 ,如果你不想手动指定端口,用 http 默认 80 ,那就去搜一下 nginx 端口转发
    chenluo0429
        2
    chenluo0429  
       2022-08-15 11:25:36 +08:00 via Android   ❤️ 1
    解析并不能指定端口,80 是 http 协议的默认端口,用户侧不输入端口的情况下,只能从 80 端口访问。
    你的需求只能把 nginx 监听端口改成 80 ,或者用反向代理来将外来流量指向 18000
    unt
        3
    unt  
    OP
       2022-08-15 11:37:17 +08:00
    @chenluo0429 #2 nginx 监听不了 80 ,被用了
    VensonEEE
        4
    VensonEEE  
       2022-08-15 11:37:33 +08:00
    2L 正解
    lostberryzz
        5
    lostberryzz  
       2022-08-15 11:42:47 +08:00
    可以 iis 里设置反代 nginx 的一堆网站,或者你有多个 ip 的话,nginx bind 到不同的 ip 上,然后 dns 做改动也可以
    unt
        6
    unt  
    OP
       2022-08-15 11:45:49 +08:00
    @deplivesb #1 域名后面肯定不能带端口去操作,现实中暴露给用户的肯定是只有一个域名。我这是 nginx 端口转发吗,nginx 监听不了 80 呀,怎么转发
    unt
        7
    unt  
    OP
       2022-08-15 11:50:05 +08:00
    @lostberryzz #5 我本来想的是,iis 估计也有转发的功能,然后找了一下,看到了“HTTP 重定向”这个功能,发现不管用,我对 iis 不太熟,还不太清楚怎么搞
    c332030
        8
    c332030  
       2022-08-15 11:57:00 +08:00
    @unt #3 iis 换下端口,nginx 用 server_name 不行吗,比如 b.v2ex.com 到 iis ,a.v2ex.com 正常 nginx 访问,b.v2ex.coma.v2ex.com 都指向 119.75.217.109
    JustSong
        9
    JustSong  
       2022-08-15 12:00:01 +08:00 via Android
    那就用 443 ,上 https ,一样不用端口
    Huelse
        10
    Huelse  
       2022-08-15 12:56:49 +08:00
    iis 改其他端口,外部流量根据 nginx 配置的域名规则转发
    ruixue
        11
    ruixue  
       2022-08-15 13:02:01 +08:00   ❤️ 1
    域名解析不能指定端口,你这种情况最常规的解决方案就是在 iis 上设置反向代理到 nginx 的 18000 端口

    现在很多 docker 应用也都是默认跑在本地某个端口上,然后再统一通过 nginx 反代开放至 internet 的
    Xusually
        12
    Xusually  
       2022-08-15 13:04:00 +08:00 via iPhone
    iis 不是也有反向代理吗?你都说了 iis80 跑了一堆网站了,也不在乎再跑个 b 网站啊,iis 配置监听 b 域名,iis 上配置 b 反向代理到 18000 端口的 nginx 不就可以了?
    LinePro
        13
    LinePro  
       2022-08-15 13:08:46 +08:00
    Google 搜索:IIS reverse proxy
    selca
        14
    selca  
       2022-08-15 13:13:32 +08:00
    很好奇,有种解析记录叫 srv 记录,这个我记得好像可以指定端口,但没看明白是什么,有大佬讲讲吗
    jiulang
        15
    jiulang  
       2022-08-15 13:19:00 +08:00   ❤️ 1
    IIS 的反向代理太难用了,IIS 其实是 http.sys 的前端而已,使用 yarp 托管在 http.sys ,继续监听 80 和 443 ,同时从 IIS 手里抢过 a.v2ex.com ,就可以灵活的配置反向代理了,而且性能也最佳。
    jiulang
        16
    jiulang  
       2022-08-15 13:24:02 +08:00
    如果有需要,我可以帮你写这个与 IIS 共享端口(但分摊域名)的反向代理服务,这个服务可以灵活的配置反向代理到的任意上游服务
    jiulang
        17
    jiulang  
       2022-08-15 13:27:42 +08:00
    当然,你也可以在 IIS 和你的新服务(非 IIS)之外,购买一台具有独立 IP 的服务器,上面跑一层 nginx (网关),把域名解析到新服务器的 IP ,然后在 nginx (网关)根据域名做反向代理规则
    devehx
        18
    devehx  
       2022-08-15 13:30:25 +08:00
    你看看你解析域名的时候不要用 A 记录,使用显性 URL 和隐性 URL 可以直接解析到一个 url 地址,可以带端口的。我之前这样搞过
    jiulang
        19
    jiulang  
       2022-08-15 13:32:13 +08:00
    @Huelse windows 的 nginx 性能太差了,做不了总网关
    nitmali
        20
    nitmali  
       2022-08-15 13:35:59 +08:00
    找其他服务器反向代理中转一下
    unt
        21
    unt  
    OP
       2022-08-15 13:38:30 +08:00
    @Xusually #12 我就是这么想的,但是 iis 不知道怎么操作,用了“http 重定向”,但是它是显式转发,url 地址栏地址会变
    jiulang
        22
    jiulang  
       2022-08-15 13:39:46 +08:00
    这个场景我遇到过,某个有历史的 web 服务,用了 a,b,c,d 等多个二级域名完成各个业务模块,后面重写了 d 模块,并使用多台服务器来部署 d 模块。使用 yarp 托管在 http.sys ,可以只动 d 模块。
    xgfan
        23
    xgfan  
       2022-08-15 13:40:13 +08:00
    上面已经有人说了,“iis 反代” 就好了。
    unt
        24
    unt  
    OP
       2022-08-15 13:43:33 +08:00
    @jiulang #17 嗯,这个是知道的
    unt
        25
    unt  
    OP
       2022-08-15 13:47:00 +08:00
    @jiulang #17
    @nitmali #20 每次搞都要领导扫码,烦的一匹,我自己服务器上随便搞, 所以我一点都不想折腾控制台设置上的事 😞
    unt
        26
    unt  
    OP
       2022-08-15 13:48:18 +08:00
    @jiulang #15 这个听着好厉害,我去研究下
    jiulang
        27
    jiulang  
       2022-08-15 13:51:13 +08:00
    建议还是搞基于 http.sys 的 yarp ,劫持部分域名,且反向代理与负载均衡同时支持
    andyskaura
        28
    andyskaura  
       2022-08-15 13:54:00 +08:00
    @selca srv 貌似不能用作 http 访问
    yufeng0681
        29
    yufeng0681  
       2022-08-15 13:58:53 +08:00
    方案 1 、弄一台 linux 机器安装 nginx 来跑 ip:119.75.217.109 的反向代理,可以基于域名指向后台各种服务,性能不差。
    方案 2 、重新弄一个公网 ip ,linux 机器,跑新业务,新业务不太可能用 iis 等性能差的 web 服务器去跑,解耦了,也不会被老业务性能限制,也不会被已有业务的运营吐槽,给他们增加了运维压力,出了事情也不用背锅。 [未来更多的新业务都可以放在这里跑]
    honhon
        30
    honhon  
       2022-08-15 13:59:35 +08:00
    iis 也是支持反向代理的,ARRv3.0
    honhon
        31
    honhon  
       2022-08-15 14:00:38 +08:00
    重定向浏览器的 ip 地址当然会变
    liaohongxing
        32
    liaohongxing  
       2022-08-15 14:03:49 +08:00
    windows 装 nginx 没啥用。半残废 。iis 反代即可
    apois
        33
    apois  
       2022-08-15 14:20:41 +08:00
    我这边前面有台同 iis 80 443 和 nginx 8080 ,采用的方案是套 CDN ,源站地址可不同端口。
    Xusually
        34
    Xusually  
       2022-08-15 15:05:54 +08:00 via iPhone
    我 google 了一下 iis reverse proxy 第一页全是有效结果,有官方文档,也有博客文章……你随意参考一下就行了啊
    dorothyREN
        35
    dorothyREN  
       2022-08-15 17:14:21 +08:00
    你需要的可能是 隐性 url
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2811 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:35 · PVG 21:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.