使用 DNS 做 301 域名跳转和服务器跳转哪个好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nopicsayjb
V2EX    DNS

使用 DNS 做 301 域名跳转和服务器跳转哪个好?

  •  
  •   nopicsayjb 2016-07-01 23:33:35 +08:00 11222 次点击
    这是一个创建于 3432 天前的主题,其中的信息可能已经有所发展或是发生改变。
    按理来说,应该 是 DNS 做跳转要比服务器高效吧?
    例如:
    使用 DNS 跳转(从 x.com 跳转到 www.x.com
    1 )客户端》 DNS 》 301 》 DNS 》目标
    使用 服务器 跳转(从 x.com 跳转到 www.x.com
    2 )客户端》 DNS 》服务器》 301 》 DNS 》目标
    19 条回复    2016-07-05 17:05:51 +08:00
    mrjoel
        1
    mrjoel  
       2016-07-01 23:44:09 +08:00
    DNS 跳转? url 转发 还是 CNAME
    Zohar
        2
    Zohar  
       2016-07-01 23:44:58 +08:00 via Android   1
    301 是一种 HTTP 状态码,和 DNS 没关系。
    mornlight
        3
    mornlight  
       2016-07-01 23:48:23 +08:00   1
    DNS 协议里本身没有 301 跳转,你见到某些 DNS 提供商可以设置也是解析到他们的服务器,再 301
    metowolf
        4
    metowolf  
       2016-07-01 23:48:37 +08:00   1
    标准 DNS 没有跳转的,大多数都是通过解析到 DNS 提供商的专用服务器后进行跳转
    nopicsayjb
        5
    nopicsayjb  
    OP
       2016-07-01 23:49:20 +08:00
    @mrjoel url 转发(我理解没错吧?),即从主域跳转到带 www 的
    nopicsayjb
        6
    nopicsayjb  
    OP
       2016-07-01 23:50:28 +08:00
    @metowolf
    @mornlight 这样的话,本身和解析到自己的服务器再跳转没有区别了对吗?
    metowolf
        7
    metowolf  
       2016-07-01 23:55:56 +08:00
    @lHUAC 没有区别,我都是交给 DNS 去解析,减少压力
    DoraJDJ
        8
    DoraJDJ  
       2016-07-02 00:04:25 +08:00 via Android
    @metowolf 另外使用第三方静态页面托管服务的时候,用 DNS 的 301 跳转很有用
    nopicsayjb
        9
    nopicsayjb  
    OP
       2016-07-02 00:21:29 +08:00
    @metowolf 对呀,这样就把请求放到 DNS 那边的服务器上了:)
    mrjoel
        10
    mrjoel  
       2016-07-02 00:37:48 +08:00   1
    关于裸域 @到 www ,写详细点吧:
    1 、 url 跳转把 xxx.com 解析到 www.xxx.com ,由 @跳转到 www 的负担交给 DNS 服务商的服务器,当然跳转的速度也取决于 DNS 服务商的服务器。比如现在 DNSPOD 的 url 跳转服务器就很慢。 这样跳转问题是只对首页(或某一固定链接)有效,如果用户直接输入了 xxx.com/aaa 这样的裸域 url 来访问随机二级目录就会失败,所以你仍然需要把裸域 @解析到自己的服务器。(治标不治本,貌似现在部分浏览器对 xxx.com/aaa 找不到的情况 会自动补全到 www.xxx.com/aaa

    2 、 301 、 302 跳转,即在你自己的服务器软件(比如 nignx )上设置,这样的好处是,不管用户访问裸域 @还是 www ,都可以正常做出回应。当然负担也在你自己服务器上,这个负担应该不大。(所以能采用这个方法还是这个方法吧,虚拟机那也只能 url 了)
    nopicsayjb
        11
    nopicsayjb  
    OP
       2016-07-02 01:15:50 +08:00
    @mrjoel cloudxns 301 跳转可以把请求目录带上比如 x.com/test 跳转到 www.x.com/test ,但是这个请求也是打到 DNS 那边服务器上面去,如果 DNS 转发服务器慢,这就会慢了下来,所以,你的建议还是使用自己的服务器来跳转么?
    mytsing520
        12
    mytsing520  
    PRO
       2016-07-02 02:38:07 +08:00   1
    @mrjoel
    @lHUAC
    DNSPod 这类服务商操作 URL 跳转,从你的操作来看是 URL 跳转这个类型,然而实际上 DNS 协议里是没有这个类型的, DNSPod 这类服务商专门开辟了一台服务器用于接收当用户使用 URL 跳转这个类型时,域名进行 A 记录解析至跳转服务器。换句话说,你用的 URL 跳转,实际上依然是一个 A 记录或 CNAME 记录(因为主机头记录不能支持 CNAME 记录是国际惯例)。
    ZE3kr
        13
    ZE3kr  
       2016-07-02 07:29:51 +08:00 via iPhone   1
    用 DNS 跳转和常规的 A 解析跳转原理一样,不会更快。

    试试 CloudFlare 的 Page Rules 吧, CloudFlare 支持免费的 HTTPS 。
    notgod
        14
    notgod  
       2016-07-02 09:00:43 +08:00   2
    按理来说,应该 是 DNS 做跳转要比服务器高效吧?
    例如:
    使用 DNS 跳转(从 x.com 跳转到 www.x.com
    1 )客户端》 DNS 》 301 》 DNS 》目标
    使用 服务器 跳转(从 x.com 跳转到 www.x.com
    2 )客户端》 DNS 》服务器》 301 》 DNS 》目标

    1 和 2 其实是一样
    不同的地方
    1 是使用 DNS 解析服务商的服务器
    2 是使用你自己的服务器

    按你的要求
    xxx.com 转到 www.xxx.com

    Apache 使用.htaccess (支持 HTTP 和 HTTPS )
    RewriteEngine On
    RewriteCond %{HTTPS} =on
    RewriteRule ^(.*)$ - [env=protocol:https]
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ - [env=protocol:http]
    RewriteCond %{HTTP_HOST} ^xxx.com [NC]
    RewriteRule ^(.*)$ http://www.xxx.com/$1 [L,R=301]
    RewriteCond %{HTTP_HOST} ^xxx.com$ [NC]
    RewriteRule ^(.*)$ %{ENV:protocol}://www.xxx.com/$1 [L,R=301]
    改为你的域名 上传到网站根目录 .htaccess 即可 如果 Win 系统 不支持.htaccess 这种文件名文件
    可以保存为 htaccess.txt FTP 上传后修改即可

    nginx 可以这样做
    单域名
    server {
    server_name xxx.com;
    return 301 $scheme://www.xxx.com$request_uri;
    }
    正则匹配到不带 www 的 强制转向所有域名
    server {
    server_name "~^(?!www\.).*" ;
    return 301 $scheme://www.$host$request_uri;
    }


    DNS 的标准解析协议 并没 301/302 redirect 这种解析标准
    DNS 服务商提供给你的转向服务
    是在 你的 DNS 记录 加一条 A 记录 @ A 1.1.1.1
    只是这个记录你看不到 这个 1.1.1.1
    就是 DNS 服务商的服务器 IP 你域名解析过去了 他在服务器处理 抓取你设置的转向地址

    301 转向
    server {
    server_name 你的域名;
    return 301 转向地址$request_uri;
    }

    302 转向
    server {
    server_name 你的域名;
    return 302 转向地址$request_uri;
    }

    可以添加 log 或者 track 做请求的统计分析 知道转发请求了多少什么的
    dndx
        15
    dndx  
       2016-07-02 10:48:57 +08:00 via iPhone   1
    301 跳转跟 DNS 协议一点关系也没有。只是 DNS 服务商提供的一种服务。
    CinderellaCiCi
        16
    CinderellaCiCi  
       2016-07-04 12:28:12 +08:00 via Android
    为什么都在谈论 dns 的转发实现原理?看标题,楼主是想要推荐的 dns 呀…
    CloudXNS 的 301 转发是由国内的机器提供服务,因此相对会比较稳定,不过要求备案。
    另外,对于 @mrjoel 提到的 x.com/aaa 这样的 URL 跳转到 www ,在 CloudXNS 中是支持的,只需要将记录值填写为 http://www.x.com/$uri 即可。
    楼主如果已备案可以考虑 CloudXNS~
    nopicsayjb
        17
    nopicsayjb  
    OP
       2016-07-04 13:27:46 +08:00
    @CinderellaCiCi 哈哈你这是强行推广呀:)我去年就开始一直都是在用 CloudXNS 了,对了,量子加速什么时候能出来呀?流量几毛钱 1G ? HTTP/2 , SPDY/3 必须要支持吧? ALPN 呢
    CinderellaCiCi
        18
    CinderellaCiCi  
       2016-07-05 10:52:26 +08:00
    @lHUAC 量子加速快了,价格暂不公开,以后可能会推出流量包。 HTTP/2 那些东西暂时还没支持。
    txydhr
        19
    txydhr  
       2016-07-05 17:05:51 +08:00 via iPad
    @metowolf
    @lHUAC 有区别 dns 服务商的巨烂 国外访问根本直接 time out
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5322 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:29 PVG 15:29 LAX 23:29 JFK 02:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86