nginx
1.課程目標(biāo)目標(biāo)1:掌握nginx的安裝
目標(biāo)2:掌握nginx的靜態(tài)網(wǎng)站部署
目標(biāo)3:理解nginx的反向代理與負(fù)載均衡,能夠配置反向代理與負(fù)載均衡
2.nginx的安裝與啟動(dòng)nginx 是一款高性能的 http 服務(wù)器/反向代理服務(wù)器及電子郵件(imap/pop3)代理服務(wù)器。由俄羅斯的程序設(shè)計(jì)師伊戈?duì)枴の魉鞣颍╥gor sysoev)所開發(fā),官方測(cè)試 nginx 能夠支支撐 5 萬并發(fā)鏈接,并且 cpu、內(nèi)存等資源消耗卻非常低,運(yùn)行非常穩(wěn)定。
nginx 應(yīng)用場(chǎng)景:
1、http 服務(wù)器。nginx 是一個(gè) http 服務(wù)可以獨(dú)立提供 http 服務(wù)??梢宰鼍W(wǎng)頁靜態(tài)服務(wù)器。
2、虛擬主機(jī)。可以實(shí)現(xiàn)在一臺(tái)服務(wù)器虛擬出多個(gè)網(wǎng)站。例如個(gè)人網(wǎng)站使用的虛擬主機(jī)。
3、反向代理,負(fù)載均衡。當(dāng)網(wǎng)站的訪問量達(dá)到一定程度后,單臺(tái)服務(wù)器不能滿足用戶的請(qǐng)求時(shí),需要用多臺(tái)服務(wù)器集群可以使用 nginx 做反向代理。并且多臺(tái)服務(wù)器可以平均分擔(dān)負(fù)載,不會(huì)因?yàn)槟撑_(tái)服務(wù)器負(fù)載高宕機(jī)而某臺(tái)服務(wù)器閑置的情況。
重新準(zhǔn)備一臺(tái)虛擬機(jī)作為服務(wù)器。比如ip地址為192.168.177.129
(1)需要安裝 gcc 的環(huán)境【此步省略】
(2)第三方的開發(fā)包。
? pcre
pcre(perl compatible regular expressions)是一個(gè) perl 庫(kù),包括 perl 兼容的正則表達(dá)式庫(kù)。nginx 的 http 模塊使用 pcre 來解析正則表達(dá)式,所以需要在 linux 上安裝 pcre 庫(kù)。
注:pcre-devel 是使用 pcre 開發(fā)的一個(gè)二次開發(fā)庫(kù)。nginx 也需要此庫(kù)。
? zlib
zlib 庫(kù)提供了很多種壓縮和解壓縮的方式,nginx 使用 zlib 對(duì) http 包的內(nèi)容進(jìn)行 gzip,所以需要在 linux 上安裝 zlib 庫(kù)。
? openssl
openssl 是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 ssl 協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用。nginx 不僅支持 http 協(xié)議,還支持 https(即在 ssl 協(xié)議上傳輸 http),所以需要在 linux安裝 openssl 庫(kù)。
官方網(wǎng)站下載 nginx:http://nginx.org/
我們課程中使用的版本是 1.8.0 版本。
第一步:把 nginx 的源碼包nginx-1.8.0.tar.gz上傳到 linux 系統(tǒng)
第二步:解壓縮
第三步:進(jìn)入nginx-1.8.0目錄 使用 configure 命令創(chuàng)建一 makefile 文件。
執(zhí)行后可以看到makefile文件
第四步:編譯
第五步:安裝
注意:?jiǎn)?dòng)nginx 之前,上邊將臨時(shí)文件目錄指定為/var/temp/nginx/client, 需要在/var 下創(chuàng)建此 目錄
進(jìn)入到nginx目錄下的sbin目錄
輸入命令啟動(dòng)nginx
啟動(dòng)后查看進(jìn)程
地址欄輸入虛擬機(jī)的ip即可訪問(默認(rèn)為80端口)
關(guān)閉 nginx:
或者
重啟 nginx:
1、先關(guān)閉后啟動(dòng)。
2、刷新配置文件:
3.nginx靜態(tài)網(wǎng)站部署將/資料/靜態(tài)頁面/index目錄下的所有內(nèi)容 上傳到服務(wù)器的/usr/local/nginx/html下即可訪問
虛擬主機(jī),也叫“網(wǎng)站空間”,就是把一臺(tái)運(yùn)行在互聯(lián)網(wǎng)上的物理服務(wù)器劃分成多個(gè)“虛擬”服務(wù)器。虛擬主機(jī)技術(shù)極大的促進(jìn)了網(wǎng)絡(luò)技術(shù)的應(yīng)用和普及。同時(shí)虛擬主機(jī)的租用服務(wù)也成了網(wǎng)絡(luò)時(shí)代的一種新型經(jīng)濟(jì)形式。
(1)上傳靜態(tài)網(wǎng)站:
將/資料/靜態(tài)頁面/index目錄上傳至 /usr/local/nginx/index下
將/資料/靜態(tài)頁面/regist目錄上傳至 /usr/local/nginx/regist下
(2)修改nginx 的配置文件:/usr/local/nginx/conf/nginx.conf
(3)訪問測(cè)試:
地址欄輸入http://192.168.177.129/:81 可以看到首頁面
地址欄輸入http://192.168.177.129/:82 可以看到注冊(cè)頁面
什么是域名:
域名(domain name),是由一串用“點(diǎn)”分隔的字符組成的internet上某一臺(tái)計(jì)算機(jī)或計(jì)算機(jī)組的名稱,用于在數(shù)據(jù)傳輸時(shí)標(biāo)識(shí)計(jì)算機(jī)的電子方位(有時(shí)也指地理位置,地理上的域名,指代有行政自主權(quán)的一個(gè)地方區(qū)域)。域名是一個(gè)ip地址上有“面具” 。域名的目的是便于記憶和溝通的一組服務(wù)器的地址(網(wǎng)站,電子郵件,ftp等)。域名作為力所能及難忘的互聯(lián)網(wǎng)參與者的名稱。域名按域名系統(tǒng)(dns)的規(guī)則流程組成。在dns中注冊(cè)的任何名稱都是域名。域名用于各種網(wǎng)絡(luò)環(huán)境和應(yīng)用程序特定的命名和尋址目的。通常,域名表示互聯(lián)網(wǎng)協(xié)議(ip)資源,例如用于訪問因特網(wǎng)的個(gè)人計(jì)算機(jī),托管網(wǎng)站的服務(wù)器計(jì)算機(jī),或網(wǎng)站本身或通過因特網(wǎng)傳送的任何其他服務(wù)。世界上第一個(gè)注冊(cè)的域名是在1985年1月注冊(cè)的。
域名級(jí)別:
(1)頂級(jí)域名
頂級(jí)域名又分為兩類:
一是國(guó)家頂級(jí)域名(national top-level domainnames,簡(jiǎn)稱ntlds),200多個(gè)國(guó)家都按照iso3166國(guó)家代碼分配了頂級(jí)域名,例如中國(guó)是cn,美國(guó)是us,日本是jp等;
二是國(guó)際頂級(jí)域名(international top-level domain names,簡(jiǎn)稱itds),例如表示工商企業(yè)的 .com .top,表示網(wǎng)絡(luò)提供商的.net,表示非盈利組織的.org,表示教育的.edu,以及沒有限制的中性域名如.xyz等。大多數(shù)域名爭(zhēng)議都發(fā)生在com的頂級(jí)域名下,因?yàn)槎鄶?shù)公司上網(wǎng)的目的都是為了贏利。但因?yàn)樽?014年以來新頂級(jí)域名的發(fā)展,域名爭(zhēng)議案件數(shù)量增長(zhǎng)幅度越來越大 。為加強(qiáng)域名管理,解決域名資源的緊張,internet協(xié)會(huì)、internet分址機(jī)構(gòu)及世界知識(shí)產(chǎn)權(quán)組織(wipo)等國(guó)際組織經(jīng)過廣泛協(xié)商, 在原來三個(gè)國(guó)際通用頂級(jí)域名:(com)的基礎(chǔ)上,新增加了7個(gè)國(guó)際通用頂級(jí)域名:firm(公司企業(yè))、store(銷售公司或企業(yè))、web(突出www活動(dòng)的單位)、arts(突出文化、娛樂活動(dòng)的單位)、rec (突出消遣、娛樂活動(dòng)的單位)、info(提供信息服務(wù)的單位)、nom(個(gè)人),并在世界范圍內(nèi)選擇新的注冊(cè)機(jī)構(gòu)來受理域名注冊(cè)申請(qǐng)。
例如:baidu.com
(2)二級(jí)域名
二級(jí)域名是指頂級(jí)域名之下的域名,在國(guó)際頂級(jí)域名下,它是指域名注冊(cè)人的網(wǎng)上名稱,例如 ibm,yahoo,microsoft等;在國(guó)家頂級(jí)域名下,它是表示注冊(cè)企業(yè)類別的符號(hào),例如.top,com,edu,gov,net等。
中國(guó)在國(guó)際互聯(lián)網(wǎng)絡(luò)信息中心(inter nic) 正式注冊(cè)并運(yùn)行的頂級(jí)域名是cn,這也是中國(guó)的一級(jí)域名。在頂級(jí)域名之下,中國(guó)的二級(jí)域名又分為類別域名和行政區(qū)域名兩類。類別域名共7個(gè), 包括用于科研機(jī)構(gòu)的ac;用于工商金融企業(yè)的com、top;用于教育機(jī)構(gòu)的edu;用于政府部門的 gov;用于互聯(lián)網(wǎng)絡(luò)信息中心和運(yùn)行中心的net;用于非盈利組織的org。而行政區(qū)域名有34個(gè),分別對(duì)應(yīng)于中國(guó)各省、自治區(qū)和直轄市。
例如:map.baidu.com
(3)三級(jí)域名
三級(jí)域名用字母( a~z,a~z,大小寫等)、數(shù)字(0~9)和連接符(-)組成, 各級(jí)域名之間用實(shí)點(diǎn)(.)連接,三級(jí)域名的長(zhǎng)度不能超過20個(gè)字符。如無特殊原因,建議采用申請(qǐng)人的英文名(或者縮寫)或者漢語拼音名 (或者縮寫) 作為三級(jí)域名,以保持域名的清晰性和簡(jiǎn)潔性。
例如:
item.map.baidu.com
域名與ip綁定:
一個(gè)域名對(duì)應(yīng)一個(gè) ip 地址,一個(gè) ip 地址可以被多個(gè)域名綁定。
本地測(cè)試可以修改 hosts 文件(c:dowstem32vers)
可以配置域名和 ip 的映射關(guān)系,如果 hosts 文件中配置了域名和 ip 的對(duì)應(yīng)關(guān)系,不需要走dns 服務(wù)器。
192.168.177.129 www.hmtravel.com
192.168.177.129 regist.hmtravel.com
做好域名指向后,修改nginx配置文件
執(zhí)行以下命令,刷新配置
[root@localhost sbin]# ./nginx -s reload
測(cè)試:
地址欄輸入http://www.hmtravel.com/
地址欄輸入http://regist.hmtravel.com/
4.nginx反向代理與負(fù)載均衡反向代理(reverse proxy)方式是指以代理服務(wù)器來接受internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)反向代理服務(wù)器。
首先我們先理解正向代理,如下圖:
正向代理是針對(duì)你的客戶端,而反向代理是針對(duì)服務(wù)器的,如下圖
(1) 將travel案例部署到tomcat中(root目錄),上傳到服務(wù)器。
(2)啟動(dòng)tomcat,輸入網(wǎng)址http://192.168.177.129:8080 可以看到網(wǎng)站首頁
(1)在nginx主機(jī)修改 nginx配置文件
負(fù)載均衡 建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。
負(fù)載均衡,英文名稱為load balance,其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行,例如web服務(wù)器、ftp服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。
(1)將剛才的存放工程的tomcat復(fù)制三份,修改端口分別為8080 ,8081,8082 。
(2)分別啟動(dòng)這三個(gè)tomcat服務(wù)。
(3)為了能夠區(qū)分是訪問哪個(gè)服務(wù)器的網(wǎng)站,可以在首頁標(biāo)題加上標(biāo)記以便區(qū)分。
修改 nginx配置文件:
地址欄輸入http:// www.hmtravel.com / 刷新觀察每個(gè)網(wǎng)頁的標(biāo)題,看是否不同。
經(jīng)過測(cè)試,三臺(tái)服務(wù)器出現(xiàn)的概率各為33.3333333%,交替顯示。
如果其中一臺(tái)服務(wù)器性能比較好,想讓其承擔(dān)更多的壓力,可以設(shè)置權(quán)重。
比如想讓no.1出現(xiàn)次數(shù)是其它服務(wù)器的2倍,則修改配置如下:
經(jīng)過測(cè)試,每刷新四次,有兩次是8081