开头
今天(2020-5-14)试着用nginx做了一下后端接口的代理,然后了解一下正反向代理,记录一下学习笔记
代理服务器
就是在请求端和响应端之间,多了一层处理我们请求的服务器,叫做代理服务器
分类
正向代理
- 过程:客户端向代理服务器发送http请求,并指定目标服务器,然后代理服务器去客户端指定的服务器请求内容,然后把接收到的内容在返回给客户端
 - 作用:实现科学上网;A能访问B但是不能访问Google,B可以访问Google,所以让A访问B,然后B去访问Google,再把收到的内容返回给A
 
反向代理
- 过程:和上述的过程类似,只是这时请求的url是代理服务器提供,然后代理服务器根据客户端发送的请求,去真正的目标服务器请求对应的内容,这个过程对客户端不可见,客户端并不知道还有一个服务器
 - 作用:保护隐藏原始资源服务器、负载均衡、缓存静态内容等
 
对比
- 正向代理是代理客户端,使客户端对服务器不可见
 - 反向代理是代理服务器,使服务器对客户端不可见
 
实战
使用nginx做正反向代理实验
正向代理
- 正向代理实例 条件有限,代做
 
反向代理
- 实验背景:一个前后端分离的demo,用nginx部署前端项目,并代理后端的接口;
 - 配置文件如下,注:
 
server{
	listen 80;
	server_name ip地址或域名;
	root 前端项目路径;
    # 部署页面
	location = /todo {
	# 备注:如果外面root配置了目录,这里寻找本机目录时,路径为:前端项目路径+/todo
	# 如果内部使用了root,寻找本机目录时,路径为:root目录+/todo
	# 如果内部使用了alias,寻找本机目录时,路径直接为root目录
		index index.html;
	}
    # 部署静态资源
    location ~.*\.(css|js|png|jpg|jepg){
        root 静态资源路径;
    }
    # 转发后端接口 这里一定要在结束添加 /;否则请求后端接口时,会把apis也携带在请求里
	location ^~ /apis/ {
		proxy_pass 后端接口根路径;
	}
}
总结
正向代理的对象是客户端,反向代理的对象是服务端