精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何徹底搞懂Nginx知識網結構

Linux愛好者 ? 來源:51CTO技術棧 ? 作者:51CTO技術棧 ? 2021-05-03 14:15 ? 次閱讀

1.Nginx知識網結構圖

14909dba-a534-11eb-aece-12bb97331649.png

Nginx是一個高性能的HTTP和反向代理服務器,特點是占用內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好

nginx專為性能優化而開發,性能是其最重要的要求,十分注重效率,有報告nginx能支持高達50000個并發連接數

1.1反向代理

正向代理

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

149957de-a534-11eb-aece-12bb97331649.png

反向代理

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

14d0a658-a534-11eb-aece-12bb97331649.png

1.2負載均衡

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

普通請求和響應過程

14dcf8b8-a534-11eb-aece-12bb97331649.png

但是隨著信息數量增長,訪問量和數據量飛速增長,普通架構無法滿足現在的需求

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

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

圖解負載均衡

14ee6314-a534-11eb-aece-12bb97331649.png

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

1.3動靜分離

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

動靜分離之前的狀態

150163ba-a534-11eb-aece-12bb97331649.png

動靜分離之后

150beaa6-a534-11eb-aece-12bb97331649.png

2. nginx如何在linux安裝

3. nginx常用命令

查看版本

。/nginx -v

啟動

。/nginx

關閉(有兩種方式,推薦使用 。/nginx -s quit)

。/nginx -s stop

。/nginx -s quit

重新加載nginx配置

。/nginx -s reload

4.nginx的配置文件

配置文件分三部分組成

全局塊

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

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

152d20d6-a534-11eb-aece-12bb97331649.png

events塊

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

支持的最大連接數

153adf46-a534-11eb-aece-12bb97331649.png

http塊

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

location指令說明

該語法用來匹配url,語法如下

location[ = | ~ | ~* | ^~] url{

}

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

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

~*:用于表示url包含正則表達式,并且不區分大瞎寫

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

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

4.1 反向代理實戰

配置反向代理

目的:在瀏覽器地址欄輸入地址www.123.com跳轉linux系統tomcat主頁面

具體實現

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

并在windows訪問

15437372-a534-11eb-aece-12bb97331649.png

具體流程

1551e5b0-a534-11eb-aece-12bb97331649.png

修改之前

配置

1564245a-a534-11eb-aece-12bb97331649.png

再次訪問

反向代理2

1.目標

訪問http://192.168.25.132:9001/edu/ 直接跳轉到192.168.25.132:8080

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

2.準備

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

15ef2316-a534-11eb-aece-12bb97331649.png

新建文件內容分別添加8080!!!和8081!!!

15fd1048-a534-11eb-aece-12bb97331649.png

16083aea-a534-11eb-aece-12bb97331649.png

響應如下

1612b178-a534-11eb-aece-12bb97331649.png

161b3c1c-a534-11eb-aece-12bb97331649.png

3.具體配置

16248ce0-a534-11eb-aece-12bb97331649.png

重新加載nginx

。/nginx -s reload

訪問

162dfdfc-a534-11eb-aece-12bb97331649.png

162dfdfc-a534-11eb-aece-12bb97331649.png

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

4.2 反向代理小結

第一個例子:

瀏覽器訪問www.123.com,由host文件解析

出服務器ip地址

192.168.25.132 www.123.com

然后默認訪問80端口,而通過nginx監聽80端口代理到本地的8080端口上,從而實現了訪問www.123.com,最終轉發到tomcat 8080上去

第二個例子:

訪問http://192.168.25.132:9001/edu/ 直接跳轉到192.168.25.132:8080

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

實際上就是通過nginx監聽9001端口,然后通過正則表達式選擇轉發到8080還是8081的tomcat上去

4.3 負載均衡實戰

1.修改nginx.conf

16657930-a534-11eb-aece-12bb97331649.png

167191a2-a534-11eb-aece-12bb97331649.png

2.重啟nginx

。/nginx -s reload

3.在8081的tomcat的webapps文件夾下新建edu文件夾和a.html文件,填寫內容為8081!!!!

