微服務實戰系列之Nginx

前言

Nginx?寫了那么多文章,為什么今天才輪到它的表演?那是因為它實在太重要了,值得大書特書,特別對待。
當我們遇到單點瓶頸,第一個idea是?Nginx;
當我們需要反向代理,第一個idea是?Nginx;
當我們需要靜態部署,第一個idea是?Nginx;
當我們需要透傳服務,第一個idea是?Nginx;
好了好了,不再羅列了,博主手都麻了…

當我們遇到一件趁手的武器,是不是愿意找一個合適的“對手”,練一練?
當我們遇到一件棘手的問題,是不是愿意找一個熟練的“隊友”,試一試?

答案是肯定的,畢竟我們都愿意“百尺竿頭,更進一步”,不希望“按部就班,坐以待斃”
Nginx正式表演前,博主首先讓它的“隊友們”報個到,歡迎三連,有求必應:

  • 微服務實戰系列之Feign
  • 微服務實戰系列之Sentinel
  • 微服務實戰系列之Token
  • 微服務實戰系列之Nacos
  • 微服務實戰系列之Gateway
  • 微服務實戰系列之加密RSA
  • 微服務實戰系列之簽名Sign

話鋒一轉,請允許博主帶著大家熟悉Nginx,探索它的奧秘。

在這里插入圖片描述


一、前世

Nginx是一款輕量級的Web 服務器以及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上Nginx的并發能力在同類型的網頁服務器中表現較好。

通過一段標準語言,我們可以大致了解到Nginx幾個特征:

1. 反向代理
2. Web服務器
3. 郵件代理服務
4. 并發
5. 輕量級

當然,博主嘗試將其翻譯成工程實踐語言,大致可以包括以下幾個功能:

1. 代理服務(反向、郵件)
2. Web服務(面向前端)
3. 負載均衡(高并發)
4. 緩存服務(靜態資源)

通過以上的應用場景,博主繼續帶著大家剖析Nginx,探究一下它為何如此迷人。

二、今生

1. 代理服務

談到代理服務,各位盆友首先想到什么?
比如小花一個消息,今天沒空,讓你幫她買個零食…
比如小芳一通電話,今天請假,讓你幫她取個快遞…
諸如此類,皆算代理的范疇,原因是什么?因為不管小花小芳,還是你,都能夠基于同一個方法完成一件事。通俗講,就是“代勞”。這個時候,小花小芳都是采用了代理服務,而且是正向代理,那么你就是“正向代理服務器”
在這里插入圖片描述

既然有正向代理,自然就有反向代理了,因為講究對稱嘛(暗然自喜)~
反向代理是怎么回事?無非是你要吃的,我事先替你備齊,你自取。如此這般,方便你我他,相親相愛一家人。
在這里插入圖片描述
所以,自從有了代理這個業務,這世上似乎“懶人”變多了,當然生活品質也提高了。
Nginx如何配置代理,可參考以下:

server{location /api/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://localhost:8080/; //這句很關鍵}
}
2. Web服務

提到Web服務,博主首先會聯想到從早年的Apache、IIS,到如今的Nginx、Tomcat、WebLogic等等。不禁有感而發:“變化的始終是工具,不變的是永恒的服務”
Nginx作為Web服務器,主要做什么呢?

比如部署一套vue,比如上傳一組圖片資源等等,可以通過http訪問即可。如果不清楚怎么使用,可以參考以下配置,指定訪問目錄即可:

