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