神器 Nginx 的學習手冊_第1頁
神器 Nginx 的學習手冊_第2頁
神器 Nginx 的學習手冊_第3頁
神器 Nginx 的學習手冊_第4頁
神器 Nginx 的學習手冊_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

神器Nginx的學習手冊(建議收藏)

Nginx專為性能優(yōu)化而開發(fā),性能是其最重要的要求,

十分注重效率,有報告Nginx能支持高達50000個并發(fā)連

接數(shù)。

01

Nginx知識網(wǎng)結構圖

Nginx的知識網(wǎng)結構圖如下:

正向作

反向代理

負載均衡

動靜分離

反向彳

負載均衡

動靜分離

高可用

02

反向代理

正向代理:局域網(wǎng)中的電腦用戶想要直接訪問網(wǎng)絡是不可行

的,只能通過代理服務器來訪問,這種代理服務就被稱為正

向代理。

GLAN正向代理

n

o

onServer

反向代理:客戶端無法感知代理,因為客戶端訪問網(wǎng)絡不需

要配置,只要把請求發(fā)送到反向代理服務器,由反向代理服

務器去選擇目標服務器獲取數(shù)據(jù),然后再返回到客戶端。

此時反向代理服務器和目標服務器對外就是一個服務器,暴

露的是代理服務器地址,隱藏了真實服務器IP地址。

查詢

但是隨著信息數(shù)量增長,訪問量和數(shù)據(jù)量飛速增長,普通架

構無法滿足現(xiàn)在的需求。

我們首先想到的是升級服務器配置,可以由于摩爾定律的日

益失效,單純從硬件提升性能已經(jīng)逐漸不可取了,怎么解決

這種需求呢?

我們可以增加服務器的數(shù)量,構建集群,將請求分發(fā)到各個

服務器上,將原來請求集中到單個服務器的情況改為請求分

發(fā)到多個服務器,也就是我們說的負載均衡。

圖解負載均衡:

均衡反向代理服務器版務端

假設有15個請求發(fā)送到代理服務器,那么由代理服務器根

據(jù)服務器數(shù)量,平均分配,每個服務器處理5個請求,這個

過程就叫做負載均衡。

04

動靜分離

為了加快網(wǎng)站的解析速度,可以把動態(tài)頁面和靜態(tài)頁面交給

不同的服務器來解析,加快解析的速度,降低由單個服務器

的壓力。

動靜分離之前的狀態(tài):

動崢分離反向代J!展務2S

紀乃態(tài)資等構動態(tài)責

賽第黑到tsca,里面

動靜分離之后:

06

Nginx安裝

Nginx如何在Linux安裝

參考鏈接:

/yujingl314/article/details/

97267369

Nginx常用命令

查看版本:

./nginx-v

啟動:

,/nginx

關閉(有兩種方式,推薦使用./nginx-squit):

./nginx-sstop

./nginx-squit

重新加載Nginx配置:

./nginx-sreload

Nginx的配置文件

配置文件分三部分組成:

①全局塊

從配置文件開始到events塊之間,主要是設置一些影響

Nginx服務器整體運行的配置指令。

并發(fā)處理服務的配置,值越大,可以支持的并發(fā)處理量越

多,但是會受到硬件、軟件等設備的制約。

~1一

_2fusernobody;

