web服务器搭建完整教程:零基础快速部署网站的详细步骤

深夜改完客戶的DDoS防護方案,順手翻到幾篇「五分鐘架站教程」,看得我太陽穴直跳。那些教程要麼跳過關鍵安全設定,要麼把CDN配置說得像點外賣一樣簡單。乾脆自己寫篇帶血的實戰指南,從挑主機到扛攻擊,把這些年踩過的坑一次攤開講。

選主機別只盯著價格看頻寬。香港輕量雲主機1核1G月付30港幣看似便宜,但突發流量能直接打掛CPU。真心話:新手寧可多花點選Linode或Vultr的中階方案,帶自動備份和抗基礎DDoS那種。去年有客戶貪便宜用野雞主機,被50Mbps的SYN Flood直接灌癱,資料都沒撈回來。

系統裝Ubuntu 22.04 LTS時有個魔鬼細節:分區別手賤選全盤加密。曾遠程幫人救火,硬盤故障後連急救模式都進不去。Swap空間設實體記憶體的1.5倍只是起點,若是數據庫主機建議直接關Swap用記憶體優化。

終端機敲更新指令時順手做三件事:sudo ufw allow 7822(把SSH端口從22改成冷門端口),sudo adduser deploy --gecos \"\"(創建部署專用帳號),最後sudo visudo 在%sudo ALL下面加一行deploy ALL=(ALL) NOPASSWD: /usr/bin/apt update,/usr/bin/systemctl reload nginx(精細化授權)。見過太多人用root跑腳本,一鍵包漏洞直接送全家桶。

Nginx配置檔/etc/nginx/nginx.conf 別直接改,在sites-available 新建conf檔。重點參數:client_max_body_size 100M;(防大文件上傳卡死)、keepalive_timeout 30;(防CC攻擊耗盡連接)、server_tokens off;(隱藏版本號)。啟用Gzip時記得排除圖片,我曾調試兩小時才發現客戶的JPG被壓成糊塊。

防火牆UFW不是開了就行。sudo ufw limit 7822/tcp 限制SSH爆破,sudo ufw deny out 25 阻斷垃圾郵件端口。雲廠商控制台的安全組更要雙重確認——有次阿里雲機器被挖礦,查半天竟是安全組開了2375 Docker端口。

域名解析的坑多到能寫書。A記錄@和www別忘綁同IP,TTL值設300秒別偷懶用86400。SSL用Let\’s Encrypt免費證書時,certbot --nginx -d example.com -d www.example.com 記得綁雙域名,否則www開頭報隱私錯誤。見過客戶花錢買商業證書卻漏綁www,Chrome照樣顯示不安全。

上CDN絕不是填個域名就完事。在Cloudflare後台把「SSL/TLS加密模式」改成完全(嚴格),回源協議選HTTPS。緩存規則務必設置.html文件不緩存,wp-admin目錄直接繞過CDN。去年某電商促銷時,因CDN緩存了購物車頁面,用戶下單全顯示缺貨。

最後壓上三道保險:crontab -e 添加0 3 * certbot renew --quiet(自動續期SSL),安裝fail2ban 並修改/etc/fail2ban/jail.localbantime = 72h(拉黑爆破IP),再裝clamav 定期掃描上傳目錄。別笑,上週才清掉客戶網站裡藏著的Webshell後門。

當Nginx狀態頁顯示活躍連接數穩定,CDN緩存命中率衝上90%,那種安全感比什麼都踏實。服務器這東西就像懸崖邊蓋房子,少一根鋼筋都可能萬劫不復。

評論:

  • 用輕量雲跑WordPress+Woocommerce,訂單多時常502怎麼辦?
  • 照着做到Nginx重啟那步報錯「nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)」,端口沒佔用啊
  • 求問香港主機+美國CDN的方案,延遲反而比直連更高可能什麼原因?
  • 個人部落格有必要上CDN嗎?每天不到100訪問量
  • Fail2ban監控日誌裡出現大量Cloudflare IP被禁,是設定錯了嗎?
  • Leave a comment

    您的邮箱地址不会被公开。 必填项已用 * 标注