珠海企业营销型网站建设公司,PPT做音乐网站介绍,珠海房地产网站建设,建设德国网站2019独角兽企业重金招聘Python工程师标准 一、高并发和高负载的约束条件 硬件部署操作系统Web 服务器PHPMySQL测试二、解决之道——硬件篇 处理能力的提升#xff1a;部署多颗CPU#xff0c;选择多核心、具备更高运算频率、更大高速缓存的CPU#xff1b; 处理… 2019独角兽企业重金招聘Python工程师标准 一、高并发和高负载的约束条件 硬件部署操作系统Web 服务器PHPMySQL测试二、解决之道——硬件篇 处理能力的提升部署多颗CPU选择多核心、具备更高运算频率、更大高速缓存的CPU 处理能力的提升最直接的反应在于Web请求的处理效率和PHP程序的执行效率。 内存带宽与容量更大的内存带宽和容量 内存带宽与容量的提升最直接的反应在于应对数据库大量的数据交换。 磁盘搜索与I/O能力选择更高的转速、更大的硬盘缓存、组件磁盘阵列RAID 磁盘搜索与I/O能力的提升最直接反应在于数据库大量的查询和读写以及文件的读写。 网络带宽的提升可考虑的因素包括 更大带宽、多线路接入、独享带宽 服务器在大负载的情况下对网络带宽的占用是十分可观的。 策略硬件设施是应对大负载的基础硬件设施的投入可根据实际压力和预算量力而行。 三、解决之道——部署篇 3.1、服务器分离 32、数据库集群和库表散列 3.3、镜像 3.4、负载均衡 分类 1)、DNS轮循 2代理服务器负载均衡 3地址转换网关负载均衡 4NAT负载均衡 5反向代理负载均衡 6混合型负载均衡 策略根据硬件投入和业务需求选择合理的部署方案。 部署方案1 适用范围静态内容为主体的网站和应用系统对系统安全要求较高的网站和应用系统。 Main Server主服务器 承载程序的主体运行压力处理网站或应用系统中的动态请求 将静态页面推送至多个发布服务器 将附件文件推送至文件服务器 安全要求较高以静态为主的网站可将服务器置于内网屏蔽外网的访问。 DB Server数据库服务器 承载数据库读写压力 只与主服务器进行数据量交换屏蔽外网访问。 File/Video Server文件/视频服务器 承载系统中占用系统资源和带宽资源较大的数据流 作为大附件的存储和读写仓库 作为视频服务器将具备视频自动处理能力。 发布服务器组 只负责静态页面的发布承载绝大多数的Web请求 通过Nginx进行负载均衡部署。 部署方案2 适用范围以动态交互内容为主体的网站或应用系统负载压力较大且预算比较充足的网站或应用系统 Web服务器组 Web服务无主从关系属平行冗余设计 通过前端负载均衡设备或Nginx反向代理实现负载均衡 划分专用文件服务器/视频服务器有效分离轻/重总线 每台Web服务器可通过DEC可实现连接所有数据库同时划分主从。 数据库服务器组 相对均衡的承载数据库读写压力 通过数据库物理文件的映射实现多数据库的数据同步。 共享磁盘/磁盘阵列 将用于数据物理文件的统一读写 用于大型附件的存储仓库 通过自身物理磁盘的均衡和冗余确保整体系统的IO效率和数据安全 方案特性 通过前端负载均衡合理分配Web压力 通过文件/视频服务器与常规Web服务器的分离合理分配轻重数据流 通过数据库服务器组合理分配数据库IO压力 每台Web服务器通常只连接一台数据库服务器通过DEC的心跳检测可在极短时间内自动切换至冗余数据库服务器 磁盘阵列的引入大幅提升系统IO效率的同时极大增强了数据安全性。 四、解决之道——环境篇 41、操作系统 操作系统的选择关注点在于 •是否适应于搭建SiteEngine所需要的环境程序 •系统本身占用的资源比 •系统安全性 •系统是否易于操作 策略我们选择FreeBSD而且是最小化安装以后的FreeBSD。 4.2、Web服务器 Web服务器很大一部分资源占用来自于处理Web请求通常情况下这也就是Apache产生的压力Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。 在高并发连接的情况下Nginx是Apache服务器不错的替代品。Nginx (“engine x”) 是俄罗斯人编写的一款高性能的 HTTP 和反向代理服务器。在国内已经有新浪、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、 频道使用 Nginx 服务器。 Nginx的优势 高并发连接官方测试能够支撑5万并发连接在实际生产环境中跑到23万并发连接数。 内存消耗少在3万并发连接下开启的10个Nginx 进程才消耗150M内存15M*10150M。 内置的健康检查功能如果 Nginx Proxy 后端的某台 Web 服务器宕机了不会影响前端访问。 策略相对于老牌的Apache我们选择Lighttpd和Nginx这些具有更小的资源占用率和更高的负载能力的web服务器。 4.3、Mysql MySQL本身具备了很强的负载能力MySQL优化是一项很复杂的工作因为这最终需要对系统优化的很好理解。数据库工作就是大量的、短时的查询 和读写除了程序开发时需要注意建立索引、提高查询效率等软件开发技巧之外从硬件设施的角度影响MySQL执行效率最主要来自于磁盘搜索、磁盘IO水 平、CPU周期、内存带宽。 根据服务器上的硬件和软件条件进行MySQl优化。MySQL优化的核心在于系统资源的分配这不等于无限制的给MySQL分配更多的资源。 在MySQL配置文件中最值得关注的参数 l 改变索引缓冲区长度(key_buffer) l 改变表长(read_buffer_size) l 设定打开表的数目的最大值(table_cache) l 对缓长查询设定一个时间限制(long_query_time) 如果条件允许 一般MySQL服务器安装在Linux操作系统中而不是安装在FreeBSD中。 策略 MySQL优化需要根据业务系统的数据库读写特性和服务器硬件配置制定不同的优化方案并且可以根据需要部署MySQL的主从结构。 4.4、PHP 1、加载尽可能少的模块 2、安装加速器都是通过缓存php代码预编译的结果和数据库结果来提高php代码的执行速度 eAccelerator eAccelerator是一个自由开放源码php加速器优化和动态内容缓存提高了性能php脚本的缓存性能使得PHP脚本在编译的状态下对服务器的开销几乎完全消除。 Apc Alternative PHP CacheAPC是 PHP 的一个免费公开的优化代码缓存。它用来提供免费公开并且强健的架构来缓存和优化 PHP 的中间代码。 memcache memcache是由Danga Interactive开发的高性能的分布式的内存对象缓存系统用于在动态应用中减少数据库负载提升访问速度。主要机制是通过在内存里维护一个统 一的巨大的hash表Memcache能够用来存储各种格式的数据包括图像、视频、文件以及数据库检索的结果等 策略 为PHP安装加速器。 4.5、代理服务器缓存服务器 Squid Cache简称为Squid是一个流行的自由软件GNU通用公共许可证的代理服务器和Web缓存服务器。Squid有广泛的用途从作为网页服务 器的前置cache服务器缓存相关请求来提高Web服务器的速度到为一组人共享网络资源而缓存万维网域名系统和其他网络搜索到通过过滤流量帮助网络 安全到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。 策略安装Squid 反向代理服务器能够大幅度提高服务器效率。 5、解决之道——SiteEngine篇 SiteEngine网站引擎是指针对应用系统程序的架构设计的一套程序化语言框架。目前最主流的是基于多层架构分级处理模块化设计的框架支持mvc动态页面展示核心程序分层处理增加静态化引擎借助ajax 异步高效处理请求。 6、解决之道——测试篇 6.1、测试方法 6.2、测试用例 6.3、压力测试 压力测试是一种基本的质量保证行为它是每个重要软件测试工作的一部分。压力测试的基本思路很简单不是在常规条件下运行手动或自动测试而是在计 算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测试。 压力测试工具webbenchApacheBench等 6.4、漏洞测试 在我们的系统中漏洞主要包括sql注入漏洞xss跨站脚本攻击等。安全方面还包括系统软件如操作系统漏洞mysql、apache等的漏洞一般可以通过升级来解决。 转载于:https://my.oschina.net/angelangel/blog/338456