[3workerprocessesH;|

4

?events塊

影響Nginx服務器與用戶的網(wǎng)絡連接,常用的設置包括是

否開啟對多workprocess下的網(wǎng)絡連接進行序列化,是否

允許同時接收多個網(wǎng)絡連接等等。

支持的最大連接數(shù):

120events{_____________________

1workerconnections1024;

③HTTP塊

諸如反向代理和負載均衡都在此配置。

locationurl{

location指令說明,該語法用來匹配urlz語法如上:

?=:用于不含正則表達式的url前,要求字符串與url嚴格

匹配,匹配成功就停止向下搜索并處理請求。

?~:用于表示url包含正則表達式,并且區(qū)分大小寫。

?:用于表示url包含正則表達式,并且不區(qū)分大小寫。

?八~:用于不含正則表達式的url前,要求Nginx服務器找

到表示url和字符串匹配度最高的location后,立即使用

此location處理請求,而不再匹配。

?如果有url包含正則表達式,不需要有~開頭標識。

07

反向代理實戰(zhàn)

①配置反向代理

目的:在瀏覽器地址欄輸入地址www.123.com跳轉

Linux系統(tǒng)Tomcat主頁面。

②具體實現(xiàn)

先配置因為比較簡單,此處不再贅敘,并在

Tomcatz

Windows訪問:

€->C0?不安克I1就1“25.1328M

■M■0nM?M-T.MM■fmMOn-m.□MQ?■QmuR?W????IA-MKMQMM口■01TOORS

FindH?<p

ApacheTomcat/8.5.57

R0comm?ncMdR?《ding

StCMdfyCom^traiiMiiHo*Ta

MarnotfAppDcttonHOTT-TO

Dt”l0X,QuickSUH

具體流程如下圖:

tomcat

http://192.16825

132:8080

修改之前:

CQ①不安全32

:■:應用3【范仁杰”帥范…S茨flgHT-CSDNt?…卷SS-T.你8團8□ProcessOn-領…的項目■g—學習網(wǎng)范技術

Welcometonginx!

Ifyouseethispage,thenginxwebserverissuccessfullyinstalledand

working.Furtherconfigurationisrequired.

ForonlinedocumentationandsupportpleaserefertooglnjLorg.

Commercialsupportisavailableat.

Thankyouforusingnginx

配置如下:

server{

listen82__________

|servejnaae32;

#charsetkoi8-r;

#access_loglogs/host.access.logmain;

location/{

methtsl:____________________

proxypass:80801

indexindex.hrmlindex.him;

/yujing1314

再次訪問:

6》C。①不安至www.123xom

那應用C3【封匚篇S玖嗎IT.CSOM.FIS?-T.0proc??on?m.m字?網(wǎng)筵技"AW電IA

HomeDocumentationConfigurationExamplesWikiMailingListsFindHelp

ApacheTomcat/8.5.57

RecommendedReading:SccvecStatus

SecurityConskterationsHowTo

IUn*gorApp

)Ho*?Tb

Ho$f

Cluttering/Se>Bk>flRtplicationHQW-TQ

DeveloperQuickStart

Setup

FirNWebApoftEion

③反向代理2

目標:

?訪問http:〃132:9001/edu/直接轉至(J

32:8080

?訪問http:〃192.168.25.132:9001/vod/直接跳轉到

32:8081

準備:配置兩個Tomcatr端口分別為8080和8081,都

可以訪問,端口修改配置文件即可。

G■C。①WMtI19216&2S.1UBC?1

FE?3C3KWMT.CWMTftB?-T.<WQfl0W1?8?除MSMUttiTOOffW

HomtDocumtnUtiocCatfgcttonEm**WikiMailingUttsFind*lp

ApacheTomcaU8.5.57/APACHE.:v

Wyotfreseeingthis.y<x/vesuccessfullyinstalledTomcatCongratulations!

$??¥??SUflH

4-4CO<D1虬1&2幺1乂一

棗S?0UWU■MW.CSMt,?B?-T.KM■lMaOn??^

HomeDocum?flUt>OfiConAgs3Ei>mp4??WHMailingUtts-indHelp

ApacheTomcat/8.5.57

RecommendedReading

“curttyC8?d?fMkwHowD

ApoUcrtoflHow-1。

CIs“內(nèi)田"”防RtamonHOMS

O?"lop*rOuKkStart

IflBSALlflM

新建文件內(nèi)容分別添加8080!!!和8081!!!

▼▼|/root/apache-tomcat-8.5.57/webapps/edu

、名稱大小類

QZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

6a.html18BytesCh

'/usr/lccal/apache-tomcat-8.5.57/webapps/edu

名稱

6b.html

響應如下圖:

?CQ①不安全32:8080/edu/a.html

晚應B【苑仁杰廚為施…S玫瑰與窟:CSDN博…數(shù)百度一下,你就知道E3Process。”我的…

8080!!!!!!

<■今C。①不安全|32:8081/vod/b.html

正應用s【苑仁杰廊坊師范…3玫瑰與鹿[CSDN博…數(shù)百度一下,你就知道0Proce<

8081!!!!!!

具體配置如下:

35server{

36listen9001;

37server_name192.168.25.132;

38

39Ichersetkoi8-r;

40

41#access_loglogs/host.access.logmain;

42

43location/edu/{

44roothtml;

45proxy_passhum//127.0.0.1:2080;

46}

47location/vod/{

48roothtml;

49proxy_pass

50)

重新加載Nginx:

./nginx-sreload

訪問:

<-->0O①不安全|192,168.25.l32:9001/edu/a.Zml

:::應用S【苑仁杰席方師范…s玫瑰與鹿:CSDN博…數(shù)百度一下,你就知道I

080!!!!!!

<-->CO①不安全|32:9001/edu/a.html

:::應用S【苑仁杰席方師范…S玫瑰與鹿:CSDN博…S百度一下,你就知道|

080!!!!!!

實現(xiàn)了同一個端口代理,通過edu和vod路徑的切換顯示

不同的頁面。

反向代理小結

第一個例子:瀏覽器訪問,由host文件解析出服

務器ip地圻

192.168.25.132。

然后默認訪問80端口,而通過Nginx監(jiān)聽80端口代理到

本地的8080端口上,從而實現(xiàn)了訪問,最

終轉發(fā)到tomcat8080上去。

第二個例子:

?訪問http:〃32:9001/edu/直接跳轉至U

32:8080

?訪問http:〃32:9001/vod/直接跳轉至I」

32:8081

實際上就是通過Nginx監(jiān)聽9001端口,然后通過正則表

達式選擇轉發(fā)到8080還是8081的Tomcat上去。

08

負彝均衡實戰(zhàn)

①修改nginx.conf,如下圖:

34upstreammyserver{

server32:8080;

server32:8081;

37}

80server

81listen80;

82servername32;

83

84#charsetkoi8-r;

85

86學accessloglogs/host.access.logmain;

87

88location

89proxypassntv

90rootncnuL;

91indexindex,htrr.lindex.h.zr^;

92

②重啟Nginx:

./nginx-sreload

③在8081的Tomcat的webapps文件夾下新建edu文

件夾和a.html文件,填寫內(nèi)容為8081!!!!

④在地址欄回車,就會分發(fā)到不同的Tomcat服務器上:

-CQ①不安全32/cdu/a.html

M應S【苑仁杰度石碗…W玫瑰與鹿[CSDN博…數(shù)百度一下,你就知道E3ProcessOn-領...

8080!!!!!!

CQ①不安全32/edu/a.html

:::應SE3【苑仁杰廊湖庭…3玫瑰后度\CSDN博…數(shù)百度一下.你就知道S3ProcessOn-我的…匚項目

8081!!!!!!

負載均衡方式如下:

?輪詢(默認)。

?weight,代表權,權越高優(yōu)先級越高。

?fair,按后端服務器的響應時間來分配請求,相應時間短的

優(yōu)先分配。

?ip.hash,每個請求按照訪問ip的hash結果分配,這樣每

一個訪客固定的訪問一個后端服務器,可以解決Session的

問題。

upstreammyserver{

server32:8080weight=l;

server32:8081weight=2;

37)

34upsrreanmyserver{

server32:8080;

server32:8081;

37Ifair;~I

38'

on

upstreammyserver{

ip_hash|

server32:8080;

server32:8081;

38}

39

09

動靜分離實戰(zhàn)

什么是動靜分離?把動態(tài)請求和靜態(tài)請求分開,不是講動態(tài)

頁面和靜態(tài)頁面物理分離,可以理解為Nginx處理靜態(tài)頁

面處理動態(tài)頁面。

zTomcat

動靜分離大致分為兩種:

?純粹將靜態(tài)文件獨立成單獨域名放在獨立的服務器上,也

是目前主流方案。

?將動態(tài)跟靜態(tài)文件混合在一起發(fā)布,通過Nginx分開。

動靜分離圖析:

nginx

實戰(zhàn)準備,準備靜態(tài)文件:

▼>▼/dataV

名稱‘大小修改時間

WWW文件央2020/7/12,15:41

image文件夾2020/7/12,15:41

<-JCQ①不安全192,168.25.132/image/

:::應用S【苑仁杰康坊師范...S玫瑰與■/SDN博…&百度一下,你就知道QProcessOn

Indexof/image/

L-jpg12-Jul-202007:41109789

配置Nginx,如下圖:

33

34server{

35listen80;

36server_name192.168.25.132;

37

38?charsetkoi8-r;

39

40laccess_loglogs/host.access.logmain;

41

42location/www/{

43root/data/;

44indexindex.htmlindex.htm;

45M

46location/image/{

47root

弋&8/;100t后面的路徑就是從/根目錄開始的

48autoindexon;

49}

50

Nginx高可用

如果Nginx出現(xiàn)問題:

toneat1

解決辦法:

高可用keepalived

前期準備:

?兩臺Nginx服務器

?安裝Keepalived

?虛擬ip

安裝Keepalived:

[root@192usr]#yuminstallkeepalived-y

[root@192usr]#rpm-q-akeepalived

keepalived-1.3.5-16.el7.x86_64

修改配置文件:

[root@192keepalived]#cd/etc/keepalived

[root@192keepalived]#vikeepalived.conf

分別將如下配置文件復制粘貼,覆蓋掉keepalived.conf,

虛擬ip為0。

對應主機ip需要修改的是:

?smtp_server47(主)smtp_server

47(備)

?stateMASTER(±)stateBACKUP(§)

global_defs{

notification_email{

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc

}

notification_email_fromAlexandre.Cassen@firewall.loc

smtp_server47

smtp_connect_timeout30

router_idLVS_DEVEL#訪問的主機地址

)

vrrp_scriptchk_nginx{

script"/usr/local/src/nginx_check.sh"#檢測文件的地

interval2#檢測腳本執(zhí)行的間隔

weight2#權重

)

vrrp_instanceVI_1{

stateBACKUP#主機MASTER、備機BACKUP

interfaceens33#網(wǎng)卡

virtual_router_id51#同一組需一致

priority90#訪問優(yōu)先級,主機值較大,備機較小

advert_int1

authentication{

auth_typePASS

auth_pass1111

)

virtual_ipaddress{

0#虛擬ip

)

)

啟動代碼如下:

[root@192sbin]#systemctlstartkeepalived.servi

ce

[root0192sbin]#ps-efgrepnginx

root14532107:47?00:00:00nginx:masterprocess./nginx

nobody145331453207:47?00:00:00nginx:workerprocess

root2776215124

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論