浅谈大并发架构

演变

  • 单机架构:LNMP、LAMP、WAMP

  • 性能优化:动静分离、数据库独立、数据库读写分离、负载均衡、双活技术、数据库中间件、缓存、搜索

    动静分离:静态请求速度很快,而动态请求比较慢,因此可以单独将动态请求的处理独立一台服务器。
    数据库独立:跟多时候,数据库是服务器的性能瓶颈,因此将数据库独立出来一台服务器。
    读写分离:当一台数据库服务器负载受限时,可以将读(查询)和写(增删改)的操作分别在两台服务器上完成。
    负载均衡:一台服务器已经不能搞定,需要多台服务器,因此需要一台作为任务分发工作的服务器。
    session共享:可以在负载均衡中使用ip_hash算法,也可以搭建专门的session服务器(nfs/memcache/redis)
    双活技术:万一负载均衡服务器挂了,所以需要搞一台备用,主备使用keepalived技术保持心跳,随时待命
    数据库中间件:当数据的读写操作收到限制性(数表特别大),可以分库分表分机器等手段以提高效率
    缓存:可以保存session,甚至可以保存使用频率较高的数据库中的数据
    搜索:当数据量特变大的时候,使用link命令,可以单独整一台搜索服务器(xunsearch)
    CDN:内容分发网络
    DNS负载均衡:在DNS解析时,一个域名解析到不同的负载均衡服务器

代理服务

  • 正向代理:你上网的时候,请求网页不是和真实网站进行通讯,而是将请求发给代理服务器,代理服务器请求真实的服务器,然后将数据返回给你。在网站看来,代理服务器就是一个普通的客户端,对网站是透明的。

    如:翻墙、…

  • 反向代理:原理和正向代理一样,也是直接请求代理服务器,然后代理服务器请求真实服务器并返回数据。在用户看来,请求代理服务器就像是在请求真实服务器一样,在用户来代理服务器是透明的。

    如:防火墙、…

反向代理

  • 配置步骤:

    1. 代理服务器(nginx)

      upstream apachephp{
           server 真实服务器IP:80; #Apache
      }
      
      server {
           listen 80;
           server_name  www.daili.com;    #域名需要解析
      
           location / {
                   proxy_pass  http://apachephp;
      
                   #Proxy Settings
                   proxy_redirect     off;
                   proxy_set_header   Host             $host;
                   #传递真实的用户IP
                   proxy_set_header   X-Real-IP        $remote_addr;
                   proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                   proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
                   proxy_max_temp_file_size   0;
                   proxy_connect_timeout      90;
                   proxy_send_timeout         90;
                   proxy_read_timeout         90;
                   proxy_buffer_size          4k;
                   proxy_buffers              4 32k;
                   proxy_busy_buffers_size    64k;
                   proxy_temp_file_write_size 64k;
           }            
      } 
    2. 真实的服务

      1.可以是Wampserver
      2.也可以是搭建好lnmp环境的主机
  • eg:

    1.在真实服务器上写内容,访问代理服务器(域名需要解析)即可

    2.用户真实的IP($_SERVER[‘REMOTE_ADDR’])会被代理服务器替换

    3.用户真实的IP需要代理服务器传递过去,保存在:$_SERVER['HTTP_X_REAL_IP']
    $_SERVER['HTTP_X_FORWARDED_FOR']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值