nginx代理
开头
今天(2020-5-14)试着用nginx做了一下后端接口的代理,然后了解一下正反向代理,记录一下学习笔记
代理服务器
就是在请求端和响应端之间,多了一层处理我们请求的服务器,叫做代理服务器
分类
正向代理
- 过程:客户端向代理服务器发送http请求,并指定目标服务器,然后代理服务器去客户端指定的服务器请求内容,然后把接收到的内容在返回给客户端
- 作用:实现科学上网;A能访问B但是不能访问Google,B可以访问Google,所以让A访问B,然后B去访问Google,再把收到的内容返回给A
反向代理
- 过程:和上述的过程类似,只是这时请求的url是代理服务器提供,然后代理服务器根据客户端发送的请求,去真正的目标服务器请求对应的内容,这个过程对客户端不可见,客户端并不知道还有一个服务器
- 作用:保护隐藏原始资源服务器、负载均衡、缓存静态内容等
对比
- 正向代理是代理客户端,使客户端对服务器不可见
- 反向代理是代理服务器,使服务器对客户端不可见
实战
使用nginx做正反向代理实验
正向代理
- 正向代理实例 条件有限,代做
反向代理
- 实验背景:一个前后端分离的demo,用nginx部署前端项目,并代理后端的接口;
- 配置文件如下,注:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20server{
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 后端接口根路径;
}
}
总结
正向代理的对象是客户端,反向代理的对象是服务端
参考链接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!