Linux的php-fpm优化心得-php-fpm进程占用内存大和不释放内存问题

最近发现博客的内存老是隔三差五地被“吃掉”了,登录到后台后偶尔会出卡顿的情况,一开始怀疑是Swap不够导致的,于是给VPS主机增加了几个G的Swap,观察了一段时间后发现再大的Swap也被慢慢地“吃掉”了!

很显然是PHP某些服务一直在占用着VPS的内存没有释放,导致物理内存耗尽后调用了Swap,显然Swap没有物理内存运行的效率高,于是就出现了进程卡死的情况了。考虑到挖站否现在用的Wordpress用的主题与插件过多,出现这样的情况也是正常。

LNMP架构中PHP是运行在FastCGI模式下,按照官方的说法,php-cgi会在每个请求结束的时候会回收脚本使用的全部内存,但是并不会释放给操作系统,而是继续持有以应对下一次PHP请求。而php-fpm是FastCGI进程管理器,用于控制php的内存和进程等。

Linux的php-fpm优化心得-php-fpm进程占用内存大和不释放内存

网站优化加速-开启TLSV1.3和Brotli压缩-Oneinstack,LNMP,宝塔面板

网站放在国外,所以一直想着如何最大限度地加快网页的打开速度。之前使用了阿里云香港VPS主机,速度倒是挺快的,但是经常有同学向我反映打不开,或者是陆续访问不了。经过排查确定是问题出在SSL握手阶段,于是换到CN2 GIA VPS

虽然是用的是CN2 GIA VPS,速度也感觉挺快的,但是毕竟距离远,仅从线路来讲反应速度还是稍微慢了一些,尤其是Wordpress,运行还是比较消耗主机资源的。于是先从缓存入手,启用了Nginx缓存:Nginx fastcgi_cache缓存加速方法-Nginx配置实例

Linux挂载硬盘扩容方法-阿里云,腾讯云和Linode VPS挂载硬盘扩容

如果你是在经典VPS这样的采用WHMCS+VPS管理平台架构的主机商那里,那么扩容硬盘就需要自己升级整个VPS主机套餐了。但是如果是在Linode、阿里云以及腾讯云等这样的云主机商那里购买的VPS主机,那么当硬盘满了之后都是支持单独扩容硬盘。

硬盘挂载还有一个好处就是可以将数据存放在可挂载的硬盘,当你更换VPS主机时可以先从原VPS主机上卸载掉硬盘,然后重新在新的VPS主机上挂载,这样原来存放在硬盘中的数据依然在新的VPS主机保留下来了,这个特别有利于大存储网站的迁移。

VPS主机,独立服务器绑定多个IP和SolusVM添加多个IP地址IP段方法

独立服务器可以绑定多个IP,而且一般购买独立服务器时商家都会送2-5个IP地址,对于多站点来讲独立IP地址还是非常有利于SEO的。当然,独立服务器用于建站实在是浪费了,我们可以将独立服务器虚拟成VPS主机,这样让更多人使用。

独立服务器绑定多个IP和SolusVM添加多个IP地址,如果严格来讲应该是两回事。如果你发现SolusVM创建的VPS主机分配的IP地址网络不通,可能检查一下有没有把其它的IP地址绑定到了服务器的网卡上,一个IP只能给一个服务器用,否则就会冲突。

VPS主机,独立服务器绑定多个IP以及SolusVM添加多个IP地址方法-网卡配置多IP

WordPress开启Nginx fastcgi_cache缓存加速方法-Nginx配置实例

使用WordPress建站的过程中,对于优化Wordpress性能、加快网站访问速度这一环节走了不少的“弯路”。当网站出现访问缓慢、CPU内存耗尽的情形时,最开始想到的是升级服务器配置,后来发现有些无良的VPS商家背后限制资源严重,加钱升级真的很伤人。

最大的体会就是同样的配置,在不同的VPS商家那里跑同一个网站,在同样的流量情况下,居然一个顺畅而另一个卡顿,这个给我最大的感受就是在购买VPS之前一定要看看别人的评测,尤其是VPS主机性能评测这一块,一定要仔细对比,否则容易花不少冤枉钱。

后来给Wordpress做优化时,关注在页面缓存上,之前用过的缓存插件包括但不限于WordPress Super Cache、WP Fastest Cache、W3 Total Cache、cos-html-cache、Cachify……总得来说,安装了缓存插件后提速还是有效果的,但是也带来了不少的问题。

网站屏蔽和阻止特定地区和国家的IP访问设置方法-PHP代码/Nginx/WordPress设置

