当访问网站的用户增加很多的时候,带来的最大问题就是高并发,就会导致服务器直接崩溃,并不是说服务器性能太差,而是服务器没有做好优化,导致资源不能充分利用。
高并发场景建议使用Nginx服务器,Nginx的设置比较简单,而且可以单独设置某个站点的并发数量,非常人性化。另外服务器遭到CC攻击,大量的代理IP并发访问,也会导致服务器崩溃。我们可以安装免费的OpenRASP管理器和免费版Nginx防火墙,可以成功拦截CC攻击。文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
Linux服务器高并发优化方案文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
1、设置Swap虚拟内存
swap 是 Linux 系统的虚拟内存,客户访问网站实际是通过内存执行,云服务器内存有限,大流量访问会导致内存不足。为解决该问题,当物理内存不足时,系统就会自动调用硬盘来充当内存,以弥补内存的紧缺,这就是虚拟内存的作用。现在的云服务器大多都是 kvm 虚拟架构的,开启虚拟内存就更有必要( OVZ虚拟架构机器不可用此功能 )。当然如果内存32G以上就不用考虑开启 swap 了。文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
开启方法:文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
在宝塔软件商店安装Linux 工具箱,然后在 Linux 工具箱窗口点击左侧的【 Swap/虚拟内存 】,填写 Swap 虚拟内存 大小,然后点击【确定】。宝塔官方建议 swap 容量在真实内存容量的1.5倍左右,若您的服务器内存大于4GB,可设 1-2GB 的固定值。(1GB=1024MB)文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
2、添加计划任务释放内存
释放内存就是将驻留在内存中的数据从内存中释放出来,提高内存资源的利用率,提升云服务器性能。宝塔面板已经考虑到了内存释放的问题,可以添加内存释放计划任务,让服务器每天或每周释放一次,释放PHP、MYSQL、PURE-FTPD、APACHE、NGINX的内存占用,建议在每天半夜执行,间隔时间根据自己网站的用户量及内存占用百分比来定。文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
释放方法:文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
宝塔面板点击左侧导航的【 计划任务 】,选择任务类型为释放内存,根据自己需要设置执行周期和执行时间,然后点击确定即可。文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
文章源自SEO视频网-https://www.seoshipin.cn/wzyunying/4695.html
3、使用PHP 缓存扩展
常用的 PHP缓存插件有 Opcache 脚本缓存、Memcached 缓存和 redis 内容缓存。我们可以通过安装缓存插件来提升服务器的运行效率。缓存插件安装完成后,网站也需要进行相应的缓存配置,一般在站点文件的配置文件中修改,使用缓存可以有效减轻数据库查询压力,也可以提升网站的访问速度。
opcache、xcache、apc 等脚本缓存扩展,建议只安装其中一个,否则可能导致您的站点程序异常。但是 Memcached 和 redis 这两个内容缓存我们可以同时安装。切记,缓存扩展也并不是越多越好,凡事都得有个度,超过这个度,反而会拖慢 php 的执行效率。
安装方法:
登录宝塔面板,进入已安装PHP版本的管理界面,在管理界面左侧的【 安装扩展 】,选择您需要的缓存插件进行安装。
4、PHP配置优化和性能调整(并发)
(1)部分网站或者系统在运行的时候本身比较耗费内存,memory_limit 用来设置脚本内存的临界点,如果运行过程中脚本内存达到了临界点就会出现报错,但也不是说设置的越大越好,原则上脚本内存的设置不要超过云服务器的物理内存, 否则可能会导致启用磁盘 swap,服务器资源耗尽,最后死机。
配置修改:登录宝塔面板,进入已安装PHP版本的管理界面,在管理界面左侧的【 配置修改 】里,把 memory_limit 脚本内存限制修改成 256M(默认是128M),然后保存即可。
(2)并发量和日访问量是两个概念,所谓并发可以简单理解为同一秒访问网站的客户数量,假设并发设置为50(即每秒同时访问50次),那么 1 分钟就可以有 3000 的访问量。但也不是说并发设置的越大就越好,如果并发数设置过大,被 CC 攻击时服务器宕机挂掉的可能性也十分的高,建议并发数设置不要超过 300
性能调整:php的并发调整是优化中至关重要的环节,宝塔面板里面自带了几个并发优化方案,一般 4 核 8G 内存的云服务器,设置 30 并发或 50 并发就可以。
5、MySQL数据库 性能优化
服务器性能开销最大的是数据库开销,通过上述各项优化后,还远远不能承受高并发大流量的站点访问,我们需要对 MySQL 进行性能优化。宝塔面板非常人性化,内置了数据库性能优化方案,我们只需要鼠标轻点即可完成。进行性能一键优化后,保存并重启数据库,然后在当前状态进行观察,根据建议做适当的调整。
设置方法:登录宝塔面板,,进入已安装MySQL版本的管理界面,左侧的 【 性能调整 】,根据您的服务器配置选择优化方案,然后先保存再重启数据库即可。
6、Session 存储设置
Session 称为会话信息,位于web服务器上,主要负责访问者与网站之间的交互,当访问浏览器请求 http 地址时,将传递到web服务器上并与访问信息进行匹配,宝塔默认 Session 保存在指定的文件夹中,当用户访问时要从文件中检索 Session ID ,效率不高,宝塔面板可以把 Session 存储位置修改到 redis ,提高会话信息检索效率,减少响应时间。
设置方法:
(1)软件商店里安装Redis。
(2)PHP扩展安装redis插件。
(3)打开 redis 设置窗口,再点击 redis 窗口的左侧【性能调整】,在 requirepass 一栏输入密码,这个密码自己设置,越复杂越好,设置完成后复制你设置的密码,然后点击【保存】。
(4)打开 php 管理窗口,再点击 php 管理窗口左侧的 【 Session设置 】,存储模式切换成redis,然后在密码位置粘贴上一步复制的密码,然后点击保存。
7、安装防火墙插件
(1)在宝塔的软件商店,搜索防火墙,安装Nginx免费防火墙插件,安装成功后启用就行了。
注意:如果不需要国外用户访问,可以启用禁止海外访问,禁止中国大陆以外的地区访问站点
(2)在宝塔的软件商店,搜索OpenRASP,插件安装成功后,点击设置,安装网站对应的PHP版本。
如果使用当中出现问题可以卸载,或者关闭。在使用过程中,高并发的网站,建议不使用。
百度OpenRASP 抛弃了传统防火墙依赖请求特征检测攻击的模式,创造性的使用RASP技术(应用运行时自我保护),直接注入到被保护应用的服务中提供函数级别的实时防护,可以在不更新策略以及不升级被保护应用代码的情况下检测/防护未知漏洞,尤其适合大量使用开源组件的互联网应用以及使用第三方集成商开发的金融类应用。
评论