nginx反向代理
窃取环境‘——借助nginx反向代理
反向代理说明:
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
反向代理的作用:
1.保护网站安全,所有来自Internet的访问都必须经过代理服务器;
2.通过配置缓存功能加速web请求,可以缓存真实web服务器的某些静态资源,缓解真实web服务器的负载压力;
3.实现负载均衡,充当负载均衡服务器均衡地分发请求,平衡集群中各个服务器的负载压力;
针对对象:通过ajax请求实现的页面;
实现原理:?
准备工作:1.一个本地服务器;
2.一个代理服务器(可以起两个本地服务器,例如:800端口作为本地服务器,8080作为代理服务器);
3.一个远程服务器(互联网上用ajax获取服务端数据的网页的后台服务器,例如饿了么、携程等);
4.自定义域名
这里关于nginx操作至关重要的一步是配置nginx的配置文件:
找到nginx.conf
在server内location配置如下:
location /{
proxy_pass http://127.0.0.1:8080;
#实现前端分离开发的目的
}
location /restapi {
proxy_pass https://m.ele.me;
}
启动了服务器以及锁定远程服务器的api后,我们需要向本地800端口发送和远程服务器前端网页同样的后台请求;
1)找到原网页的请求地址和请求信息,这里以elm为例:(搜索地名时发送的请求)
解析:“https://”为通信协议,m.ele.me为域名,/restapi/v1/pois为请求地址,“city_id=1&keyword=......&type=search”为发送到后端的数据;请求方式:GET;状态:请求成功!
对于其他网页,我们只需修改"/restapi/v1/pois"即请求地址(后端给出的api)与转向的域名,然后按照该api的数据结构向后端发送请求;
前后端分离开发示意图:
这种代理请求需要后端对指定对象开放接口,否则后端可以拒绝返回请求的字段。——2016/07/23