反向代理技术
Posted 人木青子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反向代理技术相关的知识,希望对你有一定的参考价值。
业务需求:文件上传后保存到真实的磁盘中,有真实的磁盘路径.但是其他用户不能通过真实的磁盘路径去访问我们的图片.
(在E盘下存在jt-upload文件夹,文件夹里面存在一张图片文件)
能否给用户一个虚拟路径.这个虚拟的路径与真实的路径有一种映射关系.可以通过客户端去访问该虚拟路径,进而由虚拟路径去访问具体的磁盘路径,这样才可以访问到具体的磁盘资源.
修改Hosts文件:当程序中需要使用某个域名时,或者转向时,可以修改Hosts文件
使用工具编辑Hosts(SwitchHosts)
[通过+可以新增转向,左侧配置本地ip,右侧配置访问域名,通过√可以生效当前hosts配置,如果涉及权限,则需要设置hosts中的user权限]
反向代理技术
反向代理:用户发起请求.由代理服务器代替用户去请求真实的资源.最终将数据返回给用户的过程称之为反向代理.
6.nginx反向代理服务器
Nginx是一个高性能的HTTP和反向代理服务,因它的稳定性好,丰富的功能集,实例配置文件和低系统资源的消耗而闻名,Nginx特点是占有内存少,并发能力强;
内存消耗:1.4M(主线程1.6M,守护线程1.2M,守护线程作用还是预防主线程意外结束)
并发能力强:5万/秒(受限于网速/硬件资源,,实际值3万/秒)
开发语言:C语言
通过命令操作Nginx:
7.Nginx实现反向代理
8.Tomcat集群部署
①将程序打包(.war包)
②修改tomcat配置文件(是哪个端口号均要修改)
③项目缺省发布(将打包的项目名称修改为ROOT.war,之后重启tomcat服务)
9.Nginx实现负载均衡
①默认策略
③权重策略
④IPhash策略(有时候需要让用户信息共享,但是如果采用集群的配置,可能会出现重复多次登录的现象.本质问题:session不能在多台tomcat服务器中共享数据!)
解释: (ip+hash)%服务器数量=绑定服务器.
实现的功能:变相实现了Session共享.
缺点:
1. 可以通过IP模拟进行类似攻击.不安全
2. 可能会造成负载不均.
3. 如果有一台服务器宕机,则可能影响整合服务.
延伸:
1. URL重写技术 通过url拼接技术,可以实现Session共享,但是该操作的性能较低.大型公司几乎不用.
解决问题:解决Cookie(4K)禁用问题!!!!但是大型公司一般不会处理Cookie禁用问题.直接影响程序性能.(友情提示)
2. 采用新SSO(单点登录)方式,解决用户共享问题
单点登录(SSO):用户登录一次,就可以访问相互信任的所有应用系统;
⑤备用机机制:正常情况下,用户不会访问备用机,当主机遇忙时,或者主机宕机时,采用访问备用机.
⑥实现tomcat高可用
说明:当某台服务器宕机时,nginx通过内部用的心跳检测机制.及时发现宕机的服务器.将该服务器做下线处理.当服务器宕机后,运维人员修复完成后Nginx通过心跳检测,自动的发现服务,加载服务项.最终实现了故障的启动迁移.
max_fails=1 人为指定最大的失败次数,当连接服务器的失败次数达到最大执行次数,则证明服务器宕机.
fail_timeout=60s 如果服务器宕机,则在指定周期内,不会再将请求发往该机器.当进入下一个周期时,会进行一次检测.如果该服务正常,则添加该服务.如果该服务没有响应.则直到下一个周期再次检测.
#配置tomcat负载均衡
upstream jt {
#ip_hash;
server localhost:8095 max_fails=1 fail_timeout=60s;
server localhost:8096 max_fails=1 fail_timeout=60s;
server localhost:8097 max_fails=1 fail_timeout=60s;
}
#编辑京淘后台管理系统
server {
listen 80;
server_name manage.jt.com;
location / {
#代表用户请求网址
#proxy_pass http://localhost:8091;
proxy_pass http://jt;
#配置服务超市时间 单位 /秒
proxy_connect_timeout 3;
proxy_read_timeout 3;
proxy_send_timeout 3;
}
}
10.虚拟机
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.
网卡介绍
以上是关于反向代理技术的主要内容,如果未能解决你的问题,请参考以下文章