4.在地址欄回車,就會分發到不同的tomcat服務器上

168da2fc-a534-11eb-aece-12bb97331649.png

16968b92-a534-11eb-aece-12bb97331649.png

3.負載均衡方式

輪詢(默認)

weight,代表權,權越高優先級越高

16b1f828-a534-11eb-aece-12bb97331649.png

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

16ba08ce-a534-11eb-aece-12bb97331649.png

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

16c2b834-a534-11eb-aece-12bb97331649.png

4.4 動靜分離實戰

什么是動靜分離

把動態請求和靜態請求分開,不是講動態頁面和靜態頁面物理分離,可以理解為nginx處理靜態頁面,tomcat處理動態頁面

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

動靜分離圖析

16d581ee-a534-11eb-aece-12bb97331649.png

實戰準備

準備靜態文件

170365aa-a534-11eb-aece-12bb97331649.png

1725b434-a534-11eb-aece-12bb97331649.png

配置nginx

172eedec-a534-11eb-aece-12bb97331649.png

5.nginx高可用

如果nginx出現問題

173923d4-a534-11eb-aece-12bb97331649.png

解決辦法

1745d700-a534-11eb-aece-12bb97331649.png

前期準備

兩臺nginx服務器

安裝keepalived

虛擬ip

5.1安裝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 # 檢測腳本執行的間隔

weight 2 # 權重

}

vrrp_instance VI_1 {

state BACKUP # 主機MASTER、備機BACKUP

interface ens33 # 網卡

virtual_router_id 51 # 同一組需一致

priority 90 # 訪問優先級,主機值較大,備機較小

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.25.50 # 虛擬ip

}

}

啟動

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

176fc9b6-a534-11eb-aece-12bb97331649.png

訪問虛擬ip成功

1785b38e-a534-11eb-aece-12bb97331649.png

關閉主機147的nginx和keepalived,發現仍然可以訪問

6.原理解析

17bc68ac-a534-11eb-aece-12bb97331649.png

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

17c7a7b2-a534-11eb-aece-12bb97331649.png

worker如何工作

17d218b4-a534-11eb-aece-12bb97331649.png

小結

worker數應該和CPU數相等

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

原文標題:搞懂Nginx,一篇文章就夠了

文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10824

    瀏覽量

    211135
  • nginx
    +關注

    關注

    0

    文章

    143

    瀏覽量

    12163

