Web技術與Nginx網站環(huán)境部署教程
一、Web基礎
1.域名系統(tǒng)DNS
①域名的概念
網絡是基于TCP/IP 協(xié)議進行通信和連接的,每一臺主機都有一個唯一的標識(固定的IP 地址),用以區(qū)別在網絡上成千上萬個用戶和計算機。
網絡在區(qū)分所有與之相 連的網絡和主機時,均采用一種唯一、通用的地址格式,即每一個與網絡相連接的計算 機和服務器都被指派一個獨一無二的地址。為了保證網絡上每臺計算機的IP 地址的唯性,用戶必須向特定機構申請注冊,分配IP 地址。網絡中的地址方案分為兩套:IP地址系統(tǒng)和域名地址系統(tǒng)。這兩套地址系統(tǒng)其實是一一對應的關系。
IP 地址用二進制數(shù) 來表示,每個IP 地址長32 比特,由4個小于256 的數(shù)字組成,數(shù)字之間用點間隔,例如 100.10.0.1 表示一個|P 地址。
由于IP 地址是數(shù)字標識,使用時難以記憶和書寫,因此在IP 地址的基礎上又發(fā)展出一種符號化的地址方案,來代替數(shù)字型的IP 地址。每個符號化的地址都與特定的IP 地址對應,這樣網絡上的資源訪問起來就容易得多了。
這個與網絡上的數(shù)字型 IP 地址相對應的字符型地址,就被稱為域名。通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易地找到你。
②域名的結構
以一個常見的域名為例說明其結構。圖1.1 中,www.baidu.com 網址是由二部分組成,標號“baidu"是這個域名的主體,而最后的標號“com"則是該域名的后綴,代表的這是一個com 國際域名,是頂級域名,而前面的www 是主機名**
DNS 規(guī)定,域名中的標號都由英文字母和數(shù)字組成,每一個標號不超過63 個字符,也不區(qū)分大小寫字母。標號中除連字符(-)外不能使用其他的標點符號。級別最低的域名寫在最左邊,而級別最高的域名寫在最右邊。由多個標號組成的完整域名總共不超過255 個字符。
一些國家也紛紛開發(fā)使用采用本民族語言構成的域名,如德語,法語。中國也開始使用中文域名,但可以預計的是,在中國國內今后相當長的時期內,以英語為基礎的域名(即英文域名)仍然是主流
③域名結構類型
- 根域:指的是根服務器,要用來管理互聯(lián)網的主目錄,全世界只有13臺。1個為 主根服務器,放置在美國。其余 12 個均為輔根服務器,其中9個放置在美國;歐洲 2個,位于英國和瑞典;亞洲 1個,位于日本。所有根服務器均由美國政府授權的互聯(lián)網域名與號碼分配機構 ICANN 統(tǒng)一管理,負責全球互聯(lián)網域名根服務器、域名體系和 IP 地址等的管理。
- 頂級域:包括組織域和國家/地區(qū)域名。域名的最右側是國家/地區(qū)域名,國家代碼 由兩個字母組成的如.cn,.uk,,de 和,jp,其中.cn 是中國專用的頂級域名。在國家/地區(qū)域名左側,是組織域名,常見的.com 用于商業(yè)機構,.net 用于網絡組織,.org 用于各種組織包括非盈利組織。
- 二級域名:在頂級域名之前的域名,在頂級域名前面,它是指域名注冊人的網上名 稱例如 baidu,ibm ,yahoo ,microsoft 等。
- FQDN:是主機名.DNS 后綴,是指主機名加上全路徑,全路徑中列出了序列中所有 域成員。全域名可以從邏輯上準確地表示出主機在什么地方,也可以說全域名是主 機名的一種完全表示形式。從全域名中包含的信息可以看出主機在域名樹中的位置。
2.Hosts文件
Hosts 文件是一個用于存儲計算機網絡中節(jié)點信息的文件,它可以將主機名映射到相應的IP 地址,實現(xiàn)DNS 的功能,它可以由計算機的用戶進行修改控制
①hosts文件的作用
在網絡上訪問網站,要首先通過DNS 服務器把要訪問的域名解析成IP 地址后,計 算機才能對這個網絡域名作網站進行訪問。
對于每個域名請求,如果都要等待域名服務器解析后返回IP 信息,那么訪問網絡的效率就會降低,因為DNS 做域名解析和返回IP 都需要時間。為了提高對經常訪問的 網絡域名的解析效率,可以通過利用在 Hosts 文件中建立域名和IP 的映射關系來達到 目的。根據系統(tǒng)規(guī)定,在進行 DNS 請求以前,系統(tǒng)會先檢查自己的Hosts 文件中是否 有這個網絡域名映射關系。如果有則調用這個!P 地址映射,如果沒有,再向己知的DNS 服務器提出域名解析,即 Hosts 的請求級別比DNS 高。
②修改hosts文件
Windows 系統(tǒng)中Hosts 文件存儲在目錄c:lwindowslsystem32ldriversetc\下面,用記事本可以對其進行修改,CentOs 系統(tǒng)中Hosts 文件存儲在目錄/etc/目錄下面,用vim/etc/hosts 可以對其進行修改,如在文件中加上以下代碼
當訪問www.baidu.com 時,發(fā)現(xiàn)本機hosts 文件中有映射的IP 地址,則訪問這個iP地址。
3.DNS
在互聯(lián)網上域名與IP 地址之間是一一對應的,域名雖然便于人們記憶,但機器之間只能互相認識IP 地址,它們之間的轉換工作稱為域名解析,域名解析要由專門的域名解析系統(tǒng)來完成,DNS 就是進行域名解析的系統(tǒng)
主機名到 IP 地址的映射有兩種方式:
- 靜態(tài)映射:每臺設備上都配置主機到 IP 地址的映射,各設備獨立維護自己的映射 表,而且只供本設備使用:
- 動態(tài)映射:建立一套域名解析系統(tǒng)(DNS),只在專門的 DNS 服務器上配置主機 到 IP 地址的映射,網絡上需要使用主機名通信的設備,首先需要到 DNS 服務器查詢主機所對應的IP 地址。
通過主機名,最終得到該主機名對應的 IP 地址的過程叫做域名解析(或主機名解 析)。在解析域名時,可以首先采用靜態(tài)域名解析的方法。如果靜態(tài)域名解析不成功,再采用動態(tài)域名解析的方法??梢詫⒁恍┏S玫挠蛎湃腱o態(tài)域名解析表中,這樣可以 大大提高域名解析效率。
在 windows 命令行模式中輸入網絡査詢命令 nslookup www.baidu.com,可以查詢 到域名對應的 IP 地址
4.域名注冊
域名注冊是 Internet 中用于解決地址對應問題的一種方法。域名注冊遵循先申請先注冊原則,管理機構對申請人提出的域名是否違反了第三方的權利不進行任何實質審 查。每個域名都是獨一無二的,不可重復的。
域名注冊的所有者都是以域名注冊提交人填寫域名訂單的信息為準的,成功 24 小時后,即可在國際(ICANN)、國內(CNNIC)管理機構査詢 whois 信息(域名所有 者等信息)。下面是域名注冊步驟
二.網頁與HTML
網頁是構成網站的基本元素,是承載各種網站應用的平臺。通俗地說,網站就是由 網頁組成的。如果只有域名和虛擬主機而沒有制作任何網頁,那么客戶仍舊無法訪問這個網站。因為網頁是由HTML(超文本標記語言)編寫的。
1.網頁概述
- 網頁是一個文件,他存放在世界某個角落的某一部計算機中,而這部計算機必須是與互聯(lián)網相連的。網頁經由網址(URL)來識別與存取,是互聯(lián)網中的一"頁”。
- 文本:文本是網頁上最重要的信息載體與交流工具,網頁中的主要信息一般都以文本形式為主。
- 圖像:圖像元素在網頁中具有提供信息并展示直觀形象的作用。
- Flash 動畫:動畫在網頁中的作用是有效地吸引訪問者更多的注意。
- 聲音:聲音是多媒體和視頻網頁重要的組成部分。
- 視頻:視頻文件的采用使網頁效果更加精彩且富有動感
- 表格:表格是在網頁中用來控制頁面信息的布局方式。導航欄:導航欄在網頁中是一組超鏈接,其連接的目的端是網頁中重要的頁面交互式表單:表單在網頁中通常用來聯(lián)接數(shù)據庫并接受訪問用戶在瀏覽器端輸入的數(shù)據,利用數(shù)據庫為客戶端與服務器端提供更多的互動。
網頁相關概念:
- 域名:是瀏覽網頁時輸入的網址
- HTTP:用來傳輸網頁的通信協(xié)議,使用瀏覽器訪問網址時,在域名前面要加上http:// 表示使用 http 協(xié)議傳輸網頁
- URL:是一種萬維網尋址系統(tǒng)
- HTML:編寫網頁的超文本表示語言
- 超鏈接:具備將網站中不同網頁鏈接起來的功能。
- 發(fā)布:將制作好的網頁上傳到服務器供用戶訪問的過程
2.HTML概述
HTML 叫做超文本標記語言,是一種規(guī)范,也是一種標準,它通過標記符號來標記 要顯示的網頁中的各個部分。網頁文件本身是一種文本文件,通過在文本文件中添加標記符,可以告訴瀏覽器如何顯示其中的內容。
如:文字如何處理,畫面如何安排,圖片如何顯示等。瀏覽器按順序閱讀網頁文件,然后根據標記符解釋和顯示其標記的內容,對書寫出錯的標記將不指出其錯誤,且不停止其解釋執(zhí)行過程,開發(fā)者只能通過顯示效 果來分析出錯原因和出錯部位。但需要注意的是,不同的瀏覽器,對同一標記符可能會 有不完全相同的解釋,因而可能會有不同的顯示效果。
HTML 文件可以使用任何能夠生成txt 文件的文本編輯器來編輯,生成超文本標記語言文件,只用修改文件名后綴為".html"或".htm"即可。
3.HTML基本標簽
①HTML語法規(guī)則
- HTML 標簽采用雙標記符的形式,前后標記符對應,分別表示標記開始和結束,標記符中間的內容被標簽描述。
- 前標記符由“"表示,結尾標記符多了一個“/"由“"表示。
②HTML文件結構
- HTML 文件最外層由表示,說明該文件是用 HTML 語言描述的。
- 在它里面是并列的頭標簽()和內容標簽(),最基本的 HTML 文件結構如下:
常用的頭標簽
內容標簽常用的標簽
4.網站和主頁
網站是由網頁組成的,包含多個網頁頁面,具有獨立域名、獨立存放空間的內容集 合這些內容可能是網頁,也可能是程序或其他文件。
主頁(首頁)是用戶打開瀏覽器時默認打開的網頁。
當一個網站服務器收到一臺電腦上網絡瀏覽器的消息連接請求時,便會向這臺計算機發(fā)送這個文檔。當在瀏覽器的地址欄輸入域名,而未指向特定目錄或文件時,通常瀏覽器會打開網站的首頁。網站首頁往往會被編輯得易于了解該網站提供的信息,并引導互聯(lián)網用戶瀏覽網站其他部分的內容。這部分內容一般被認為是一個目錄性質的內容
5.Web1.0與Web2.0
Web1.0 是指早期互聯(lián)網模式,以門戶網站為主,內容由網站運營商提供,以巨大 的點擊量和增值服務為主盈利手段。
①Web2.0
是相對于Web1.0 的新的時代。指的是一個利用Web 的平臺,由用戶主 導而生成的內容互聯(lián)網產品模式,如博客、社交網站等。為了區(qū)別傳統(tǒng)由網站雇員主導 生成的內容而定義為第二代互聯(lián)網,即Web2.0,是一個新的時代。特征如下:(1)用戶分享。在Web2.0 模式下,可以不受時間和地域的限制分享各種觀點。用戶可以得到自己需要的信息也可以發(fā)布自己的觀點。
(2)以興趣為聚合點的社群。在Web2.0 模式下,聚集的是對某個或者某些問題感興趣的群體,可以說,在無形中已經產生了細分市場。
(3)開放的平臺,活躍的用戶。平臺對于用戶來說是開放的,而且用戶因為興趣而保持比較高的忠誠度,他們會積極的參與其中
三.靜態(tài)網頁與動態(tài)網頁
1.靜態(tài)網頁
在網站設計中,純粹 HTML格式的網頁通常被稱為"靜態(tài)網頁”,靜態(tài)網頁是標準的 HTML 文件,它的文件擴展名是.htm、.html。
靜態(tài)網頁是網站建設的基礎,早期的網 站一般都是由靜態(tài)網頁制作的。
靜態(tài)網頁也可以出現(xiàn)各種動態(tài)的效果,如.GIF 格式的動畫、FLASH、滾動字幕等。這些"動態(tài)效果"只是視覺上的,與下面將要介紹的動態(tài)網頁是不同的概念
2.動態(tài)網頁
動態(tài)網頁URL的后綴不是 .htm、.htm1、.shtml、.xml 等靜態(tài)網頁的常見網頁制作格式,而是以.aspx、.asp、.jsp、.php、.per1、.cgi 等形式為后綴,并且在動態(tài)網頁網址中有一個 標志性的符號-“?”。
動態(tài)網頁是基本的 html 語法規(guī)范與 Java、PHP、C#等高級程序設計語言、數(shù)據庫 編程等多種技術的融合,以期實現(xiàn)對網站內容和風格的高效、動態(tài)和交互式的管理。因此,從這個意義上來講,凡是結合了 HTML 以外的高級程序設計語言和數(shù)據庫技術進行 的網頁編程技術生成的網頁都是動態(tài)網頁
3.動態(tài)網頁語言
早期的動態(tài)網頁主要采用通用網關接口CGl(Common Gateway Interface)技術,雖然CG!技術已經發(fā)展成熟而且功能強大,但由于編程困難、效率低下、修改復雜,所以有逐漸被新技術取代的趨勢。
目前常用的動態(tài)網頁編程語言如下:
PHP 即 Hypertext Preprocessor(超文本預處理器),它是當今 Internet 上最為火 熱的腳本語言,其語法借鑒了 C、Java、PERL等語言,但只需要很少的編程知識 你就能使用 PHP 建立一個真正交互的 web 站點。JSP 即 Java Server Pages(Java 服務器頁面),它是由 Sun Microsystem 公司于 1999 年6月推出的新技術,是基于 Javaservlet 以及整個 Java 體系的web 開發(fā)技術。
Python 是一種面向對象、跨平臺的動態(tài)類計算機程序設計語言,最初被設計用于 編寫自動化腳本(she11),隨著版本的不斷更新和語言新功能的添加,越來越多被用 于獨立的大型項目開發(fā)。
Ruby 是一種簡單快捷的面向對象(面向對象程序設計)腳本語言,在 20 世紀 90年代由日本人松本行弘(Yukihiro Matsumoto)開發(fā),遵守GPL 協(xié)議和 Ruby License。它的靈感與特性來自于 Per1、smalltalk、Eiffe1、Ada 以及 Lisp 語言。
四.HTTP協(xié)議
HTTP 協(xié)議采用了請求/響應模型??蛻舳讼蚍掌靼l(fā)送一個請求,請求頭包含請求的方法、URL、協(xié)議版本、以及包含請求修飾符、客戶信息和內容的類似于MIME 的消息結構。
服務器以一個狀態(tài)行作為響應,響應的內容包括消息協(xié)議的版本,成功或者錯誤編碼加上服務器信息、實體元信息以及可能的實體內容
使用的最多而且效率和安全性1.1是最好用的版本
HTTP/1.1 當前版本。持久連接被默認采用,并能很好地配合代理服務器工作。
還支持以管道方式同時發(fā)送多個請求,以便降低線路負載,提高傳輸速度。
2.HTTP方法
HTTP 支持幾種不同的請求命令,這些命令被稱為 HTTP 方法(HTTP method)每條 HTTP 請求報文都包含一個方法,告訴服務器要執(zhí)行什么動作,包括:獲取一個頁面,運行一個網關程序,刪除一個文件等。最常用的獲取資源的方法是GET、POST
GET 方法采用的是 URL 后綴的形式,比如 http://www.test.com/a.php?Id=123
就是一個 GET 請求,服務器接收后可以解析出 Id=123 。而 POST 方法不需要在 URL 中 顯示”?Id=123”,參數(shù)作為內容進行了隱藏的提交。因此,表單類或者有用戶名、密碼 等內容提交時建議使用 POST 方法。
GET 方法在 URL 上顯示參數(shù),而 URL 是有長度限制,故不適合提交過大的數(shù)據。 GET方法可以被瀏覽器緩存,當請求已經被請求過一次的 URL 時,瀏覽器不需要向服 務器再次發(fā)出請求,直接在本地緩存中獲得頁面。
GET 和 POST 方法
3.HTTP狀態(tài)碼
- HTTP 狀態(tài)碼(HTTP Status Code )是用以表示網頁服務器 HTTP 響應狀態(tài)的3 位數(shù)字代碼,當瀏覽器請求某一URL 時,服務器根據處理情況返回相應的處理狀態(tài)。
- HTTP 狀態(tài)碼可以分為五大類,如圖 1.2 所示。其中 1XX 表示信息提示,2XX、3XX 表 示請求正常,4XX、5XX 表示出現(xiàn)異常情況
4.HTTP請求流程分析
用戶在瀏覽器輸入 URL 訪問時,發(fā)起HTTP 請求報文,請求中包括請求行、請求頭、請求體,服務器收到請求后返回響應報文,包括狀態(tài)行、響應頭、響應體
①請求報文
請求行:請求行由請求方法、URL以及協(xié)議版本三部分組成。請求頭:請求頭為請求報文添加了一些附加信息,由"名/值"對組成,每行一對,名和值之間使用冒號分隔
- 空行:請求頭部的最后會有一個空行,表示請求頭部結束,接下來為請求體,這一 行非常重要,必不可少。
- 請求體:請求體是請求提交的參數(shù),GET方法已經在URL中指明了參數(shù),所以提交時沒有數(shù)據。POST 方法提交的參數(shù)在請求體中。
②響應報文
**狀態(tài)行:狀態(tài)行由協(xié)議版本,狀態(tài)碼,狀態(tài)碼描述三部分組成響應頭: 響應頭與請求頭部類似,為響應報文添加了一些附加信息。常見響應頭部 **
- 空行:響應頭部的最后會有一個空行,表示響應頭部結束,
- 響應體:服務器返回的相應HTML 數(shù)據,瀏覽器對其解析后顯示頁面
五.Nginx網站環(huán)境部署
在各種網站服務器軟件中,除了 Apache HTTP Server 外,還有一款輕量級的 HTTP 服務器軟件–Nginx,由俄羅斯的 lgor Sysoev 開發(fā),其穩(wěn)定、高效的特性逐漸被越來越多的用戶認可。將講解 Nginx 服務的基本構建、訪問控制方式、虛擬主機的搭建,還有應用廣泛的LNMP 架構服務器的部署方式,并對 PHP FPM 模塊如何支持 PHP 語言進行討論
1.Nginx服務基礎
Nginx(發(fā)音為[engine x])專為性能優(yōu)化而開發(fā),其最知名的優(yōu)點是它的穩(wěn)定性和低統(tǒng)資源消耗,以及對 HTTP 并發(fā)連接的高處理能力(單臺物理服務器可支持30000~50000個并發(fā)請求)。正因為如此,大量提供社交網絡、新聞資訊、電子商務及虛擬主機等服務的企業(yè)紛紛選擇 Nginx 來提供 web 服務
2.編譯安裝Nginx
①安裝支持的軟件
②創(chuàng)建運行用戶和組
③編譯安裝nginx
3.nginx運行控制
②啟動停止nginx
psmisc 提供 killall 命令
//關閉,選項 -S QUIT 等同于 -3:killall -3 nginx
重載 選項-S HUP 等于 killall -1 nginx
訪問nginx
③添加nginx加入系統(tǒng)服務
備注:
fork 其實本身就是一個進程。
當執(zhí)行 Execstart 啟動 nginx 進程的時候,fork 進程自身以 daemon 模式運行,將 nginx作為一個子進程,并啟動起來這個 nginx 的子進程。然后 fork 父進程退出。并將 fork 出的 nginx 子進程作為服務主進程進行跟蹤
4.配置文件nginx.conf
①全局配置
user nobody ##運行用戶 worker _processes 1; ##工作進程數(shù)量 #error log logs/error.log; ##錯誤日志位置 #pid logs/nginx.pid; pid位置
②I/O事件配置
events { use epoll; ##使用 epol 模型 worker connections 4096; ##并發(fā)進程處理 4096 個連接
epo1ll模式能夠提高并發(fā)連接,并支持非活躍連接③HTTP配置
④統(tǒng)計訪問數(shù)量
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Nginx反向代理之proxy_redirect指令的實現(xiàn)
proxy_redirect指令是用來重置頭信息中的"Location"和"Refresh"的值,本文就來詳細的介紹一下如何使用,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-08-08