記錄一些服務端術語和搭建web伺服器

菜單快捷導航

  1. 服務端常用術語
  2. 搭建web伺服器和配置虛擬主機

記錄一些服務端方面的常用術語

1、CS架構和BS架構

1.1 CS架構

CS(Client/Server),基於安裝包類型的桌面或手機軟體模式,比如常見的QQ、微信、迅雷等等。
優點是 :基於安裝包,性能更高,安全性更高。
缺點是:對於商家來說每個平台都需要開發對應的客戶端安裝包,比如windows/mac/android/ios上都需要開發對應的安裝包;對於平台來說安裝過多軟體易佔用系統資源;對於客戶來說需要安裝才能使用

1.2 BS架構

BS(Browser/Server),基於瀏覽器的網站模式,比如常見的京東網站、淘寶網站等等。
優點是:基於瀏覽器,系統自帶有,客戶不需要安裝,訪問方便;節省系統資源;網站迭代升級方便;
缺點是:操作穩定性,流暢度,安全方面相對CS架構較弱一些。

2、客戶端

具有向瀏覽器索取服務能力的終端,比如手機、電腦等,通過安裝不同的客戶端軟體,可以獲取不同的服務。常見的客戶端軟體:瀏覽器、QQ、支付寶、迅雷、愛奇藝等等

 

3、服務端

通俗的講 ,能夠提供某種服務的機器(電腦)成為伺服器

3.1 伺服器類型

按照不同的劃分標準,服務可劃分為以下類型:

  1. 按服務類型可分為:文件伺服器、資料庫伺服器;
  2. 按作業系統可分為:Linus伺服器、Windows伺服器;
  3. 按應用軟體可分為:Apache伺服器、Nginx伺服器、IIS伺服器、Tomcat伺服器、Node伺服器等;

3.2 伺服器軟體

使電腦具備提供某種服務能力的應用軟體,成為伺服器軟體,通過安裝相應的服務軟體,然後進行配置後就可以使電腦具備了提供某種服務的能力。
常見的服務軟體有:

  1. 文件伺服器:Server-U、FileZilla、VsFTP等
  2. 資料庫伺服器:Oracle、MySQL、PostgreSQL、MSSQL等
  3. 郵件伺服器:Postfix、Sendmail等
  4. web伺服器:Apache、Nginx、IIS、Tomcat、NodeJS等

3.3 Web伺服器

即網站伺服器,主要提供文檔(文本、圖片、影片、音頻)瀏覽服務,一般安裝Apache、Nginx伺服器軟體。
HTTP伺服器可以結合某一程式語言處理業務邏輯,由此進行的開發,通常稱之為服務端開發。
常見的運行在服務端的程式語言包括PHP、Jsp、Asp、Python、Ruby、Go等

 

4、網路基礎

4.1 IP地址

所謂IP地址就是給每個連接在互聯網上的主機分配的一個32位地址(就像每部手機能正常通話需要一個號碼一樣)。
查看本機ip地址:windows用ipconfig,mac用ifconfig。
ip有公網ip(對外可訪問,需去電信局申請), 區域網ip(某一局域內可被訪問的ip)。

4.2 域名

由於IP地址基於數字,不方便記憶,於是便用域名來代替IP地址,域名是一個IP地址的“面具”。
查看域名對應的IP地址命令有ping、tracert。拿到ip後,也可以通過ip訪問網站。

4.3 DNS服務

DNS記錄了IP地址和域名的映射(對應)關係。查找優先順序 ,本機hosts文件 > DNS伺服器。

4.4 埠

埠號是電腦與外界通訊交流的出口,每個埠對應不同的服務,web頁面訪問根據ip定位到主機,根據埠定位到具體的提供服務的軟體。
比如現實生活中,銀行不同的窗口辦理不同的業務。
查看埠佔用情況:`netstat -an`
常見埠號80、8080、3306、21、22

 

 5、搭建一個web伺服器

5.1 wampserver

