0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

nginx使用學(xué)習(xí)之正、反向代理

科技綠洲 ? 來源:Linux開發(fā)架構(gòu)之路 ? 作者:Linux開發(fā)架構(gòu)之路 ? 2023-11-13 10:54 ? 次閱讀

Nginx 不僅可以做反向代理,實現(xiàn)負載均衡。還能用作正向代理來進行上網(wǎng)等功能。正向代理:如果把局域網(wǎng)外的 Internet 想象成一個巨大的資源庫,則局域網(wǎng)中的客戶端要訪 問 Internet,則需要通過代理服務(wù)器來訪問,這種代理服務(wù)就稱為正向代理。

  • 簡單一點:通過代理服務(wù)器來訪問服務(wù)器的過程 就叫 正向代理。
  • 需要在客戶端配置代理服務(wù)器進行指定網(wǎng)站訪問

圖片

反向代理

反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問。

我們只 需要將請求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器獲取數(shù)據(jù)后,在返 回給客戶端,此時反向代理服務(wù)器和目標(biāo)服務(wù)器對外就是一個服務(wù)器,暴露的是代理服務(wù)器 地址,隱藏了真實服務(wù)器 IP 地址。

圖片

nginx反向代理配置實例

  1. 實現(xiàn)效果

打開瀏覽器,在瀏覽器地址欄輸入地址 www.123.com,跳轉(zhuǎn)到 liunx 系統(tǒng) tomcat 主頁 面中

  1. 準(zhǔn)備工作

(1)在 liunx 系統(tǒng)安裝 tomcat,使用默認端口 8080,我這里8080被其他應(yīng)用占用,所以我已修改端口為8081。在conf目錄下的server.xml配置文件中,如下,將port改為 8081,其實下面也有類似的Connector 標(biāo)簽,但是要看protocol協(xié)議為HTTP/1.1的標(biāo)簽修改即可。

< Connector port="8081" protocol="HTTP/1.1"
 connectionTimeout="20000"
 redirectPort="8443" / >

tomcat 安裝文件放到 liunx 系統(tǒng)中,解壓。
Tomcat的路徑:
/usr/feng/apach-tomcat/tomcat8081下

進入 tomcat 的 bin 目錄中,./startup.sh 啟動 tomcat 服務(wù)器。

(2)對外開放訪問的端口 (我這里不需要)

firewall-cmd --add-port=8080/tcp --permanent

firewall-cmd –reload

查看已經(jīng)開放的端口號 firewall-cmd --list-all

(3)在 windows 系統(tǒng)中通過瀏覽器訪問 tomcat 服務(wù)器
別忘了開啟tomcat,在bin目錄下,使用 命令:

./startup.sh

圖片

  1. 訪問過程的分析

圖片

4、具體配置

a. 第一步 在 windows 系統(tǒng)的 host 文件進行域名和 ip 對應(yīng)關(guān)系的配置

圖片

添加內(nèi)容在 host 文件中

圖片

b . 第二步 在 nginx 進行請求轉(zhuǎn)發(fā)的配置(反向代理配置)

圖片

5、最終測試

如上配置,我們監(jiān)聽 80 端口,訪問域名為 www.123.com,不加端口號時默認為 80 端口,故 訪問該域名時會跳轉(zhuǎn)到 127.0.0.1:8081 路徑上。在瀏覽器端輸入 www.123.com 結(jié)果如下:

圖片

負載均衡

增加服務(wù)器的數(shù)量,然后將請求分發(fā)到各個服務(wù)器上,將原先請求集中到單個服務(wù)器上的 情況改為將請求分發(fā)到多個服務(wù)器上,將負載分發(fā)到不同的服務(wù)器,也就是我們所說的負 載均衡

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

這種架構(gòu)模式對于早期的系統(tǒng)相對單一,并發(fā)請求相對較少的情況下是比較適合的,成 本也低。但是隨著信息數(shù)量的不斷增長,訪問量和數(shù)據(jù)量的飛速增長,以及系統(tǒng)業(yè)務(wù)的復(fù)雜 度增加,這種架構(gòu)會造成服務(wù)器相應(yīng)客戶端的請求日益緩慢,并發(fā)量特別大的時候,還容易 造成服務(wù)器直接崩潰。很明顯這是由于服務(wù)器性能的瓶頸造成的問題,那么如何解決這種情 況呢?

我們首先想到的可能是升級服務(wù)器的配置,比如提高 CPU 執(zhí)行頻率,加大內(nèi)存等提高機 器的物理性能來解決此問題,但是我們知道摩爾定律的日益失效,硬件的性能提升已經(jīng)不能 滿足日益提升的需求了。最明顯的一個例子,天貓雙十一當(dāng)天,某個熱銷商品的瞬時訪問量 是極其龐大的,那么類似上面的系統(tǒng)架構(gòu),將機器都增加到現(xiàn)有的頂級物理配置,都是不能 夠滿足需求的。那么怎么辦呢?上面的分析我們?nèi)サ袅嗽黾臃?wù)器物理配置來解決問題的辦法,也就是說縱向解決問題 的辦法行不通了,那么橫向增加服務(wù)器的數(shù)量呢?這時候集群的概念產(chǎn)生了,單個服務(wù)器解 決不了,我們增加服務(wù)器的數(shù)量,然后將請求分發(fā)到各個服務(wù)器上,將原先請求集中到單個服務(wù)器上的情況改為將請求分發(fā)到多個服務(wù)器上,將負載分發(fā)到不同的服務(wù)器,也就是我們 所說的負載均衡

