nginx重定向和正向代理

一、重定向

1.定义

输入网站之后就会跳转到设定的目标网址

例如:www.hello.com/test1---->www.happy.com/test2

2.意义

  • 更换域名

  • 特殊情况

比如说页面需要维护,但是不想中断服务,可以实现uri的跳转,访问正常的服务器

  • 防盗链

3.重定向的语法

必须有nginx_http_rewrite模块,支持url的重定向

支持条件判断:if语句,没有else

rewrite跳转

rewrite   正则表达式    跳转后的内容   标志位

实验:访问192.168.206.60/test实际跳转到192.168.206.60/happy

标志位的类型

  • permanent

永久重定向,返回码301

  • redirect

临时重定向,返回码302

301和302的区别

301永久重定向:永久性的变更url,搜索引擎的排名和权重会转移到新的url,客户端会保留新的url

302临时重定向,短期的url变更,一般用在维护时,搜索引擎的排名和权重不会转移到新的url,客户端会继续访问原始的url

  • break

跳转时不会改变url

break是按照location的规则进行匹配的,匹配到即终止,不属于3**开头的重定向范围之内。

  • last

本条规则匹配完毕之后,继续向下匹配新的location规则。

last一旦陷入死循环,内部循环10次就会停止,然后报错500。

braek和last没有跳转的返回码,属于匹配location的机制。

*出现500的情况的原因

(1)服务器故障
(2)防火墙屏蔽
(3)应用的端口没有启动
  • 配置文件写错了

  • 有其他应用占用了本服务的端口

  • 服务器资源不够,应用无法启动

  • 磁盘空间不足

(4)last匹配机制导致陷入死循环,10次之后就会报错500
(5)检查网络

4.实验

(1)基于域名的跳转

www.zhangsan.com -----> www.lisi.com

(2)基于ip的跳转

192.168.206.60这个服务器的网页正在维护,只有本机可以访问,其他主机访问统一显示正在维护中

(3)基于后缀名的跳转

 根据www.zhangsan.com/test1/下的.php文件跳转到www.lisi.com

二、nginx的正向代理

1.nignx的内置变量

变量名作用
$uri可以获取客户端请求的地址,不包含主机和查询的参数
$request _uri获取客户端的请求地址,包含主机和查询参数
$host请求的主机名 客户端---发送请求的uri地址
$http_user_agent获取客户端请求的浏览器和操作系统
$remote_addr获取客户端的ip地址(可以隐藏)
$remote_port客户端请求的端口
$server_addr可以查询服务端的ip地址
$server_port服务端的端口号
$request_method获取客户端的请求方式,get post
$scheme获取请求的协议 http 或者 https
$request_filename获取客户端请求的文件名
$document_root获取当前请求的根目录

*两个头部内置变量

nginx在配置location匹配时,会使用两个获取头部的内置变量。

  • X-Real-IP

直接向服务端发送客户端访问的真实ip地址

语法:

proxy_set_head X-Real-IP $remote_addr

  • X-Forwarded-For

传递完整的代理链,只要数据包经过代理,都会被传送nginx,记录所有的代理地址和客户端的真实ip

语法:

proxy_set_head X-Forwarded-For $proxy_add_x_forwarded_for 

#记录所有经过的代理地址

2.nginx的正向代理

(1)四层代理

四层代理 传输层 ip+端口

四层代理是基于tcp/ip协议层的代理转发方式,只是基于ip+端口号的形式实现代理,四层代理无法获取http请求中的url信息,只是对数据包进行转发。

四层转发数据包,是由内核进行转发,速度更快 内核态(开发)

 (2)七层代理

七层代理 应用层 http协议

层代理代理是通过http协议进行代理转发的方式,处理http的请求和响应,当收到http请求之后,根据代理的方式,把http请求转发到指定的服务器,可以对http请求进行深入的分析和处理。

可以对请求内容做路由,流量控制,内容过滤等。

七层代理是由应用层处理,用户态来处理,速度相对较慢

同时能做四层代理和七层代理的:nginx Haproxy

lvs 只能做四层转发

(3)正向代理及其特点

正向代理都是需要对请求进行处理,属于七层代理

正向代理是面向客户端的,客户端想要访问web服务器,但是客户端的ip地址禁止访问,通过代理的ip地址访问目标的服务器,服务端只会知道代理服务器的地址,但是不知道客户端的ip地址。

正向代理的特点:

  • 代理的ip地址和访问的服务端对客户端来说是已知的
  • 后端服务器不知道客户端的ip地址

 (4)实例

固定代理地址

自动获取地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值