在我们日常工作中,应该经常听到或者和用到反向代理,通过反向代理来达到客户端与服务端之间的访问,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
反向代理
代理分为正向代理和反向代理,代理应该不用多解释了,理解成中间人就可以了。正向代理是内网通过代理访问外网,这个代理就是正向代理。而反向代理是指,外网通过代理访问内网,那这个代理就是反向代理。
假设把你公司的网看成是内网,那么你从公司里面的一台电脑上访问你家里的电脑上的服务,那就的通过正向代理,而你从你家电脑访问公司的这台电脑,就要通过反向代理。
反向代理与负载均衡一样,也是位于客户端与服务器之间,客户端向服务器发起的请求都是先经过反向代理,然后分发到服务器上,然后服务器将返回结果交给反向代理,反向代理在交给客户端。
反向代理的作用:
- 增强了安全性: 首先,你背后的服务器是在反向代理后面的,其不会暴露任何信息到网络上,所以可以防止恶意攻击。第二可以防止DDoS( distributed denial-of-service)攻击,例如通过限制某一IP访问,限制每个客户端的访问次数等。
- 增强了可伸缩性与灵活性:因为客户端只能看到反向代理的Ip地址,所以我们就可以灵活的改变其后面服务器的配置。
- 加速Web访问速度:第一:将返回结果压缩后交给客户端,这样就会节省网络带宽,从而加快速度。第二:将请求的加密解密操作放在反向代理服务器上行执行。第三:在反向代理服务器上做缓存。
nginx反向代理
1.nginx环境安装
准备nginx环境,如未安装可参考:docker构建nginx镜像
2.配置nginx反向代理
使用下面命令进入nginx容器内部
# -it 交互模式,表示分配一个伪终端
# nginx 容器名称 ,也可以是容器id
# /bin/bash 表示对容器执行bash操作
docker exec -it nginx /bin/bash
执行完,cd根目录 ls下系统目录发现就是一个Linux系统
image.png进入nginx目录
image.png使用vim nginx.conf 编辑配置文件
在server段里面的location加上proxy_pass http://ip:端口; image.png
完成后重启nginx
./nginx -s reload
访问页面成功代理
ps:如果本地有多个项目可以使用路由的形式实现代理跳转- -
image.png
网友评论