圖片

圖片

Nginx 負載均衡 配置實例

  1. 實現(xiàn)效果

瀏覽器地址欄輸入地址
http://208.208.128.122/edu/a.html,負載均衡效果,平均 8081 和 8082 端口中

  1. 準(zhǔn)備工作

a.準(zhǔn)備兩臺 tomcat 服務(wù)器

準(zhǔn)備兩臺 tomcat 服務(wù)器,一臺 8081,一臺 8082

上面的反向代理第二個實例中已經(jīng)配置成功了。但是需要添加點東西,如下哦。

b. 修改一處

在兩臺 tomcat 里面 webapps 目錄中,創(chuàng)建名稱是 edu 文件夾,在 edu 文件夾中創(chuàng)建 頁面 a.html,用于測試。

由于第二個實例中,8082中有了 edu 的文件夾,所以只在8081 文件夾下創(chuàng)建即可。
然后使用在vod文件下使用命令:

cp a.html ../edu/

即可完成,
查看命令

cd ../edu/ # 進入到 edu 目錄下
cat a.html #查看內(nèi)容

c. 測試頁面

測試URL

http://208.208.128.122:8081/edu/a.html

圖片

http://208.208.128.122:8082/edu/a.html

圖片

  1. 在 nginx 的配置文件中進行負載均衡的配置

修改了第一個示例的 配置

圖片

  1. 最終測試

測試url

http://208.208.128.122/edu/a.html

圖片

圖片

  1. nginx 分配服務(wù)器策略

隨著互聯(lián)網(wǎng)信息的爆炸性增長,負載均衡(load balance)已經(jīng)不再是一個很陌生的話題, 顧名思義,負載均衡即是將負載分攤到不同的服務(wù)單元,既保證服務(wù)的可用性,又保證響應(yīng) 足夠快,給用戶很好的體驗。快速增長的訪問量和數(shù)據(jù)流量催生了各式各樣的負載均衡產(chǎn)品, 很多專業(yè)的負載均衡硬件提供了很好的功能,但卻價格不菲,這使得負載均衡軟件大受歡迎, nginx 就是其中的一個,在 linux 下有 Nginx、LVS、Haproxy 等等服務(wù)可以提供負載均衡服 務(wù),而且 Nginx 提供了幾種分配方式(策略):

a. 輪詢(默認)

每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器 down 掉,能自動剔除。
配置方式:

b. weight

weight 代表權(quán)重, 默認為 1,權(quán)重越高被分配的客戶端越多

