日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 架構(gòu)師社區(qū)
[導讀]Nginx是一個高性能的HTTP和反向代理服務器,特點是占用內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務器中表現(xiàn)較好。

原文鏈接:https://blog.csdn.net/yujing1314/article/details/107000737

Nginx知識網(wǎng)結(jié)構(gòu)圖

一文讀懂Nginx


一文讀懂Nginx


Nginx是一個高性能的HTTP和反向代理服務器,特點是占用內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務器中表現(xiàn)較好。

Nginx專為性能優(yōu)化而開發(fā),性能是其最重要的要求,十分注重效率,有報告Nginx能支持高達50000個并發(fā)連接數(shù)。

基礎(chǔ)概念

正向代理

局域網(wǎng)中的電腦用戶想要直接訪問網(wǎng)絡(luò)是不可行的,只能通過代理服務器來訪問,這種代理服務就被稱為正向代理。

一文讀懂Nginx


反向代理

客戶端無法感知代理,因為客戶端訪問網(wǎng)絡(luò)不需要配置,只要把請求發(fā)送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數(shù)據(jù),然后再返回到客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器IP地址。

一文讀懂Nginx


負載均衡

客戶端發(fā)送多個請求到服務器,服務器處理請求,有一些可能要與數(shù)據(jù)庫進行狡猾,服務器處理完畢之后,再將結(jié)果返回給客戶端。

普通請求和響應過程:

一文讀懂Nginx


但是隨著信息數(shù)量增長,訪問量和數(shù)據(jù)量飛速增長,普通架構(gòu)無法滿足現(xiàn)在的需求。

我們首先想到的是升級服務器配置,可以由于摩爾定律的日益失效,單純從硬件提升性能已經(jīng)逐漸不可取了,怎么解決這種需求呢?

我們可以增加服務器的數(shù)量,構(gòu)建集群,將請求分發(fā)到各個服務器上,將原來請求集中到單個服務器的情況改為請求分發(fā)到多個服務器,也就是我們說的負載均衡。

圖解負載均衡:

一文讀懂Nginx


假設(shè)有15個請求發(fā)送到代理服務器,那么由代理服務器根據(jù)服務器數(shù)量,平均分配,每個服務器處理5個請求,這個過程就叫做負載均衡。

動靜分離

為了加快網(wǎng)站的解析速度,可以把動態(tài)頁面和靜態(tài)頁面交給不同的服務器來解析,加快解析的速度,降低由單個服務器的壓力。

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

一文讀懂Nginx


動靜分離之后:

一文讀懂Nginx


Nginx如何在linux安裝

一文讀懂Nginx


第一種:Linux系統(tǒng)

CentOS 7 64位

下載以下安裝包,用Xftp放入Linux系統(tǒng)。


一文讀懂Nginx


第一步: 安裝pcre依賴

解壓壓縮文件,進入解壓之后的目錄執(zhí)行./configure,然后執(zhí)行make && make install。

一文讀懂Nginx


查看是否安裝成功:
   
[root@localhost?pcre-8.37] #?pcre-config?--version


一文讀懂Nginx

第二步:安裝其他依賴

[root@localhost?pcre-8.37]#?yum?-y?make?zlib?zlib-devel?gcc-c++?libtool?openssl?openssl-devel

一文讀懂Nginx


第三步:安裝Nginx

解壓Nginx,進入Nginx目錄,執(zhí)行./configure:

一文讀懂Nginx


執(zhí)行make && make install:

一文讀懂Nginx


去sbin文件夾下啟動Nginx 。

cd?/usr/local/nginx/sbin


一文讀懂Nginx


檢查是否啟動成功。

[root@localhost?sbin]#?ps?-ef|grep?nginx


一文讀懂Nginx


第二種

Linux系統(tǒng)

Red Hat Enterprise Linux Server release 6.5 (Santiago)

提前需要準備的:

Nginx源碼:http://nginx.org/en/download.html

yum 安裝教程: https://blog.csdn.net/yujing1314/article/details/97237644

gcc-c++:

[root@localhost?~]yum?install?gcc-c++

第三方開發(fā)包:

[root@localhost?~]yum?install?-y?pcre?pcre-devel
[root@localhost?~]yum?install?-y?zlib?zlib-devel
[root@localhost?~]yum?install?-y?openssl?openssl-devel


安裝步驟:

第一步:把Nginx的源碼包上傳到Linux系統(tǒng)。

我使用的SecureCRT的sftp文件傳輸,直接把文件拖進去就OK了。

一文讀懂Nginx


