如何建立一個(gè)自己的網(wǎng)站?因?yàn)楹芏嗳硕紗?wèn)過(guò)我這個(gè)問(wèn)題,所以我專門寫了這篇文章
如何部署一個(gè)項(xiàng)目以使網(wǎng)站運(yùn)行
通常,對(duì)于許多前端工程師來(lái)說(shuō),項(xiàng)目部署是神秘而不可預(yù)測(cè)的,因?yàn)闆](méi)有背景
這篇文章以我的開(kāi)源博客Sinn為例來(lái)整理web應(yīng)用程序的工作原理
運(yùn)行web應(yīng)用程序,您通常需要以下內(nèi)容:
任何應(yīng)用程序都基于操作系統(tǒng),web應(yīng)用程序也不例外
服務(wù)器通常包含操作系統(tǒng)和相關(guān)服務(wù),如網(wǎng)絡(luò)服務(wù)和IP服務(wù)。對(duì)于web應(yīng)用程序,服務(wù)器的主要作用是為web應(yīng)用程序的運(yùn)行提供操作系統(tǒng)環(huán)境和服務(wù);目前,服務(wù)器根據(jù)操作系統(tǒng)的不同可分為兩種類型,是windowsserver,另是Linuxserver。顯然,windowsserver附帶windows操作系統(tǒng),Linuxserver附帶linxu操作系統(tǒng)
Linux服務(wù)器被廣泛使用。Linux服務(wù)器的操作系統(tǒng)包括RHEL、CentOS、Debian、Ubuntu、SUSE等。常用的系統(tǒng)是Ubuntu和CentOS。但由于生態(tài)環(huán)境惡劣,windowsserver越來(lái)越不受歡迎。通常,Linux服務(wù)器是一個(gè)部署應(yīng)用程序
因此,首先,您需要一個(gè)Linux服務(wù)器來(lái)為應(yīng)用程序提供操作系統(tǒng)環(huán)境和服務(wù)
所謂的編程語(yǔ)言環(huán)境是nodejs、Java、PHP和其他編程語(yǔ)言的運(yùn)行環(huán)境
應(yīng)用程序是用編程語(yǔ)言開(kāi)發(fā)的,因此,應(yīng)用程序的操作取決于編程語(yǔ)言環(huán)境。例如,要運(yùn)行nodejs后臺(tái)應(yīng)用程序,您需要nodejs運(yùn)行環(huán)境。運(yùn)行Java后臺(tái)應(yīng)用程序需要Java運(yùn)行時(shí)環(huán)境
必須注意的是,網(wǎng)站的前臺(tái)和后臺(tái)的操作環(huán)境不同
前臺(tái)編程語(yǔ)言環(huán)境在客戶端(瀏覽器)上,后臺(tái)編程語(yǔ)言環(huán)境在服務(wù)器上
前臺(tái)主要在客戶端上運(yùn)行,即,它顯示在瀏覽器中。前臺(tái)編程語(yǔ)言環(huán)境是一個(gè)瀏覽器環(huán)境,因?yàn)榍芭_(tái)編程語(yǔ)言主要是HTML、CSS和JS。瀏覽器本身具有內(nèi)置的HTML、CSS和JS解析功能。換句話說(shuō),前臺(tái)應(yīng)用程序不需要在服務(wù)器上構(gòu)建編程語(yǔ)言環(huán)境
后臺(tái)應(yīng)用程序在服務(wù)器端運(yùn)行,但服務(wù)器端通常不集成編程語(yǔ)言環(huán)境,因此后臺(tái)應(yīng)用程序通常需要在服務(wù)器端構(gòu)建自己的編程語(yǔ)言環(huán)境。如果是nodejs應(yīng)用程序,則需要構(gòu)建nodejs運(yùn)行環(huán)境。如果是PHP應(yīng)用程序,則需要構(gòu)建一個(gè)PHP運(yùn)行環(huán)境,依此類推
因此,使用服務(wù)器,您可以在服務(wù)器上構(gòu)建一個(gè)后臺(tái)編程語(yǔ)言環(huán)境
在服務(wù)器和編程語(yǔ)言環(huán)境中,它相當(dāng)于應(yīng)用程序的運(yùn)行基礎(chǔ)
這里提到的應(yīng)用程序是基于特定編程語(yǔ)言開(kāi)發(fā)的應(yīng)用程序。例如,基于nodejs開(kāi)發(fā)的節(jié)點(diǎn)后臺(tái)應(yīng)用程序
一旦有了應(yīng)用程序,就需要構(gòu)建應(yīng)用程序所依賴的一些工具
例如,后臺(tái)應(yīng)用程序通常需要數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)應(yīng)用程序數(shù)據(jù),如mongodb、mysql等。前臺(tái)應(yīng)用程序通常需要nginx來(lái)提供靜態(tài)資源服務(wù)。Nginx還可以用作代理和轉(zhuǎn)發(fā)接口
此時(shí),服務(wù)器、編程語(yǔ)言環(huán)境、應(yīng)用程序和相關(guān)工具都可用,您可以開(kāi)始部署應(yīng)用程序
首先,前臺(tái)使用的編程語(yǔ)言主要包括HTML、CSS和JS。前臺(tái)代碼主要生成一些靜態(tài)資源文件,如HTML文件、CSS文件、JS文件和其他靜態(tài)資源文件
因此,前臺(tái)應(yīng)用程序的部署實(shí)際上是靜態(tài)資源的部署
首先,前臺(tái)代碼生成一些靜態(tài)資源文件,如HTML文件、CSS文件、JS文件等
因此,通過(guò)控制臺(tái)打開(kāi)網(wǎng)頁(yè)時(shí),通常會(huì)看到以下請(qǐng)求:
瀏覽器請(qǐng)求可分為兩類。是靜態(tài)資源請(qǐng)求,如HTML、CSS、JS、IMG等靜態(tài)資源。它們的功能是顯示應(yīng)用程序的前臺(tái)用戶界面。另類型的請(qǐng)求是接口請(qǐng)求,它請(qǐng)求后臺(tái)接口與后臺(tái)應(yīng)用程序交互,并將請(qǐng)求的數(shù)據(jù)分配給UI
后臺(tái)應(yīng)用程序在服務(wù)器端運(yùn)行,因此有必要在后端構(gòu)建應(yīng)用程序的編程語(yǔ)言環(huán)境。其次,構(gòu)建應(yīng)用程序所依賴的工具,如數(shù)據(jù)庫(kù)、流程管理工具等。以Sinn服務(wù)器為例。這是一個(gè)基于nodejs的后臺(tái)應(yīng)用程序,使用mongodb作為數(shù)據(jù)庫(kù)
因此,為了部署Sinn服務(wù)器,需要在服務(wù)器上構(gòu)建nodejs運(yùn)行環(huán)境。在nodejs編程語(yǔ)言環(huán)境中,我們還需要構(gòu)建mongodb數(shù)據(jù)庫(kù)和其他相關(guān)工具;前臺(tái)部署是使用nginx、Apache或Tomcat工具的靜態(tài)資源部署。Nginx是常用的
后臺(tái)部署需要構(gòu)建一個(gè)編程語(yǔ)言環(huán)境。對(duì)于PHP、Java和其他應(yīng)用程序,還需要使用apache/tomcat構(gòu)建相應(yīng)的程序服務(wù)。此外,后臺(tái)應(yīng)用程序通常依賴于數(shù)據(jù)庫(kù)、流程管理器和其他應(yīng)用程序工具
如何自己構(gòu)建網(wǎng)站?通過(guò)以上分析,我相信您已經(jīng)了解了部署應(yīng)用程序的過(guò)程。