简介

很多小伙伴可能一直没有搞懂nginx的301重定向、302重定向以及反代地址中直接写路径的区别

这篇文章就详细讲讲这三个的区别和作用



SEO权重

在开始前先了解一下什么是SEO权重

SEO权重说简单点就是浏览器引擎对你这个路径的评分

当你评分越高,用户搜索的时候,你的排名越靠前,反之,评分越低被搜索的时候排名越靠后



301重定向

301重定向是永久重定向

使用301重定向会在浏览器上存在缓存,下次访问的时候浏览器可能会直接跳转到目标页,不在请求服务器

SEO权重会转移到新地址

修改难度较高,即使删除了配置,访问过的用户浏览器里面还有缓存,地址要是还能访问用户会可以直接访问,地址要是不能访问用户访问会出错,想要解决这一现象需要用户清除浏览器缓存。



302重定向

302重定向是临时定向

302与301相反,使用302用户浏览器上没有缓存,每次访问都会请求服务器

SEO权重会保留在原来的地址,但是如果长期使用302,会导致搜索引擎评分异常,导致两个页面的评分都上不去

修改难度低,因为用户的浏览器没有缓存,所以只要修改了配置文件马上就起作用了



proxy_pass带路径

这种方式适用于隐藏后端架构或跨服务集成。

例如你的登录页面是www.xxxx.com/login/,但是你想让地址栏看起来干净清爽,那么就使用proxy_pass,使用proxy_pass可以隐藏域名后面的/login/,用户在浏览器地址栏上看到的只有www.xxxx.com。

但是这个方式有个弊端,可能会加载不出CSS

例如你的页面文件里面写的是<link href="css/style.css">,用户访问的时候浏览器直接加载CSS的地址为www.xxxx.com/css/style.css,但是实际上你的css文件在login目录下的css目录里面,这就导致了css加载失败,如果使用的是301或者302定向,浏览器地址栏显示的是www.xxxx.com/login/login.php,浏览器加载css的时候加载路径为www.xxxx.com/login/css/style.css,这时候就可以成功加载css。



总结

特性 301 302 proxy_pass
定义 永久重定向 临时重定向 后端透明转发
浏览器地址栏 会改变 会改变 不会改变
浏览器缓存 缓存 不缓存 不涉及
请求次数 2次 2次 1次
服务器负载 极低 极低 较高
网络联通性 用户必须能直接访问目标地址 用户必须能直接访问目标地址 用户只需要访问Nginx,后端可隐藏在内网
SEO权重 转移到新地址 保留在原来地址 保留在当前显示的URL上
修改难度 搞 低 极低
资源路径加载 正常,浏览器会根据新URL修正相对路径 正常,浏览器会根据新URL修正相对路径 易报错,容易出现css/js路径404
二维码

发表评论