器購(gòu)買與Nginx部署全流程:從零搭建你的第一個(gè)網(wǎng)站)
如果你和我一樣第一次開(kāi)始“網(wǎng)站部署”這個(gè)任務(wù)時(shí)最先卡住的環(huán)節(jié)往往不是代碼而是那一臺(tái)服務(wù)器到底在哪買、買什么配置、買回來(lái)之后第一件事做什么。我當(dāng)年在云平臺(tái)的控制臺(tái)里把產(chǎn)品頁(yè)翻來(lái)覆去看了好幾遍下單前光是選規(guī)格就猶豫了一個(gè)下午買完之后又發(fā)現(xiàn)網(wǎng)頁(yè)怎么都打不開(kāi)最后排查半天才知道是安全組沒(méi)放行80端口。這篇教程就是網(wǎng)站部署系列的第一篇記錄云服務(wù)器的購(gòu)買和簡(jiǎn)單部署流程以國(guó)內(nèi)某主流云平臺(tái)為例。跟著做你能從零擁有一臺(tái)可以對(duì)外提供網(wǎng)頁(yè)服務(wù)的服務(wù)器并且用IP地址在瀏覽器里訪問(wèn)到自己部署的頁(yè)面。這臺(tái)服務(wù)器能做什么它可以跑個(gè)人博客、企業(yè)官網(wǎng)、小程序后端、學(xué)習(xí)環(huán)境也可以只是當(dāng)作一臺(tái)隨時(shí)可以折騰的Linux機(jī)器。文章適合完全沒(méi)有云服務(wù)器基礎(chǔ)的人我會(huì)盡量把每一個(gè)按鈕和命令都寫清楚順便講清楚“為什么這么操作”而不是只給步驟。畢竟買服務(wù)器這件事最怕的不是不會(huì)點(diǎn)鼠標(biāo)而是不知道自己在買什么、買完要做什么。1. 動(dòng)手之前先回答“我要用這臺(tái)服務(wù)器干什么”1.1 云服務(wù)器和本地電腦差別到底在哪很多人會(huì)問(wèn)我自己電腦明明也能跑網(wǎng)站為什么要買一臺(tái)云服務(wù)器這個(gè)問(wèn)題的答案決定了你后續(xù)所有選擇。本地電腦處于家庭寬帶或校園網(wǎng)環(huán)境IP地址通常是動(dòng)態(tài)的路由器重啟很可能就變了而且電腦不能保證7×24小時(shí)開(kāi)機(jī)一旦斷電或者休眠網(wǎng)站就下線了。更麻煩的是如果直接把服務(wù)暴露在公網(wǎng)家庭網(wǎng)絡(luò)的路由器配置、運(yùn)營(yíng)商封鎖、動(dòng)態(tài)IP解析這些問(wèn)題會(huì)把人折騰到懷疑人生。云服務(wù)器把這些瑣事全部承接了它有固定的公網(wǎng)IP、獨(dú)立電源和網(wǎng)絡(luò)環(huán)境、放在機(jī)房7×24小時(shí)運(yùn)行你只需要遠(yuǎn)程登進(jìn)去部署自己的應(yīng)用。用一個(gè)生活化的類比本地運(yùn)行網(wǎng)站好比在家里做飯要自己買菜、洗菜、盯火候一頓飯忙下來(lái)鍋碗瓢盆全要自己收拾云服務(wù)器相當(dāng)于去一家中央食堂包月你只管到點(diǎn)吃飯后廚的灶臺(tái)、燃?xì)?、消防都有人管。所以買云服務(wù)器的本質(zhì)是花錢買“穩(wěn)定的運(yùn)行環(huán)境”和“固定的公網(wǎng)入口”。1.2 按需求反推配置而不是盲目追高買服務(wù)器最怕兩件事一是買低了跑不動(dòng)二是買高了白花錢。我見(jiàn)過(guò)不少新手一上來(lái)就買“建議配置”里的頂配結(jié)果只放了一個(gè)純靜態(tài)主頁(yè)CPU占用常年不到5%這就是典型浪費(fèi)。我在實(shí)操中通常建議先列出用途再?gòu)挠猛痉赐婆渲?。這里給一份可以直接參考的表格典型用途CPU/內(nèi)存公網(wǎng)帶寬系統(tǒng)盤說(shuō)明學(xué)習(xí)Linux/跑通部署流程1核1G至1核2G1-3Mbps40G最低成本練手個(gè)人博客/靜態(tài)站點(diǎn)1核2G3-5Mbps40-60G主流選擇性價(jià)比高小型企業(yè)官網(wǎng)/小程序后端2核4G5-10Mbps60-80G可承載一定真實(shí)業(yè)務(wù)數(shù)據(jù)庫(kù)/微服務(wù)學(xué)習(xí)實(shí)驗(yàn)2核4G以上按流量或更高帶寬100G以上內(nèi)存和IO優(yōu)先為什么要重視內(nèi)存而不是只盯CPU核數(shù)因?yàn)榫W(wǎng)站類應(yīng)用尤其是跑PHP、Java、數(shù)據(jù)庫(kù)的瓶頸通常先出現(xiàn)在內(nèi)存上。1核1G跑Nginx托管靜態(tài)頁(yè)面問(wèn)題不大但一旦裝上數(shù)據(jù)庫(kù)和多個(gè)服務(wù)內(nèi)存很容易被打滿系統(tǒng)會(huì)開(kāi)始使用Swap交換空間機(jī)器就會(huì)變得非???。帶寬這邊也提醒一下云廠商口中的1Mbps帶寬實(shí)際下載速度約為128KB/s。純HTML頁(yè)面勉強(qiáng)可以如果網(wǎng)頁(yè)里有圖片、CSS、JS首次加載就會(huì)明顯慢。個(gè)人博客我建議至少3Mbps企業(yè)站根據(jù)圖片資源量選擇5Mbps以上。1.3 包年包月和按量付費(fèi)怎么選在下單頁(yè)面計(jì)費(fèi)模式通常有“包年包月”和“按量付費(fèi)”兩種。我的經(jīng)驗(yàn)是計(jì)劃長(zhǎng)期運(yùn)行、目標(biāo)明確的網(wǎng)站選包年包月只是臨時(shí)學(xué)習(xí)、測(cè)試選按量付費(fèi)。按量付費(fèi)用多久算多久適合搭一套環(huán)境驗(yàn)證完就釋放但一定要記得關(guān)機(jī)和釋放資源否則會(huì)有持續(xù)計(jì)費(fèi)。這里還要說(shuō)一個(gè)容易忽略的點(diǎn)活動(dòng)頁(yè)面的首年低價(jià)不等于續(xù)費(fèi)價(jià)格。很多新手看到“一年幾十塊錢”就沖了第二年續(xù)費(fèi)時(shí)才發(fā)現(xiàn)價(jià)格貴了好幾倍。下單前務(wù)必要看“續(xù)費(fèi)價(jià)格”或“購(gòu)買頁(yè)價(jià)格明細(xì)”把成本結(jié)構(gòu)算清楚再?zèng)Q定。這類云端實(shí)例的費(fèi)用通常由幾部分組成實(shí)例規(guī)格費(fèi)、公網(wǎng)帶寬費(fèi)、系統(tǒng)盤存儲(chǔ)費(fèi)。公共服務(wù)系統(tǒng)鏡像比如Ubuntu、CentOS官方鏡像一般不額外收費(fèi)但如果你選了特定商業(yè)鏡像費(fèi)用會(huì)單列出來(lái)。下單時(shí)在費(fèi)用明細(xì)里逐項(xiàng)看一眼就不會(huì)稀里糊涂被套餐文案誤導(dǎo)。2. 下單頁(yè)面上的關(guān)鍵選項(xiàng)地域、鏡像、磁盤、帶寬逐個(gè)選2.1 地域選擇影響延遲也影響后續(xù)遷移成本進(jìn)入購(gòu)買頁(yè)面第一個(gè)要選的是地域也就是服務(wù)器機(jī)房所在的城市。原則很簡(jiǎn)單你的訪問(wèn)者在哪里服務(wù)器就放哪里。個(gè)人學(xué)習(xí)無(wú)所謂就近選一個(gè)即可如果是給特定區(qū)域的用戶訪問(wèn)選擇該區(qū)域附近的機(jī)房網(wǎng)絡(luò)延遲會(huì)明顯更低。地域還有一種“隱藏成本”一旦實(shí)例創(chuàng)建在某個(gè)地域想換另一個(gè)地域不能直接搬只能通過(guò)鏡像復(fù)制、數(shù)據(jù)遷移等方式重建。對(duì)新手來(lái)說(shuō)這個(gè)過(guò)程挺折騰的所以我建議買之前先想清楚主要給誰(shuí)用??捎脜^(qū)同一地域下的不同機(jī)房的選擇一般不需要花太多心思。默認(rèn)分配一個(gè)即可除非你有高可用需求會(huì)把應(yīng)用部署在兩個(gè)可用區(qū)形成主備。2.2 鏡像Ubuntu、CentOS還是Windows鏡像就是操作系統(tǒng)的“出廠快照”。新手在選擇時(shí)經(jīng)常猶豫我給出幾條實(shí)際參考Ubuntu 22.04 LTS社區(qū)資料多軟件源對(duì)新手友好適合跑Nginx、MySQL、PHP這類常見(jiàn)組合。CentOS Stream / Rocky LinuxCentOS 8停更之后官方推薦方向有所變化很多老運(yùn)維轉(zhuǎn)向Rocky或保留習(xí)慣使用其他系統(tǒng)這類適合以后想往運(yùn)維方向走的人。Windows Server只有當(dāng)應(yīng)用明確依賴Windows環(huán)境比如.NET開(kāi)發(fā)、需要使用圖形界面時(shí)才建議選否則不推薦——Windows鏡像占用資源更多費(fèi)用也更高。對(duì)于本篇的部署目標(biāo)我的建議是選擇Ubuntu 22.04 LTS。它生命周期長(zhǎng)未來(lái)兩三年內(nèi)不用頻繁操心升級(jí)大版本的問(wèn)題。2.3 系統(tǒng)盤和數(shù)據(jù)盤容量與類型怎么權(quán)衡系統(tǒng)盤是服務(wù)器安裝操作系統(tǒng)和跑關(guān)鍵服務(wù)的磁盤默認(rèn)容量一般40G起步。這里有一條實(shí)操建議容量夠不夠看需求但類型一定要選固態(tài)類的因?yàn)榇疟PI/O直接影響網(wǎng)站性能在云平臺(tái)上不同性能等級(jí)的云盤讀寫速度差異肉眼可見(jiàn)。對(duì)于個(gè)人博客40G通常夠用如果打算裝數(shù)據(jù)庫(kù)、存儲(chǔ)用戶上傳的圖片建議直接選60G或更大省得以后擴(kuò)容時(shí)還要折騰。這里也順帶說(shuō)一句數(shù)據(jù)盤如果購(gòu)買頁(yè)面有“添加數(shù)據(jù)盤”的選項(xiàng)新手第一階段可以不買。系統(tǒng)盤已經(jīng)能承載系統(tǒng)和網(wǎng)站程序數(shù)據(jù)盤一般是給數(shù)據(jù)庫(kù)文件、日志文件做獨(dú)立存儲(chǔ)用的等網(wǎng)站真實(shí)跑起來(lái)、磁盤空間吃緊時(shí)再添加也不遲。2.4 固定帶寬和按量流量新手怎么選帶寬計(jì)費(fèi)主要兩種差異用一個(gè)表格就能看明白計(jì)費(fèi)方式適用場(chǎng)景優(yōu)點(diǎn)風(fēng)險(xiǎn)固定帶寬持續(xù)穩(wěn)定訪問(wèn)的網(wǎng)站費(fèi)用可控不會(huì)突然爆賬單峰值不高時(shí)有點(diǎn)浪費(fèi)按使用流量訪問(wèn)量很低或突發(fā)型應(yīng)用用得少花得少被惡意刷流量時(shí)賬單可能嚇人我在這一期教程里更推薦新手選固定帶寬3Mbps或5Mbps起步。預(yù)算能算清不會(huì)半夜收到一條扣費(fèi)短信。等到網(wǎng)站流量起來(lái)、對(duì)網(wǎng)絡(luò)有了把握再根據(jù)監(jiān)控?cái)?shù)據(jù)換到按量計(jì)費(fèi)。下單之前最終再檢查一次費(fèi)用明細(xì)實(shí)例費(fèi)、帶寬費(fèi)、系統(tǒng)盤費(fèi)以及活動(dòng)價(jià)對(duì)應(yīng)的“原價(jià)續(xù)費(fèi)”是什么水平。看清楚這些之后點(diǎn)擊下單你的第一臺(tái)云服務(wù)器就算買回來(lái)了。創(chuàng)建過(guò)程一般需要幾十秒到幾分鐘控制臺(tái)里實(shí)例狀態(tài)變?yōu)椤斑\(yùn)行中”后就可以繼續(xù)下一步。3. 安全組與登錄憑證下單一秒訪問(wèn)卻打不開(kāi)先檢查這兩處3.1 安全組是云端的“安檢門”實(shí)例創(chuàng)建好之后一般在控制臺(tái)會(huì)看到公網(wǎng)IP、默認(rèn)用戶名等信息。很多新手拿到IP就直接往瀏覽器里輸結(jié)果頁(yè)面轉(zhuǎn)圈半天打不開(kāi)于是開(kāi)始懷疑服務(wù)器是不是壞了。實(shí)際上八成的原因是安全組沒(méi)有放行對(duì)應(yīng)端口。安全組可以理解為一道放在云服務(wù)器前面的訪問(wèn)控制規(guī)則哪些來(lái)源IP、通過(guò)哪個(gè)協(xié)議、訪問(wèn)哪個(gè)端口能進(jìn)能出都靠它把關(guān)。默認(rèn)創(chuàng)建實(shí)例時(shí)云平臺(tái)通常只放行SSH遠(yuǎn)程登錄TCP 22、Windows遠(yuǎn)程桌面TCP 3389和ping測(cè)試ICMP并不會(huì)放行HTTP的80端口和HTTPS的443端口。這意味著就算Nginx裝好了外部也可能訪問(wèn)不到網(wǎng)頁(yè)。所以搭建網(wǎng)站前的標(biāo)準(zhǔn)操作是在控制臺(tái)進(jìn)入實(shí)例詳情找到“安全組”添加入方向規(guī)則。我這里給一份常規(guī)網(wǎng)站的規(guī)則列表方向協(xié)議端口來(lái)源用途入方向TCP22運(yùn)維IP或0.0.0.0/0SSH遠(yuǎn)程登錄入方向TCP800.0.0.0/0對(duì)外HTTP訪問(wèn)入方向TCP4430.0.0.0/0對(duì)外HTTPS訪問(wèn)入方向TCP3306僅數(shù)據(jù)庫(kù)客戶端IPMySQL訪問(wèn)盡量不公開(kāi)這里特別注意3306端口數(shù)據(jù)庫(kù)默認(rèn)端口千萬(wàn)不要對(duì)全網(wǎng)開(kāi)放否則等于把數(shù)據(jù)庫(kù)裸奔在公網(wǎng)暴力破解工具對(duì)著它掃一夜安全風(fēng)險(xiǎn)非常大。如果確實(shí)需要遠(yuǎn)程連數(shù)據(jù)庫(kù)只放行你正在使用的那一個(gè)IP。這個(gè)“最小放行”原則在后續(xù)運(yùn)維階段會(huì)反復(fù)出現(xiàn)。3.2 登錄憑證密碼登錄和密鑰對(duì)登錄的選擇創(chuàng)建實(shí)例時(shí)云平臺(tái)都會(huì)要求設(shè)置登錄憑證通常是密碼或密鑰對(duì)兩種方式。新手階段我建議先選密碼登錄把流程跑通最重要。設(shè)置密碼時(shí)別用“123456”這種也別用生日、手機(jī)號(hào)建議至少大小寫字母加數(shù)字混合長(zhǎng)度不少于12位。記住這是你的服務(wù)器大門鑰匙。密鑰對(duì)登錄安全性更高適合以后長(zhǎng)期管理的服務(wù)器公鑰放在云端私鑰保存在自己電腦。但密鑰對(duì)有個(gè)麻煩點(diǎn)私鑰文件一旦丟失基本等于鎖門恢復(fù)起來(lái)很麻煩。如果選擇密鑰對(duì)下單時(shí)一定要把私鑰下載保存到安全的地方同時(shí)建議保留密碼登錄作為應(yīng)急通道。另外說(shuō)一個(gè)很多人踩過(guò)的細(xì)節(jié)在控制臺(tái)重置實(shí)例密碼或密鑰時(shí)部分平臺(tái)要求實(shí)例處于停止?fàn)顟B(tài)才能操作。這意味著如果你登錄不上還要先去控制臺(tái)“停止”實(shí)例再重置然后再啟動(dòng)。第一次操作時(shí)別慌看清頁(yè)面提示即可。安全組和登錄憑證都處理好了才算真正具備“登錄服務(wù)器”的條件。4. 第一次遠(yuǎn)程連接并部署Nginx這臺(tái)機(jī)器開(kāi)始干活4.1 用SSH連上自己的服務(wù)器從這一步開(kāi)始操作從網(wǎng)頁(yè)控制臺(tái)轉(zhuǎn)移到了終端。如果你用的是macOS或Linux直接打開(kāi)終端TerminalWindows用戶可以用自帶的PowerShell也可以安裝一個(gè)遠(yuǎn)程終端工具比如MobaXterm這類工具對(duì)新手更友好支持標(biāo)簽頁(yè)和文件傳輸。連接命令很簡(jiǎn)單ssh 用戶名公網(wǎng)IP比如云平臺(tái)給你的默認(rèn)用戶名是root公網(wǎng)IP是1.2.3.4命令就是ssh root1.2.3.4。首次連接時(shí)終端會(huì)顯示是否信任主機(jī)指紋的提示輸入yes并回車接著輸入密碼只要看到命令行提示符變成rootxxx:~#就說(shuō)明登錄成功了。補(bǔ)充一點(diǎn)有些系統(tǒng)鏡像默認(rèn)用戶名不是root而是ubuntu或ecs-user具體以控制臺(tái)顯示為準(zhǔn)。別拿著一個(gè)用戶名反復(fù)試錯(cuò)先去看控制臺(tái)的實(shí)例詳情頁(yè)。4.2 如果SSH連不上按這個(gè)順序排查SSH連不上是新手最常遇到的第一個(gè)難題。這里給出一條系統(tǒng)性的排查鏈路先確認(rèn)公網(wǎng)IP是否復(fù)制正確看控制臺(tái)實(shí)例詳情頁(yè)。在本機(jī)執(zhí)行ping 公網(wǎng)IP如果ping不通大概率是安全組沒(méi)有放行ICMP或者IP寫錯(cuò)。在本機(jī)執(zhí)行telnet 公網(wǎng)IP 22如果端口不通重點(diǎn)檢查安全組是否放行TCP 22。如果端口通但密碼被拒檢查是否開(kāi)了大寫鎖、密碼是否包含易混淆字符。如果確實(shí)忘了密碼到控制臺(tái)使用“重置實(shí)例密碼”功能注意頁(yè)面可能要求先停止實(shí)例。用一張小表概括現(xiàn)象可能原因處理方向ping不通安全組ICMP未放行/IP錯(cuò)誤改安全組規(guī)則、核對(duì)IP22端口不通安全組未放行TCP 22/sshd未啟動(dòng)檢查安全組、檢查sshd密碼被拒密碼錯(cuò)誤控制臺(tái)重置密碼一直卡在連接中公網(wǎng)IP錯(cuò)誤或服務(wù)未就緒等待實(shí)例啟動(dòng)完成確認(rèn)IP我記得自己第一次部署時(shí)就是卡在安全組這里前后花了半個(gè)多小時(shí)最后發(fā)現(xiàn)22端口規(guī)則并沒(méi)有問(wèn)題問(wèn)題是Nginx的80端口沒(méi)放行。所以開(kāi)通安全組規(guī)則時(shí)一定要把HTTP/HTTPS一起檢查到位。4.3 安裝Nginx并啟動(dòng)服務(wù)登錄成功后就可以開(kāi)始部署Web服務(wù)了。Nginx是目前最常用的Web服務(wù)器之一輕量、穩(wěn)定、配置靈活非常適合作為第一課。安裝過(guò)程在Ubuntu上很簡(jiǎn)單apt update apt upgrade -y apt install nginx -y systemctl start nginx systemctl enable nginx systemctl status nginx第一句是把系統(tǒng)的軟件源索引更新到最新并升級(jí)已有軟件包第二句安裝Nginx第三句啟動(dòng)服務(wù)第四句設(shè)置開(kāi)機(jī)自啟最后一句查看運(yùn)行狀態(tài)。如果狀態(tài)顯示active (running)說(shuō)明服務(wù)已經(jīng)運(yùn)行。如果你選的系統(tǒng)是Rocky或CentOS命令對(duì)應(yīng)改為yum update -y yum install nginx -y systemctl start nginx systemctl enable nginx安裝完成后在瀏覽器地址欄輸入http://公網(wǎng)IP如果能看到Nginx的默認(rèn)歡迎頁(yè)面說(shuō)明整個(gè)鏈路已經(jīng)打通安全組、80端口、Nginx服務(wù)三者都正常。這一步完成你離“部署網(wǎng)站”其實(shí)已經(jīng)很近了。4.4 頁(yè)面還是打不開(kāi)從服務(wù)器內(nèi)外兩步定位如果瀏覽器始終打不開(kāi)頁(yè)面不要急著懷疑服務(wù)器壞了按下面兩步操作能快速定位問(wèn)題。第一步在服務(wù)器里面測(cè)本機(jī)執(zhí)行curl http://localhost如果返回Nginx歡迎頁(yè)的HTML內(nèi)容說(shuō)明Web服務(wù)本身正常問(wèn)題出在外部訪問(wèn)鏈路也就是安全組或防火墻。第二步在本地電腦執(zhí)行telnet 公網(wǎng)IP 80如果端口不通去安全組確認(rèn)80和443是否放行如果端口通但瀏覽器還是打不開(kāi)嘗試換一個(gè)瀏覽器或者用無(wú)痕模式排除緩存問(wèn)題。還有一種情況Nginx配置寫錯(cuò)了。這時(shí)候執(zhí)行nginx -t檢查語(yǔ)法它會(huì)明確提示哪一行出了問(wèn)題。改完配置后執(zhí)行systemctl reload nginx加載新配置而不是直接重啟因?yàn)閞eload可以在不中斷服務(wù)的情況下應(yīng)用修改這是運(yùn)維里的常規(guī)習(xí)慣。5. 部署成功之后替換首頁(yè)、養(yǎng)成運(yùn)維習(xí)慣、規(guī)劃下一步5.1 寫自己的第一張網(wǎng)頁(yè)看到Nginx默認(rèn)歡迎頁(yè)之后就該把它替換成自己的內(nèi)容了。先找到網(wǎng)站根目錄。在Ubuntu上默認(rèn)的站點(diǎn)目錄一般是/var/www/htmlNginx的默認(rèn)站點(diǎn)配置文件在/etc/nginx/sites-available/里。要驗(yàn)證這一點(diǎn)在服務(wù)器中執(zhí)行l(wèi)s /var/www/html目錄里如果有一個(gè)index.nginx-debian.html說(shuō)明默認(rèn)首頁(yè)就在這個(gè)位置。接下來(lái)創(chuàng)建一個(gè)自己頁(yè)面echo !DOCTYPE htmlhtmlheadtitle我的網(wǎng)站/title/headbodyh1我的服務(wù)器跑通了/h1/body/html /var/www/html/index.html刷新瀏覽器看到“我的服務(wù)器跑通了”這行大字說(shuō)明你已經(jīng)完成了從買服務(wù)器到發(fā)布網(wǎng)頁(yè)的完整鏈路。這一步對(duì)建立信心很重要很多人在這個(gè)點(diǎn)才開(kāi)始真正理解服務(wù)器、IP、端口、網(wǎng)站之間的關(guān)系。如果想改端口或站點(diǎn)的配置我告訴你Nginx的基本邏輯server塊定義監(jiān)聽(tīng)端口和站點(diǎn)根目錄location塊定義路徑轉(zhuǎn)發(fā)規(guī)則。以后要部署多站點(diǎn)、配置HTTPS都繞不開(kāi)這套邏輯后面文章再展開(kāi)。5.2 幾個(gè)值得從第一天就養(yǎng)成的運(yùn)維習(xí)慣服務(wù)器部署完真正的工作才開(kāi)始。我總結(jié)幾個(gè)實(shí)測(cè)有用的習(xí)慣建議裝完系統(tǒng)就順手做掉每隔一段時(shí)間執(zhí)行一次apt update和apt upgrade把系統(tǒng)安全補(bǔ)丁打上。云平臺(tái)控制臺(tái)一般也有安全通告可以打開(kāi)通知。不要用弱密碼和默認(rèn)密碼SSH入口保持高強(qiáng)度口令或改用密鑰登錄。安全組遵循最小放行原則需要哪個(gè)端口就放行哪個(gè)端口不用的端口隨手刪除規(guī)則。打開(kāi)云平臺(tái)的監(jiān)控告警重點(diǎn)關(guān)注CPU使用率、內(nèi)存、磁盤IO設(shè)置閾值后收到短信或郵件通知。如果真的需要做長(zhǎng)時(shí)間運(yùn)行的應(yīng)用考慮給服務(wù)器配置足夠的內(nèi)存和合理的Swap避免內(nèi)存被占滿后進(jìn)程被系統(tǒng)殺掉。這里特別要提醒的是雖然有些云平臺(tái)自帶安全防護(hù)能力但底層的資源監(jiān)控還是建議自己打開(kāi)。我見(jiàn)過(guò)一個(gè)案例某網(wǎng)站深夜被腳本掃端口第二天云平臺(tái)發(fā)來(lái)異常流量告警因?yàn)楸O(jiān)控沒(méi)開(kāi)管理員差點(diǎn)沒(méi)發(fā)現(xiàn)。告警不是用來(lái)嚇人的它是在你還沒(méi)發(fā)現(xiàn)問(wèn)題時(shí)提前拉你一把。5.3 關(guān)于域名、HTTPS和后續(xù)路線到這里你已經(jīng)能用公網(wǎng)IP瀏覽自己的網(wǎng)站了但清晰好記的地址、HTTPS加密、以及把網(wǎng)站和數(shù)據(jù)庫(kù)正確組合起來(lái)還有幾項(xiàng)工作。這些內(nèi)容不適合全部塞進(jìn)第一篇所以我打算在系列后面按順序?qū)懹蛎?gòu)買、解析接入云服務(wù)器為網(wǎng)站啟用HTTPS證書用Nginx配置多站點(diǎn)和反向代理安裝數(shù)據(jù)庫(kù)并讓網(wǎng)站能寫入數(shù)據(jù)服務(wù)器日常備份策略這里插一句國(guó)內(nèi)服務(wù)器如果后續(xù)要綁定域名對(duì)外提供訪問(wèn)云平臺(tái)通常會(huì)在控制臺(tái)提供網(wǎng)站接入相關(guān)流程指引不同服務(wù)商的入口不太一樣等到寫域名篇時(shí)我再把具體操作記錄完整呈現(xiàn)?;仡櫿麄€(gè)流程我最想說(shuō)的一點(diǎn)是網(wǎng)站部署最重要的不是背命令而是理解“公網(wǎng)IP、端口、安全組、Web服務(wù)”這幾層的關(guān)系。我當(dāng)時(shí)的教訓(xùn)是買完服務(wù)器就一頭扎進(jìn)Nginx配置結(jié)果死活訪問(wèn)不了回頭才發(fā)現(xiàn)安全組根本沒(méi)放行80。如果你也是新手建議嚴(yán)格按照這篇文章的順序走一遍先用IP訪問(wèn)跑通不要急著一口氣把域名和數(shù)據(jù)庫(kù)都裝上。踩過(guò)一次坑之后這些概念會(huì)深深刻在腦子里。下一篇我會(huì)繼續(xù)記錄綁定域名和處理HTTPS證書的完整過(guò)程實(shí)際操作中涉及到的解析記錄、證書申請(qǐng)、Nginx配置調(diào)整我都會(huì)逐個(gè)說(shuō)明。如果你在這篇文章的任一步卡住可以先把錯(cuò)誤提示原樣記下來(lái)然后對(duì)照第4章的排查鏈路逐項(xiàng)檢查大部分問(wèn)題都出在安全組規(guī)則或者端口沒(méi)有放行上。