server{location / {root   /usr/local/html; //這句很關鍵try_files $uri $uri/ /index.html;index  index.html index.htm;}
}
3. 負載均衡

負載均衡?好像在哪里提過?對了, 網關。如有興趣,請回看博主相關介紹。
正因為Nginx有這個作用,所以在微服務中,Nginx的任務相當艱巨,所謂能力越大,責任越大,當然期望越高。
在這里插入圖片描述
如何配置?可參考如下:

http {upstream myserver {server 192.168.1.11:8080 weight=10;//設置權重server 192.168.1.12:8081 weight=10;}server {listen       80;// 默認端口server_name  192.168.1.10;location / {proxy_pass http://myserver;root   /usr/local/html;index  index.html index.htm;}
}
4. 緩存服務

Nginx也可以做緩存?答案是的。
某些場景下,Nginx需要Worker到服務中獲取數據并返回客戶端,在高并發場景下,我們可以將這些數據緩存到Nginx中。
如何配置,可參考如下:

http {# 設置緩存路徑、目錄層級(1:2 表示兩個子目錄)、內存zone的名字和內存大小# 緩存有效時間、硬盤最大存儲大小、緩存文件直接寫到cache文件中而不使用temp_pathproxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=ngxcache:100m inactive=7d max_size=1g use_temp_path=off;server {		proxy_cache ngxcache;proxy_cache_valid 200 304 5m;proxy_cache_valid 301 302 2m;proxy_cache_min_uses 1;# 添加一個響應頭,用來標識請求是否命中緩存add_header N-Cache-Status $upstream_cache_status;proxy_cache_methods GET HEAD;proxy_cache_convert_head on;proxy_cache_key $scheme$host$uri$is_args$args;proxy_cache_background_update on;}
}

綜上,關于Nginx,博主帶著各位盆友進行功能剖析,旨在一文把握它的命脈。如果還需了解更詳細的內容,可參考官網文檔,了解每個參數的配置的意義,博主不再啰嗦了。


結語

微服務盛行于當下,好比日出東方之時,趁著朝霞,獲得希望。
各位盆友,GoodNight!
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167681.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167681.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167681.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習/sklearn筆記:MeanShift

1 算法介紹 一種基于質心的算法通過更新候選質心使其成為給定區域內點的均值候選質心的位置是通過一種稱為“爬山”技術迭代調整的,該技術找到估計的概率密度的局部最大值 1.1 基本形式 給定d維空間的n個數據點集X,那么對于空間中的任意點x的均值漂移…

C#,《小白學程序》第一課:初識程序,變量,數據與顯示

曰:掃地僧練就絕世武功的目的是為了掃地更干凈。 1 引言 編程只是一項技術,如包包子,不是什么高深的科學。 學習程序最不好的方法是先學習枯燥的語法。 學習程序主要是用代碼解決問題。因此,我們拋開所有的語法與諸多廢物&…

React項目中發生空白但不報錯的原因分析和解決?

文章目錄 前言組件渲染問題狀態管理問題異步操作問題代碼錯誤但未拋出異常如果我們使用的是chorme瀏覽器的話,可以下載一個開發者工具,例如下圖:代碼審查使用調試工具日志和輸出檢查外部依賴異步操作終極大法,不到萬不得已不可以使…

python+gurobi求解線性規劃、整數規劃、0-1規劃

文章目錄 簡單回顧線性規劃LP整數規劃IP0-1規劃 簡單回顧 線性規劃是數學規劃中的一類最簡單規劃問題,常見的線性規劃是一個有約束的,變量范圍為有理數的線性規劃。如: 使用matlab的linprog函數即可求解簡單的線性規劃問題,可以參…

【Python 訓練營】N_6 求素數

題目 判斷101-200之間有多少個素數,并輸出所有素數。 分析 判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。 答案 h 0 leap 1 from math import sqrt from sys …

2023亞太地區數學建模C題思路模型代碼論文

C題的參考思路: 1,問題1的思路: 確定研究問題的主要指標體系(新能源電車的售出數量、安全性指標、充電樁數目、電池續 航里程等),收集指標的對應數據,檢驗數據是否服從正態性: 若服從正態分布: 0,可考慮優先采用“多元方差分析”模…

Python推導式

python推導式是一種獨特的數據處理方式,可以從一個數據序列構建到另一個新的數據序列的結構體。 Python支持各種數據結構的推導式: 1. 列表(list)推導式 [表達式 for 變量 in 列表] [out_exp_res for out_exp in input_list] or …

【?用運算放大器設計恒流電流源電壓4V-74V適應范圍 ?】2021-11-29

緣由用運算放大器設計恒流電流源-編程語言-CSDN問答直流恒流源設計,要求用到運算放大器-硬件開發-CSDN問答求助恒流驅動電路,運放端口電壓的問題? - 電路設計論壇 - 電子技術論壇 - 廣受歡迎的專業電子論壇!(不能實現恒流壞的電路設計反面例子…

OpenCV快速入門:特征點檢測與匹配

文章目錄 前言一、角點檢測1.1 角點特征1.1.1 角點特征概念1.1.2 角點的特點1.1.3 關鍵點繪制代碼實現1.1.4 函數解析 1.2 Harris角點檢測1.2.1 Harris角點檢測原理1.2.2 Harris角點檢測公式1.2.3 代碼實現1.2.4 函數解析 1.3 Shi-Tomasi角點檢測1.3.1 Shi-Tomasi角點檢測原理1…

GIT,解決遠程分支沖突

背景:當遠程分支A 與maste 有沖突如何解決–此時無法在這兩個版本之間merge 1、切換到master分支: git checkout master 2、更新master分支代碼: git pull 3、再次切換到自己新建的分支: git checkout add_login_check_func 4、將…

SuperMap iDesktopX如何獲取簡單線的起終端點及坐標

作者:超圖研究院技術支持中心-于丁 SuperMap iDesktopX如何獲取簡單線的起終端點及坐標 在GIS行業應用中,線數據的端點坐標有非常多的用處。 定位和可視化:線數據端點坐標可以用于定位和可視化線要素在空間中的位置。這對于地圖制作、規劃和…

初識Linux(1),看了這篇文章,媽媽再也不用擔心我Linux找不到門了。

文章目錄 前言1. ls 指令例如:只顯示文件名屬性ls顯示文件詳細屬性 ls - l 該操作可以簡寫成ll查看隱藏文件ls -l -a 2.pwd例如:顯示當前目錄所處的路徑類似于windows如下操作: 3.cd 指令例如:改變工作目錄相當于windows如下操作 4.whoami 指…

html幸運大轉盤抽獎(附源碼)

文章目錄 1.設計來源1.1 幸運大轉盤 風格11.2 幸運大轉盤 風格21.3 幸運大轉盤 風格31.4 幸運大轉盤 獎品效果1.5 幸運大轉盤 活動未開始1.6 幸運大轉盤 活動已結束1.7 幸運大轉盤 圖片源素材 2.效果和源碼2.1 動態效果2.2 源代碼 源碼下載 作者:xcLeigh 文章地址&a…

Windows power shell for循環

有時候需要重復執行某個shell命令 for($i1;$i -lt 10;$i$i1){echo $i}如果是cmd for /l %i in (1,1,5) do echo %i

vue 使用vuex中的data數據引用問題

先上代碼: this.userRoleInfo2 this.$store.state.userInfo this.userRoleInfo2.name 111 this.userRoleInfo2.orgName 222 this.userRoleInfo2.orgId 4444問題描述: 博主,定義了一個變量userRoleInfo2來接收了 從vuex中獲取了userInfo…

卷積神經網絡(Inception V3)識別手語

文章目錄 一、前言二、前期工作1. 設置GPU(如果使用的是CPU可以忽略這步)2. 導入數據3. 查看數據 二、數據預處理1. 加載數據2. 可視化數據3. 再次檢查數據4. 配置數據集 三、構建Inception V3網絡模型1.自己搭建2.官方模型 五、編譯六、訓練模型七、模型…

再生式收音機踩坑記

下載《A Simple Regen Radio for Beginners》這篇文章也有好幾年了,一直沒有動手,上周末抽空做了一個,結果相當令人沮喪,一個臺也收不到,用示波器測量三極管振蕩波形,只有在調節再生電位器R2過程中&#xf…

什么是合封芯片工藝,合封芯片工藝工作原理、應用場景、技術要點

芯片封裝技術不斷進步,其中合封芯片工藝作為一種先進的芯片封裝技術,“超”廣泛應用于各類電子設備中。 本文將從合封芯片工藝的工作原理、應用場景、技術要點等方面進行深入解讀。 一、合封芯片工藝 合封芯片工藝是一種將多個芯片或不同的功能的電子模…

構造命題公式的真值表

構造命題公式的真值表 1:實驗類型:驗證性2:實驗目的:3:邏輯聯結詞的定義方法4:命題公式的表示方法5:【實驗內容】 1:實驗類型:驗證性 2:實驗目的&#xff1a…

數據黑洞,正在悄悄吞噬你的門店業績

互聯網興起以來,線下門店的數字化程度始終落后于線上。一個重要的原因是:線下信息不像線上那樣簡單、集中、易于統計。很多重要數據隱藏于「黑洞」之中,收集和分析成本極為高昂。這極大束縛了門店業績的提升。 而反過來看,線下場景…