有不少的朋友搭建了外贸站的朋友想要限制自己的网站不让国内的IP访问,也有一些朋友网站存放的资源可能因为各种原因需要阻止特定的IP访问,还有一些朋友看到攻击源IP大部分来自国外,想要阻止国外的IP访问网站。

无论是出于什么原因,屏蔽和阻止特定地区和国家的IP访问都是我们日常建站中经常要用到的。如果你用的是PHP,比较简单的方法就是在PHP文件加入判断IP的代码,利用IP库进行比对,如果IP为限定访问范围内,则阻止其继续访问。

如果网站是Nginx,则可以直接使用Nginx-ngx_http_geoip_module模块,该模块可以精确到国家、省、市等一级的IP,并且全部由Nginx执行识别和阻止访问,所以相对于PHP来说比较省资源,但是Nginx编译起来比较费事。

如果网站是搭建在VPS或者独立服务器上,那么可以直接使用Linux防火墙,利用iptables规则来阻止特定国家和省份的IP访问。当是,Wordpress用户完全不用担心Nginx、iptables等配置的问题,因为Wordpress早就有了各种限制IP访问的插件了。

Linux系统磁盘空间占满的解决方法-No Space Left on Device错误

关于Linux磁盘被占满的问题,之前在使用WDCP面板时有遇到过,因为在面板后台开启了网站日志,但是日志没有定期删除,长此以往导致了VPS主机的磁盘空间被日志占满了。当磁盘空间达到100%时,网站就会出现一些莫名的错误,例如后台无法登录,无法评论以及页面空白等等。

不过最近在维护网络监控平台ping.wzfou.com时,发现磁盘空间还有不少,但是日志中依然报No Space Left on Device错误。经过排查,终于发现是Linux磁盘的inode被用完了,导致网站无法继续写入新的数据,最终的后台就是Smokeping也运行不正常,报表都无法显示。

不管是磁盘空间还有磁盘的inode空间,只要是被占用满了都会造成网站的不稳定。有时候我们可能没有怀疑到这一点,可能还会去寻找其它的问题。磁盘被占满最严重可能还会导致S#S¥H也无法进入,这时需要我们从VPS面板中执行释放磁盘空间的相关操作了。

VPS主机和服务器安全防护:SSH修改端口,添加白名单,仅限密钥登录

最近有朋友在使用其云否主机时,发现SSH一直在被人暴力扫描,虽然说SSH账号和密码始终没有被猜出来,但是老是被人盯着恐怕迟早要出事。于我帮他设置了S-S-H登录白名单,即只允许自己的IP登录访问,其它的IP一概拒绝。

其实,要保证S-S-H不被破解,最简单的方法就是修改默认的22端口,例如我们用的经典VPS,VPS在创建时就默认修改了22端口。最彻底的方法,是禁止使用账号密码登录,而是改用密钥登录,只要保证密钥安全,服务器也没有人能进入了。

本篇文章就来分享一下Linux VPS主机和服务器安全防护一些基本的方法,例如修改SSH的端口;给SSH登录添加白名单,仅允许自己的IP访问;也可设置密钥登录,禁止密码登录,这样破解者就“无门可入”了。

八个HTTPS和SSL优化使用心得-减少等待时间和降低Https性能损耗

随着大家上网安全意识的增强,以及各大主要互联网公司对Https普及工作的推动,HTTPS SSL现在基本上成了建站的标配了。得益于Let’s Encrypt、Digicert、TrustAsia、Symantec等提供的免费SSL证书,现在不管是个人建站还是企业建站,上Https的成本可以忽略不计了。

为了安全,我们要上Https,但是开启 SSL 会增加内存、CPU、网络带宽的开销。相对于http,使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,一共是12个包。所以,HTTPS优化得不少反而容易出现性能慢的问题。

当然,有人可能为会认为HTTPS与SSL增加的服务器开销基本上没有感觉到,这是因为网站的流量比较少,加上服务器的性能配置足以支撑起当前的流量。但是对于大型的网站,例如百度、Google以及热门APP,优化Https性能,减少资源消耗还是非常有用的。

破除MySQL打开的文件描述符限制-数据库Too many open files问题

由于挖站否免费CN2空间用户增多,近期总是出现半夜Mysql进程挂掉的情况,查询了一下Mysql的错误日志,提示有:[ERROR] Error in accept: Too many open files,原来是因为open files不足导致数据库挂掉了,尤其是晚上DirectAdmin系统备份时更是如此。

Linux系统默认的opens file是1024,可以使用ulimit -a 查看,这个是系统级的限制,另外在mysql中默认的open files也是1024,很多时候这个数值无法满足我们的建站需要,尤其是一个大型的网站和巨大型的数据库中心,很容易就会出现Too many open files问题。

订阅 服务器优化