wampserver是一個基於windows的集成軟體,集成了apache + php解析引擎 + mysql。
安裝wampserver,和普通軟體無差別,默認安裝在C:wamp,安裝完成後,當看到任務圖標綠色表示正常啟動。
## 5.2 配置根目錄
網站根目錄是web伺服器上存放網站程式的空間,可通過修改配置文件自定義,wampserver安裝後的默認網站根目錄是:C:wampwww。
我們可以自定義一個網站根目錄,比如在windows電腦的F磁碟上新建一個文件夾tanWeb, 裡面的創建幾個測試頁面,然後我們想讓網站根目錄指向這個文件夾,如何生效呢?

  1. 打開wampserver軟體安裝路徑,找到apache文件夾下的httpd.conf文件
  2. 打開httpd.conf文件編輯,找到大約178行和205行,把`c:/wamp/www/`改成`F:/tanWeb/`
  3. 保存,重啟Apache。

 

重啟成功後,可以通過127.0.0.1訪問了。httpd.conf文件裡面設置默認可以通過127.0.0.1訪問,但是不支援localhost進行訪問,如果想localhost也能訪問,需要處理一下,在httpd.conf文件235行左右,默認寫著`Allow from 127.0.0.1`,在後面再加一句`Allow from all`,然後重啟Apache, 就也可以通過localhost來訪問了。

 

5.3 網站部署

將我們製作好的網頁拷貝到配置好的根目錄下,瀏覽器訪問127.0.0.1即可。

5.4 靜態資源和動態資源

靜態資源:可以直接被瀏覽器解析的資源我們稱為靜態資源,比如html、javascript、css、video等
動態資源:動態資源在伺服器被解析,而可以被轉換成靜態資源。
如果我們在客戶端瀏覽器訪問的是靜態資源,那伺服器接收到請求後,會直接將靜態資源響應給客戶端;
如果客戶端瀏覽器訪問的是動態資源,那麼伺服器接收到請求後會將動態資源轉換成靜態資源,然後進行響應。

5.5 配置虛擬主機

先說下域名解析,當我們在瀏覽器輸入一個域名,首先系統會先訪問本機的hosts文件,一般hosts文件的路徑是`C:WindowsSystem32driversetchosts`,如果hosts文件上有對域名的解析,則以這個為準;如果hosts上沒有找到目標域名解析,則再從DNS伺服器上去找解析。
因此我們來做一個試驗,當我們在本機瀏覽器上輸入一個`jd.com`域名,如何讓瀏覽器指向我們本機部署的web服務?比如上面我們把127.0.0.1訪問的網站部署在F磁碟的tanWeb文件中。操作秘密就是在hosts文件中做處理。如下圖

保存,瀏覽器輸入域名`jd.com`或`tmall.com`,我們看到瀏覽器上顯示的是我們本地web網站的頁面:

再說虛擬主機,意思是在一台電腦上,可以運行多個web網站,每個虛擬主機之間相互獨立。比如我在瀏覽器輸入`jd.com`和`tmall.com`,它們分別訪問本機web服務的不同目錄。
測試一下:

  1. 在F盤下tanWeb目錄下分別新建一個tmall文件夾,和jd文件夾,然後每個文件夾創建一個index.html網頁
  2. 在上面已經在hosts文件上已經設置對於域名`jd.com`和`tmall.com`的解析指向`127.0.0.1`,接下來是要修改Apache裡面的配置;
  3. 打開Apache裡面的httpd.conf文件,找到468行左右虛擬主機的配置,去掉注釋#,意思是啟用虛擬主機配置`Include conf/extra/httpd-vhosts.conf`
  4. 然後找到httpd-vhosts.conf文件,打開編輯,找到最下面關於虛擬主機的配置,配置每個虛擬主機對應的物理網站根目錄,以及訪問域名。相關截圖如下:

然後再瀏覽器輸入`tmall.com`和`jd.com`,看看瀏覽器效果:

然後再說下從瀏覽器輸入`jd.com`時,它是如何找到本機頁面並展示的:

  1. 瀏覽器輸入`jd.com`,然後瀏覽器先去尋找本機的`C:WindowsSystem32driversetchosts`文件
  2. 在hosts文件里尋找`jd.com`映射,剛好找到hosts文件有一個`127.0.0.1 jd.com`映射,`127.0.0.1`代表的是本機,然後找到本機web伺服器Apache軟體
  3. 讀取Apache的httpd.confg文件,裡面已經設置好了web根目錄,並且啟動了虛擬主機;
  4. 然後讀取虛擬主機配置文件httpd-vhosts.conf, 裡面已經配置了`jd.com`域名對應的物理網站路徑,最後找到這個目錄下的頁面,展示到瀏覽器上。

大致過程就是這樣。