第二步:解壓縮

[root@localhost?~]tar?zxf?nginx-1.8.0.tar.gz

第三步:使用configure命令創(chuàng)建一makeFile文件

./configure
–prefix=/usr/local/nginx
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–with-http_gzip_static_module
–http-client-body-temp-path=/var/temp/nginx/client
–http-proxy-temp-path=/var/temp/nginx/proxy
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi
–http-scgi-temp-path=/var/temp/nginx/scgi

第四步:上一步可能會報錯,因為缺少temp文件,如下創(chuàng)建即可

[root@localhost?sbin]#?mkdir?/var/temp/nginx/client?-p

第五步:make

直接輸入make。

第六步:make install

直接輸入make install。

開啟Nginx:

[root@localhost?sbin]#?./nginx

如何查看進程[root@bogon stefan]# ps aux|grep nginx:

一文讀懂Nginx


關(guān)閉Nginx:

[root@localhost?sbin]#?./nginx?-s?stop

推薦使用:

[root@localhost?sbin]#?./nginx?-s?quit


測試

輸入你虛擬機的IP,如下圖就成功了。

一文讀懂Nginx


如果測試失敗,注意查看虛擬機防火墻是否關(guān)閉


Nginx常用命令

一文讀懂Nginx


查看版本:

./nginx?-v

啟動:

./nginx

關(guān)閉(有兩種方式,推薦使用 ./nginx -s quit):

?./nginx?-s?stop
?./nginx?-s?quit

重新加載Nginx配置:

./nginx?-s?reload


Nginx的配置文件

一文讀懂Nginx


配置文件分三部分組成。

1、全局塊

從配置文件開始到events塊之間,主要是設(shè)置一些影響nginx服務器整體運行的配置指令。

并發(fā)處理服務的配置,值越大,可以支持的并發(fā)處理量越多,但是會受到硬件、軟件等設(shè)備的制約。

一文讀懂Nginx

2、events塊

影響nginx服務器與用戶的網(wǎng)絡(luò)連接,常用的設(shè)置包括是否開啟對多workprocess下的網(wǎng)絡(luò)連接進行序列化,是否允許同時接收多個網(wǎng)絡(luò)連接等等。

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

一文讀懂Nginx

3、http塊

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

location指令說明:

該語法用來匹配url,語法如下:
   
location[?=?|?~?|?~*?|?^~]?url{

}

  • =:用于不含正則表達式的url前,要求字符串與url嚴格匹配,匹配成功就停止向下搜索并處理請求

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

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

  • ^~:用于不含正則表達式的url前,要求Ngin服務器找到表示url和字符串匹配度最高的location后,立即使用此location處理請求,而不再匹配

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


反向代理實戰(zhàn)

配置反向代理

目的:在瀏覽器地址欄輸入地址www.123.com跳轉(zhuǎn)Linux系統(tǒng)Tomcat主頁面。

具體實現(xiàn):

先配置Tomcat:因為比較簡單,此處不再贅敘。

并在Windows訪問:

一文讀懂Nginx


具體流程:

一文讀懂Nginx


修改之前:

一文讀懂Nginx


配置:

一文讀懂Nginx


再次訪問:

一文讀懂Nginx


反向代理2

目標:

  • 訪問http://192.168.25.132:9001/edu/直接跳轉(zhuǎn)到192.168.25.132:8080

  • 訪問http://192.168.25.132:9001/vod/直接跳轉(zhuǎn)到192.168.25.132:8081


準備:

配置兩個Tomcat,端口分別為8080和8081,都可以訪問,端口修改配置文件即可。

一文讀懂Nginx

一文讀懂Nginx


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

一文讀懂Nginx

一文讀懂Nginx


響應如下:

一文讀懂Nginx

一文讀懂Nginx


具體配置:

一文讀懂Nginx


重新加載Nginx:

./nginx?-s?reload

訪問:

一文讀懂Nginx

一文讀懂Nginx


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

反向代理小結(jié)

第一個例子:瀏覽器訪問www.123.com,由host文件解析 出服務器IP地址 192.168.25.132 www.123.com, 然后默認訪問80端口,而通過Nginx監(jiān)聽80端口代理到本地的8080端口上,從而實現(xiàn)了訪問www.123.com,最終轉(zhuǎn)發(fā)到tomcat 8080上去。

第二個例子: 訪問http://192.168.25.132:9001/edu/直接跳轉(zhuǎn)到192.168.25.132:8080, 訪問http://192.168.25.132:9001/vod/直接跳轉(zhuǎn)到192.168.25.132:8081, 實際上就是通過Nginx監(jiān)聽9001端口,然后通過正則表達式選擇轉(zhuǎn)發(fā)到8080還是8081的Tomcat上去。

