简介

很多小伙伴可能一直没有搞懂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
二维码

发表评论