upstream myserver {
 server 208.208.128.122:8081 weight=10; # 在這兒
 server 208.208.128.122:8082 weight=10;
 }
 server {
 listen 80;
 server_name 208.208.128.122;
 location / {
 root html;
 proxy_pass http://myserver;
 index index.html index.htm;
 }

c. ip_hash

ip_hash 每個請求按訪問 ip 的 hash 結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器

upstream myserver {
 	ip_hash;							// 在這兒
 server 208.208.128.122:8081 ; 
 server 208.208.128.122:8082 ;
 }
 server {
 listen 80;
 server_name 208.208.128.122;
 location / {
 root html;
 proxy_pass http://myserver;
 index index.html index.htm;
 }

d. fair(第三方)

fair(第三方),按后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。

upstream myserver {					
 server 208.208.128.122:8081 ; 
 server 208.208.128.122:8082 ;
 fair; 														# 在這兒
 }
 server {
 listen 80;
 server_name 208.208.128.122;
 location / {
 root html;
 proxy_pass http://myserver;
 index index.html index.htm;
 }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6715

    瀏覽量

    88307
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84541
  • 局域網(wǎng)
    +關(guān)注

    關(guān)注

    5

    文章

    719

    瀏覽量

    46135
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    12115
收藏 人收藏

    評論

    相關(guān)推薦

    Nginx的正向代理反向代理

    Nginx認識以及配置
    發(fā)表于 05-10 16:58

    采用Nginx反向代理解決跨域

    40Nginx反向代理功能解決跨域問題
    發(fā)表于 10-10 10:58

    主要學(xué)習(xí)nginx的安裝配置

    處理。因為有了中間件,使得大型網(wǎng)站在規(guī)劃有了更好的層次性,維護上更加方便。也可以實現(xiàn)負載均衡、安全防護等。Nginx是一個開源高性能、可靠的HTTP中間件、代理服務(wù),在目前企業(yè)中得到了很大的利用。今天
    發(fā)表于 10-19 14:12

    Apache與Nginx 簡單對比 以及Nginx 基本使用方法

    Nginx (engine x) 是一個高性能的HTTP和反向代理服務(wù)器,也是一個目前運維必備的工具之一。
    的頭像 發(fā)表于 01-31 14:42 ?8165次閱讀
    Apache與<b class='flag-5'>Nginx</b> 簡單對比  以及<b class='flag-5'>Nginx</b> 基本使用方法

    介紹一款輕量級的Web服務(wù)器、反向代理服務(wù)器Nginx

    所謂反向代理,很簡單,其實就是在location這一段配置中的root替換成proxy_pass即可。root說明是靜態(tài)資源,可以由Nginx進行返回;而proxy_pass說明是動態(tài)請求,需要進行轉(zhuǎn)發(fā),比如
    的頭像 發(fā)表于 03-26 10:36 ?1w次閱讀
    介紹一款輕量級的Web服務(wù)器、<b class='flag-5'>反向</b><b class='flag-5'>代理</b>服務(wù)器<b class='flag-5'>Nginx</b>

    Nginx架構(gòu)介紹 Nginx服務(wù)器模型分析

    Nginx是一款免費的、開源的、高性能、模塊化、輕量級的HTTP服務(wù)器、反向代理服務(wù)器以及電子郵件(IMAP/POP3)代理服務(wù)器。
    的頭像 發(fā)表于 01-10 16:32 ?9079次閱讀
    <b class='flag-5'>Nginx</b>架構(gòu)介紹 <b class='flag-5'>Nginx</b>服務(wù)器模型分析

    正向代理反向代理的區(qū)別

    Nginx作為時下最流行的HTTP服務(wù)器之一,同時它是一個反向代理服務(wù)器,提到反向代理服務(wù)器,有同學(xué)可能覺得這個概念很模糊,如果說到
    的頭像 發(fā)表于 05-03 17:42 ?3438次閱讀
    正向<b class='flag-5'>代理</b>和<b class='flag-5'>反向</b><b class='flag-5'>代理</b>的區(qū)別

    Nginx的詳細知識點講解

    Nginx是一個高性能的HTTP和反向代理服務(wù)器,特點是占用內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好 ngi
    的頭像 發(fā)表于 12-26 10:25 ?2490次閱讀
    <b class='flag-5'>Nginx</b>的詳細知識點講解

    如何徹底搞懂Nginx知識網(wǎng)結(jié)構(gòu)

    1.Nginx知識網(wǎng)結(jié)構(gòu)圖 Nginx是一個高性能的HTTP和反向代理服務(wù)器,特點是占用內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在
    的頭像 發(fā)表于 05-03 14:15 ?1577次閱讀
    如何徹底搞懂<b class='flag-5'>Nginx</b>知識網(wǎng)結(jié)構(gòu)

    apache反向代理和負載均衡總結(jié)

    apache反向代理和負載均衡總結(jié)(5g電源技術(shù)要求)-apache反向代理和負載均衡總結(jié) ? ? ? ? ? ? ? ?
    發(fā)表于 08-31 12:27 ?0次下載
    apache<b class='flag-5'>反向</b><b class='flag-5'>代理</b>和負載均衡總結(jié)

    詳解Nginx高性能的HTTP和反向代理服務(wù)器

    Nginx 是一個高性能的 HTTP 和反向代理服務(wù)器,特點是占用內(nèi)存少,并發(fā)能力強,事實上 Nginx 的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
    的頭像 發(fā)表于 03-16 11:23 ?2303次閱讀

    Nginx目錄結(jié)構(gòu)有哪些

    什么是Nginx? Nginx是一個 輕量級/高性能的反向代理Web服務(wù)器,他實現(xiàn)非常高效的反向代理
    的頭像 發(fā)表于 11-11 11:27 ?533次閱讀
    <b class='flag-5'>Nginx</b>目錄結(jié)構(gòu)有哪些

    Nginx 如何實現(xiàn)高性能低消耗

    Nginx 是一個輕量級的HTTP 服務(wù)程序,相比其他服務(wù)器程序如Apache,Nginx占用內(nèi)存少,穩(wěn)定性高,并發(fā)處理能力強。同時Nginx 還是一個反向
    的頭像 發(fā)表于 11-11 11:31 ?495次閱讀
    <b class='flag-5'>Nginx</b> 如何實現(xiàn)高性能低消耗

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

    Nginx 配置中設(shè)置頭信息以保留客戶端的真實 IP 地址通常是在使用反向代理的場景中需要的。當(dāng) Nginx 作為反向
    的頭像 發(fā)表于 11-30 10:54 ?1540次閱讀

    如何使用nginx反向代理功能?保姆級教程!

    一關(guān)于nginxnginx是一款高性能的開源Web服務(wù)器軟件,也可以用于反向代理、負載均衡等,并且具有高性能、低內(nèi)存消耗等優(yōu)點。本文我們主要講解關(guān)于nginx反向
    的頭像 發(fā)表于 06-21 08:21 ?402次閱讀
    如何使用<b class='flag-5'>nginx</b><b class='flag-5'>反向</b><b class='flag-5'>代理</b>功能?保姆級教程!