nginx 重定向 和 dnspod 解析的疑惑

2014-09-16 20:47:19 +08:00
 lovine
关于访问name.com打开www.name.com的疑惑
nginx反代 301重定向域名 name.com到www.name.com

和直接在dnspod @解析到服务器 然后虚拟主机 server_name 加上name.com


这都可以 达到正常访问同一个网站的目录

哪种好呢 好像很多人用反代解决? 直接dnspod解析的坏处是?
5502 次点击
所在节点    问与答
20 条回复
Lax
2014-09-16 23:46:44 +08:00
www.name.com可以配置CNAME指向,name.com不行。关于原因可以自行google之。
你去dnspod上试试就知道啦。
aoom
2014-09-16 23:59:23 +08:00
之前在 sinfir.com 上也是这样设置遇到和楼主一样的状况,后来是直接修改域名解析A记录
lovine
2014-09-17 00:27:24 +08:00
@aoom 我就是不理解 为什么 dnspod那里能直接解决的 都解析到服务器的 访问的是一个网站 但是大家好像都推崇用反代
lovine
2014-09-17 00:28:51 +08:00
@Lax 我是直接解析到vps 的 两条 是a 记录 都能直接访问 同一个网站啊
kfll
2014-09-17 00:30:28 +08:00
301 跟反代是什么关系
lovine
2014-09-17 00:40:31 +08:00
@kfll 可能我说错了 不过重点不是这个 不管301还是反代 写代码达到name.com到www.name.com这个效果
dnspod 也能达到这个效果
我只是不解为什么 好像都是推崇用代码的方式
msg7086
2014-09-17 02:44:20 +08:00
@lovine 重点是301和反代是完全不同的两个东西。你6楼的前提就已经错了。
qiayue
2014-09-17 05:43:15 +08:00
反代跟301不是一回事
Tink
2014-09-17 08:26:09 +08:00
你要是用反代来实现的话,至少需要两个nginx conf文件,一个配置原网站,一个写反代的站点;要是用301,那就只要一个nginx,其中一个location段写rewrite就可以了

然后dnspod是cname解析的,完全不是一个东西,而且你裸域转www可以,但是www转裸域就不能cname
mornlight
2014-09-17 08:54:59 +08:00
301是重定向,会返回给浏览器一个内容,类似:
HTTP/1.1 301 Moved Permanently
Server: nginx/1.4.4
Date: Wed, 17 Sep 2014 00:51:14 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://www.name.com/

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.4.4</center>
</body>
</html>


浏览器看到是返回的301,一般就自动跳到Location的网址那了。
把裸域301到www站点一般是为了统一入口,搜索引擎也会将它们视为同一个站点。
如果不是301,而是2个域名都提供一样的功能,那其实是2个网站。

另外,你应该是把反向代理的意思理解错了...
rrfeng
2014-09-17 09:35:09 +08:00
@Lax
@Tink

没太看明白怎么回事,请指教一下

cname 的话,是多个域名访问同一个站点(解析到一个 ip)。也就是浏览器里输入 name.comwww.name.com 实际上站点是一样的。nginx 里同样需要配置 server_name name.com www.name.com 才能正常接收请求。
如果不用 cname ,用两条 A 记录也可以实现?

但是想让访问 name.com 的时候直接变成 www.name.com 只能在 nginx 里做跳转了吧?

所以这个问题根本是风马牛不相及的两件事?
msg7086
2014-09-17 13:05:06 +08:00
@rrfeng 你说的完全正确啊……
xiaou
2014-09-17 13:38:50 +08:00
@msg7086 借贴顺便问一下,301重定向后还需要绑定域名到目录吗?还是只要在dnspod做A记录就行了?目前实现了name.com转到www.name.com但是不绑定到服务器目录是否对搜索引擎收录有影响?
感谢
msg7086
2014-09-17 14:46:21 +08:00
@xiaou 一般一个全域跳转就行了
xiaou
2014-09-17 16:02:47 +08:00
@msg7086 嗯,我只绑了@和*.name.com主域名然后再nginx下做了全域跳转www.name.com
lovine
2014-09-17 16:41:25 +08:00
@mornlight
@msg7086
@rrfeng
@xiaou
恩 我的意思应该是301和直接A记录解析的区别
如果我不需要用cname 不考虑cname 一般我是直接两条A记录解析到ip的 (www和@)
然后在 server_name 配置name.com www.name.com
就都访问的是同一个内容了

在nginx配置用301 跳转到www.name.com 达到的效果也是访问同一个内容

所以两者的区别就在于 会被搜索引擎识别为1个网站 和两个网站吗?(其实我就是想问这两者的区别,可能不关反代的事情,是我理解错了 = =)
xiaou
2014-09-17 17:03:20 +08:00
@lovine 我今天也在学习设置301所以考虑到了跟你差不多的问题,经过大家的意见和一些搜索,应该就是按照我上条回复的方式就ok,至于301到www.name.com还是name.com网上大家说效果差不多,所以nginx里我只绑定了name.com然后将.name.com进行301重定向到www.name.com这样应该搜索引擎就会认定所有name.com下的子域名都属于一个网站,我还将.name1.com这个老域名也重定向了过来。我理解的就是这样了,应该是正确的吧。。。
mornlight
2014-09-17 17:09:53 +08:00
@rrfeng 让访问 name.com 的时候直接变成 www.name.com 最方便和稳妥的方法是301, name.com 这种裸域不要cname到www.name.com 上,任何cname都不要有。
mornlight
2014-09-17 17:13:55 +08:00
@lovine 按17楼那样理解就好了。
msg7086
2014-09-17 19:08:32 +08:00
@lovine 301的作用是让两个网站的访问地址变得一样。
双A记录或者CNAME的作用是让两个访问地址对应的网站变得一样。

他们是不一样的概念,不一样的用途。

301 -> 不管访问 a.com 还是 b.com 最终都跳转为由 b.com 打开
CNAME -> 不管访问 a.com 还是 b.com 最终都显示 B 网站的内容

最典型的就是v2ex自己。访问带www和不带www的,结果cookie就不共享了……当然用cookie作用域也是可以,不过大多数情况都是站长自己决定用哪个域名,然后让所有其他的域名都跳转过来。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/133845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX