服务器如何配置网站运行环境:Nginx+PHP+MySQL实战指南
記得剛入行CDN行業時,我接手過一個客戶的網站,因為伺服器環境配置不當,導致整個站點在流量高峰時崩潰。那時才深刻體會到,Nginx、PHP和MySQL的正確設定有多關鍵。這些年跑遍全球CDN服務商像Cloudflare、Akamai的實戰經驗,讓我學會了如何把基礎配置和安全防護結合,避免那些痛點。今天,就來聊聊怎麼一步步搭建這個環境,順便分享些容易被忽略的細節。
先從伺服器選擇說起,我用Ubuntu 22.04當示範,因為它穩定又支援新功能。安裝Nginx很簡單,但別急著啟動,記得檢查防火牆設定。開終端機輸入sudo apt update && sudo apt install nginx,然後用ufw allow \’Nginx Full\’打開埠口。這裡有個小陷阱,很多人忘了綁定SSL證書,結果被中間人攻擊。我習慣用Let\’s Encrypt免費證書,跑certbot –nginx命令自動配置,這樣HTTP/2一啟用,網站速度就飛起來了。
PHP部分,別再用老舊的版本了,PHP 8.2效能和安全都好很多。裝上PHP-FPM(sudo apt install php-fpm),重點在於和Nginx的整合。編輯Nginx的設定檔(通常/etc/nginx/sites-available/default),在server區塊加入location ~ \\.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; }。記得調整php.ini裡的max_execution_time和memory_limit,避免腳本超時卡死。實戰中,我遇過PHP緩存沒設好,網站負載一高就掛,建議裝個OPcache來加速。
MySQL安裝相對直觀,sudo apt install mysql-server後,跑mysql_secure_installation強化安全。這裡的雷區是權限設定—別用root帳號跑網站!新建一個資料庫用戶,權限只給必要的CREATE和SELECT。例如CREATE USER \’webuser\’@\’localhost\’ IDENTIFIED BY \’強密碼\’; GRANT ALL PRIVILEGES ON webdb.* TO \’webuser\’@\’localhost\’;。順便提防SQL注入,在PHP腳本裡用PDO或mysqli預處理語句,這點在CDN環境下更關鍵,因為攻擊常從邊緣節點滲入。
安全優化不能馬虎。Nginx設定裡,加個server_tokens off;隱藏版本號,減少資訊洩漏風險。防火牆規則要鎖死,只開80、443埠。MySQL方面,定期跑mysqlcheck修復表,並啟用慢查詢日誌監控效能。DDOS防護上,我習慣結合CDN服務,像Cloudflare的WAF規則,能自動過濾惡意流量。實測過,單靠伺服器防火牆擋不住大規模攻擊,CDN的緩存層分擔了壓力,響應時間降了50%以上。
最後,測試環境是否正常。創個簡單的info.php檔,寫入,瀏覽器打開看看。再連MySQL創個測試表,確認PHP能讀寫資料。記得備份設定檔,萬一出錯能快速回滾。這些步驟看似基礎,但實戰中細節決定成敗。尤其當你整合CDN時,先在本地調好,再推上CDN節點,避免配置衝突。希望這篇指南幫你少走彎路,有問題隨時留言討論。
評論: