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設定實例。

這篇文章再來分享一下網站優化加速方法:開啟TLSV1.3和Brotli壓縮。相對於TLSV1.2,TLSV1.3主要是減少握手延遲,提高跨協定攻擊的難度,使網路更快,更安全。 Brotli是由Google開發的壓縮演算法,與其他壓縮演算法相比,它有著更高的壓縮效率。

一般來說我們的VPS主機已經預設開啟了GZIP壓縮了,而Brotli與GZIP可以同時共存,當同時開啟兩種壓縮演算法時,Brotli 壓縮等級優先權高於 Gzip。 實際上,最新版的寶塔BT面板、Oneinstack和LNMP都已經預設可以開啟TLSV1.3,各大面板使用:伺服器控制面板清單。

Linux掛載硬碟擴容方法-阿里雲,騰訊雲與Linode VPS掛載硬碟擴容

如果你是在經典VPS這樣的採用WHMCS+VPS管理平台架構的主機商那裡,那麼擴容硬碟就需要自己升級整個VPS主機方案了。但如果是在Linode、阿里雲以及騰訊雲等這樣的雲端主機商那裡購買的VPS主機,那麼當硬碟滿了之後都是支援單獨擴容硬碟。

硬碟掛載還有一個好處就是可以將資料存放在可掛載的硬碟,當你更換VPS主機時可以先從原VPS主機卸載掉硬碟,然後重新在新的VPS主機上掛載,這樣原來存放在硬碟中的資料依然在新的VPS主機保留下來了,這個特別有利於大儲存網站的遷移。

這裡我們就來分享一下Linode、阿里雲以及騰訊雲VPS主機掛載硬碟的方法,由於在掛載硬碟之前一般要對硬碟進行格式化,所以建議在掛載硬碟之前一定對自己的網站做好備份工作,Linode、阿里雲和騰訊雲都是自備快照功能,在掛載硬碟前可以先建立一個快照。

Linux掛載硬碟擴容方法-阿里雲,騰訊雲,Linode掛載硬碟擴容方法

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

這篇文章就來分享如何在獨立伺服器綁定多個IP位址,以及SolusVM添加多個IP位址的方法,更多的關於獨立伺服器的相關教學還有(找VPS的朋友可以看我的專題: VPS主機排行榜單):

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……總得來說,安裝了快取插件後提速還是有效果的,但也帶來了不少的問題。

例如配置複雜、生成規則、外掛衝突以及無法應對突發流量,也就是說使用快取外掛程式還是無法達到應對大流量衝擊的情況。最後,在朋友的推薦下啟用了Nginx fastcgi_cache緩存,直接使用Nginx為頁面生成緩存,效率比使用PHP緩存插件要高得多,特別適合小配置的VPS上使用。

網站屏蔽和阻止特定地區和國家的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訪問;也可設置密鑰登錄,禁止密碼登錄,這樣破解者就「無門可入」了。

當然,有經驗的朋友還可以直接關閉S-S-H登錄,如果已經安裝了像寶塔BT面板WDCP面板,則可以直接在面板的後台選擇關閉S-S-H,或者手動關閉它們。有些商家例如阿里雲、騰訊雲等還自帶了安全組,你也可以在安全組中選擇臨時屏蔽22等端口,等到自己要用的時候再手動去開啟端口,雖然有點麻煩,但是卻是比較簡單方便的方法。

八個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與SS​​L增加的伺服器開銷基本上沒有感覺到,這是因為網站的流量比較少,加上伺服器的效能配置足以支撐起當前的流量。但對於大型的網站,例如百度、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問題。

訂閱@標題