反向代理技术

Posted 人木青子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反向代理技术相关的知识,希望对你有一定的参考价值。

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 反向代理技术

  1. 业务需求:文件上传后保存到真实的磁盘中,有真实的磁盘路径.但是其他用户不能通过真实的磁盘路径访问我们的图片.

    反向代理技术

     (在E盘下存在jt-upload文件夹,文件夹里面存在一张图片文件)

  2. 能否给用户一个虚拟路径.这个虚拟的路径与真实的路径有一种映射关系.可以通过客户端去访问该虚拟路径,进而由虚拟路径去访问具体的磁盘路径,这样才可以访问到具体的磁盘资源.

    反向代理技术

  3. 修改Hosts文件:当程序中需要使用某个域名时,或者转向时,可以修改Hosts文件


    反向代理技术

  4. 使用工具编辑Hosts(SwitchHosts)

    反向代理技术

    [通过+可以新增转向,左侧配置本地ip,右侧配置访问域名,通过√可以生效当前hosts配置,如果涉及权限,则需要设置hosts中的user权限]

  5. 反向代理技术

反向代理:用户发起请求.由代理服务器代替用户去请求真实的资源.最终将数据返回给用户的过程称之为反向代理.

反向代理技术

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.虚拟机     

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.

网卡介绍


以上是关于反向代理技术的主要内容,如果未能解决你的问题,请参考以下文章

通俗易懂正向代理与反向代理的技术原理与使用场景

技术干货Nginx配置反向代理

分解正向代理反向代理透明代理

图解正向代理反向代理透明代理

express反向代理

图解正向代理反向代理透明代理