原文標題:搞懂Nginx,一篇文章就夠了

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    nginx隱藏版本號與WEB服務器信息

    nginx不僅可以隱藏版本信息,還支持自定義web服務器信息 先看看最終的隱藏結果吧 具體怎么實現呢,其實也很簡單,請往下看 1 官網下載最新穩定版 wget http://nginx
    的頭像 發表于 11-22 10:25 ?83次閱讀
    <b class='flag-5'>nginx</b>隱藏版本號與WEB服務器信息

    nginx負載均衡配置介紹

    目錄 nginx負載均衡 nginx負載均衡介紹 反向代理與負載均衡 nginx負載均衡配置 Keepalived高可用nginx負載均衡器 修改Web服務器的默認主頁 開啟
    的頭像 發表于 11-10 13:39 ?180次閱讀
    <b class='flag-5'>nginx</b>負載均衡配置介紹

    以太結構是怎樣的

    以太幀(Ethernet Frame)是以太(Ethernet)協議用于在局域(LAN)中傳輸數據的基本單位。理解以太幀的結構對于掌
    的頭像 發表于 10-08 10:00 ?684次閱讀

    nginx中的正則表達式和location路徑匹配指南

    前言,我這里驗證的nginx-v1.23.2單機環境下的nginx中的正則表達式、location路徑匹配規則和優先級。
    的頭像 發表于 09-29 16:02 ?465次閱讀
    <b class='flag-5'>nginx</b>中的正則表達式和location路徑匹配指南

    Jtti:美國VPS開啟nginx狀態監控,查看web服務器的并發連接數

    Nginx的ngx_http_stub_status_module提供能夠獲取Nginx自上次啟動以來的工作狀態的功能。如果需要啟用此功能的話,需要在編譯的過程中添加如下參數
    的頭像 發表于 08-26 15:42 ?227次閱讀

    nginx重啟命令linux步驟是什么?

      1、驗證nginx配置文件是否正確   方法一:進入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx.conf syntax is ok
    發表于 07-11 17:13

    nginx重啟命令linux步驟是什么?

      1、驗證nginx配置文件是否正確   方法一:進入nginx安裝目錄sbin下,輸入命令./nginx -t   看到如下顯示nginx.conf syntax is ok
    發表于 07-10 16:40

    以太怎么連接 以太組網結構分析

    以太的組網結構涉及多個層面和組件。首先,從網絡結構的角度來看,以太分為物理層、數據鏈路層和高層用戶層。其中,物理層采用特定的通信媒體,如50Ω基帶同軸電纜,實現數據的傳輸。數據鏈路
    的頭像 發表于 03-08 17:19 ?3090次閱讀
    以太<b class='flag-5'>網</b>怎么連接 以太<b class='flag-5'>網</b>組網<b class='flag-5'>結構</b>分析

    核心開發者因安全策略分歧離隊,Nginx分叉出freenginx項目

    值得注意的是,Nginx是一款由俄羅斯人伊戈爾?賽索耶夫(Igor Sysoev)創作,并于2004年起向公眾公開的異步網頁服務器平臺,廣泛用于反向代理、負載均衡和HTTP緩存等功能。據官方公布的2021年6月數據,Nginx已經超越Apache成為全球最受歡迎的網頁服務
    的頭像 發表于 02-19 15:51 ?390次閱讀

    Apache服務器和Nginx服務器

    Apache和Nginx都是常見的開源Web服務器軟件,它們用于處理HTTP請求并提供網站和應用程序的服務。下面是對Apache和Nginx的一些基本特點的比較: 一、Apache HTTP
    的頭像 發表于 01-22 16:48 ?518次閱讀

    以太是什么拓撲結構 以太是星形還是總線型

    高速、可靠的局域網通信標準。以太的拓撲結構既可以是星形結構,也可以是總線型結構,具體的拓撲結構取決于網絡設備的布局和配置。 首先,我們來探
    的頭像 發表于 01-18 11:01 ?2476次閱讀

    Nginx在Windows/docker中的使用

    nginx 是一個高性能的開源反向代理服務器和 web 服務器,一般用來搭建靜態資源服務器、負載均衡器、反向代理,本文將分享其在 Windows/docker 中的使用,使用 nssm 部署成服務的方案腳本,局域中自定義域名解決https提示不安全的解決方案,以及一路踩
    的頭像 發表于 01-03 10:20 ?1753次閱讀
    <b class='flag-5'>Nginx</b>在Windows/docker中的使用

    如何通過Nginx實現禁止國外IP訪問網站

    最近不少小伙伴反饋自己維護的項目中,經常在后臺可以看到來自國外IP的攻擊,令人頭疼。今天浩道跟大家分享如何通過Nginx來實現禁止國外IP訪問網站,確保你網站免遭國外IP攻擊了!
    的頭像 發表于 12-01 11:12 ?1376次閱讀
    如何通過<b class='flag-5'>Nginx</b>實現禁止國外IP訪問網站

    Nginx的配置文件如何設置頭信息保留真實IP不丟失

    Nginx 配置中設置頭信息以保留客戶端的真實 IP 地址通常是在使用反向代理的場景中需要的。當 Nginx 作為反向代理時,客戶端的真實 IP 地址可能會在轉發請求時丟失,因為到達應用服務器
    的頭像 發表于 11-30 10:54 ?1882次閱讀

    一張圖搞懂為什么去耦電容要好幾種容值?

    一張圖搞懂為什么去耦電容要好幾種容值?
    的頭像 發表于 11-27 15:47 ?493次閱讀
    一張圖<b class='flag-5'>搞懂</b>為什么去耦電容要好幾種容值?