負載均衡實戰(zhàn)

修改nginx.conf:

一文讀懂Nginx

一文讀懂Nginx


重啟Nginx:

./nginx?-s?reload

在8081的tomcat的webapps文件夾下新建edu文件夾和a.html文件,填寫內(nèi)容為8081?。。?!

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

一文讀懂Nginx

一文讀懂Nginx


負載均衡方式:

1、輪詢(默認)

2、weight,代表權(quán),權(quán)越高優(yōu)先級越高


一文讀懂Nginx


3、fair,按后端服務器的響應時間來分配請求,相應時間短的優(yōu)先分配


一文讀懂Nginx


4、ip_hash,每個請求按照訪問IP的hash結(jié)果分配,這樣每一個訪客固定的訪問一個后端服務器,可以解決session 的問題


一文讀懂Nginx


動靜分離實戰(zhàn)

什么是動靜分離

把動態(tài)請求和靜態(tài)請求分開,不是講動態(tài)頁面和靜態(tài)頁面物理分離,可以理解為Nginx處理靜態(tài)頁面,Tomcat處理動態(tài)頁面。

動靜分離大致分為兩種:一、純粹將靜態(tài)文件獨立成單獨域名放在獨立的服務器上,也是目前主流方案;二、將動態(tài)跟靜態(tài)文件混合在一起發(fā)布,通過Nginx分開。

動靜分離圖析:

一文讀懂Nginx


實戰(zhàn)準備

準備靜態(tài)文件:

一文讀懂Nginx

一文讀懂Nginx


配置Nginx:

一文讀懂Nginx


Nginx高可用

一文讀懂Nginx


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

一文讀懂Nginx


解決辦法:

一文讀懂Nginx


前期準備:

  • 兩臺Nginx服務器

  • 安裝Keepalived

  • 虛擬IP


安裝Keepalived

[root@192?usr] #?yum?install?keepalived?-y
[root@192?usr] #?rpm?-q?-a?keepalived
keepalived-1.3.5-16.el7.x86_64


修改配置文件:

[root@192?keepalived]#?cd?/etc/keepalived
[root@192?keepalived]#?vi?keepalived.conf?

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

虛擬IP為192.168.25.50。

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

smtp_server 192.168.25.147(主)smtp_server 192.168.25.147(備)
state MASTER(主) state BACKUP(備)

global_defs?{
???notification_email?{
?????acassen@firewall.loc
?????failover@firewall.loc
?????sysadmin@firewall.loc
???}
???notification_email_from?Alexandre.Cassen@firewall.loc
???smtp_server?192.168.25.147
???smtp_connect_timeout?30
???router_id?LVS_DEVEL?#?訪問的主機地址
}

vrrp_script?chk_nginx?{
??script?"/usr/local/src/nginx_check.sh"??#?檢測文件的地址
??interval?2???#?檢測腳本執(zhí)行的間隔
??weight?2???#?權(quán)重
}

vrrp_instance?VI_1?{
????state?BACKUP????#?主機MASTER、備機BACKUP????
????interface?ens33???#?網(wǎng)卡
????virtual_router_id?51?#?同一組需一致
????priority?90??#?訪問優(yōu)先級,主機值較大,備機較小
????advert_int?1
????authentication?{
????????auth_type?PASS
????????auth_pass?1111
????}
????virtual_ipaddress?{
????????192.168.25.50??#?虛擬ip
????}
}

啟動:

[root@192?sbin]#?systemctl?start?keepalived.service

一文讀懂Nginx


訪問虛擬IP成功。

一文讀懂Nginx


關(guān)閉主機147的Nginx和Keepalived,發(fā)現(xiàn)仍然可以訪問。


原理解析

一文讀懂Nginx


一文讀懂Nginx


如下圖,就是啟動了一個Master,一個Worker,Master是管理員,Worker是具體工作的進程。

一文讀懂Nginx


Worker如何工作:

一文讀懂Nginx


小結(jié)

一文讀懂Nginx


  • Worker數(shù)應該和CPU數(shù)相等

  • 一個Master多個Worker可以使用熱部署,同時Worker是獨立的,一個掛了不會影響其他的。

特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:

一文讀懂Nginx

一文讀懂Nginx

一文讀懂Nginx

長按訂閱更多精彩▼

一文讀懂Nginx

如有收獲,點個在看,誠摯感謝

免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