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

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

  •  
  •   unt · 117 天前 · 1650 次点击
    这是一个创建于 117 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言  ·  117 天前
    端口换不了,跑的服务都是定死的,80 ,443 必须 iis, 18000 必须 nginx 。老服务器身兼多职,新项目是不可能这么搞的。
    曲线救国试了下,用 iis 的“http 重定向”,做了个跳转,现在能正常访问了,显示 url 地址栏地址会变成 ip 地址。
    请问大家有什么官方做法
    35 条回复    2022-08-15 17:14:21 +08:00
    deplivesb
        1
    deplivesb  
       117 天前
    「二级域名(假设是 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  
       117 天前 via Android   ❤️ 1
    解析并不能指定端口,80 是 http 协议的默认端口,用户侧不输入端口的情况下,只能从 80 端口访问。
    你的需求只能把 nginx 监听端口改成 80 ,或者用反向代理来将外来流量指向 18000
    unt
        3
    unt  
    OP
       117 天前
    @chenluo0429 #2 nginx 监听不了 80 ,被用了
    VensonEEE
        4
    VensonEEE  
       117 天前
    2L 正解
    lostberryzz
        5
    lostberryzz  
       117 天前
    可以 iis 里设置反代 nginx 的一堆网站,或者你有多个 ip 的话,nginx bind 到不同的 ip 上,然后 dns 做改动也可以
    unt
        6
    unt  
    OP
       117 天前
    @deplivesb #1 域名后面肯定不能带端口去操作,现实中暴露给用户的肯定是只有一个域名。我这是 nginx 端口转发吗,nginx 监听不了 80 呀,怎么转发
    unt
        7
    unt  
    OP
       117 天前
    @lostberryzz #5 我本来想的是,iis 估计也有转发的功能,然后找了一下,看到了“HTTP 重定向”这个功能,发现不管用,我对 iis 不太熟,还不太清楚怎么搞
    c332030
        8
    c332030  
       117 天前
    @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  
       117 天前 via Android
    那就用 443 ,上 https ,一样不用端口
    Huelse
        10
    Huelse  
       117 天前
    iis 改其他端口,外部流量根据 nginx 配置的域名规则转发
    ruixue
        11
    ruixue  
       117 天前   ❤️ 1
    域名解析不能指定端口,你这种情况最常规的解决方案就是在 iis 上设置反向代理到 nginx 的 18000 端口

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