欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx反向代理與負載均衡實戰(zhàn)篇

 更新時間:2019年03月15日 18:10:50   作者:mori_d  
這篇文章主要介紹了Nginx反向代理與負載均衡實戰(zhàn)篇,需要的朋友可以參考下

反向代理

反向代理指的是以代理服務器接收用戶的的訪問請求,代理用戶向內(nèi)部服務器重新發(fā)起請求,最后把內(nèi)部服務器的響應信息返回給用戶。這樣,代理服務器對外就表現(xiàn)為一臺服務器,而訪問內(nèi)部服務器的客戶端用的就是代理服務器,而不是真實網(wǎng)站訪問用戶。

為什么使用反向代理

  • 可以起到保護網(wǎng)站安全的作用,因為任何來自Internet的請求都必須先經(jīng)過代理服務器。
  • 通過緩存靜態(tài)資源,加速Web請求。
  • 實現(xiàn)負載均衡

反向代理例子

環(huán)境說明

假如有AB兩個服務器。A服務器提供web資源,并且只給內(nèi)網(wǎng)訪問。B服務器有兩塊網(wǎng)卡,一塊與A服務器在一個內(nèi)網(wǎng),以塊是外網(wǎng)。此時,用戶C想直接訪問A服務器是行不通的。這時就可以通過B服務器代理用戶C的請求去訪問A服務器了。

hostname 網(wǎng)卡 IP 說明
moli-04 ens33 192.168.30.6 內(nèi)網(wǎng)IP,代理服務器
moli-04 ens37 192.168.93.129 外網(wǎng)IP,代理服務器
moli-05 ens33 192.168.30.7 內(nèi)網(wǎng)服務器

  • 兩臺機器都安裝nginx
  • moli-05服務器訪問是wordpress博客,域名blog.syushin.org
  • 虛擬機實驗環(huán)境,就都關閉防火墻了

配置虛擬主機

moli-04機器上編輯虛擬主機配置文件,內(nèi)容如下:

[root@moli-04 extra]$ cat blog.syushin.org.conf 
server{
 listen 80;
 server_name blog.syushin.org;
 
 location / {
  proxy_pass http://192.168.30.7;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 } 
}

更改hosts文件

windows上修改hosts文件,添加配置

192.168.93.129 blog.syushin.org

瀏覽器測試

訪問地址是192.168.93.129,出現(xiàn)的界面的05機器的頁面,配置成功。

負載均衡

負載均衡的功能

  • 對用戶的訪問請求進行調(diào)度管理
  • 對用戶的訪問請求進行壓力分擔

負載均衡集群在運行時,一般是通過一個或者多個前端負載均衡器將客戶訪問請求發(fā)到后端的一組服務器上。

Nginx負載均衡

嚴格來說,Nginx僅僅是作為Nginx Proxy反向代理的使用的,但是因為這個反向代理功能表現(xiàn)的效果是負載均衡機器的效果,因此nginx負載均衡是特殊的反向代理。

實現(xiàn)Nginx負載均衡的主要組件:

Nginx模塊 說明
ngx_http_proxy_module proxy代理模塊,用于把請求發(fā)送給服務器節(jié)點或upstream服務器池
ngx_http_upstream_module 負載均衡模塊,可以實現(xiàn)網(wǎng)站的負載均衡功能及節(jié)點的健康檢查

upstream模塊介紹

ngx_http_upstream_module模塊支持的代理方式有proxy_pass,fastcgi_pass等,主要使用proxy_pass。

upstream模塊允許nginx定義一組或多組節(jié)點服務器組,使用時通過proxy_pass代理把網(wǎng)站的請求發(fā)送到定義好的對應的節(jié)點組中。

示例:創(chuàng)建節(jié)點服務器池

upstream blog {
 server 192.168.30.5:80 weight=5;
 server 192.168.30.6:81 weight=10;
 server 192.168.30.7:82 weight=15;
}

upstream:創(chuàng)建節(jié)點服務器組的關鍵字,必須有;
blog:節(jié)點服務器組的名字,必須有,可自定義名字;
server:關鍵字,后面可加IP或者域名或者IP:端口,不指定端口默認80;
weight:權重,數(shù)值越大被分配的請求越多。默認為1

設置節(jié)點服務器的狀態(tài)值除了weight之外,還有:
max_fails:允許請求失敗的次數(shù)默認為1.當超過最大次數(shù)時,返回proxy_next_upstream 模塊定義的錯誤.
fail_timeout:max_fails次失敗后,暫停的時間。
down:表示當前的節(jié)點服務器不參與負載,標志機器永遠不可用,可配合iP_hash使用
backup:其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。

使用域名的upstream

upstream blog2{
 server www.syushin.com weight=5;
 server blog.syushin.org down;
 server blog.syushin.cc backup;
}

調(diào)度算法

rr輪詢(默認調(diào)度算法,靜態(tài)調(diào)度算法)

按客戶端請求順序把客戶端的請求逐一分配到不同的后端節(jié)點服務器。

wrr(權重輪詢,靜態(tài)調(diào)度算法)

在rr輪詢的基礎上加上權重,使用該算法的時候,權重和用戶訪問成正比,權重值越大,被轉發(fā)的請求就越多。
比如有30個請求,2臺服務器A(10.0.0.1)和B(10.0.0.2),如果希望A處理10個請求,B處理20個請求,可以這樣定義:

upstream pools{
 server 10.0.0.1 weight=1;
 server 10.0.0.2 weight=2;
}

ip_hash(靜態(tài)調(diào)度算法)

每個請求按客戶端IP的hash結果分配,當新的請求到達,先將客戶端IP通過哈希算法哈希出一個值,在隨后的分配客戶端請求中,客戶IP的哈希值只要相同,就會被分配到同一臺服務器。

upstream blog_pool{
 ip_hash;
 server 192.168.30.5:80;
 server 192.168.30.6:8090;
}

注意:當使用ip_hash時,不能有weight和backup。

least_conn算法

least_conn算法會根據(jù)后端服務器的連接數(shù)來覺得分配情況,哪臺服務器連接數(shù)最少就分發(fā)多的請求。

調(diào)度算法除了上面所列的(常用)還有很多,就不一一列舉了。

http_proxy_module模塊

http_proxy_module可以將請求轉發(fā)到另外一臺服務器,在反向代理中,會通過location功能匹配指定的URI,然后把收到符合匹配的URI的請求通過proxy_pass拋給定義好的upstream節(jié)點池。

http_proxy模塊參數(shù)

參數(shù) 說明
proxy_set_header 設置http請求header項傳給后端服務器節(jié)點,例如:可實現(xiàn)讓代理后端的服務器節(jié)點獲取訪問客戶端用戶的真實IP地址
client_body_buffer_size 用于指定客戶端請求主體緩沖區(qū)大小
proxy_connect_timeout 表示反向代理后端節(jié)點服務器連接的超時時間,即發(fā)起握手等候響應的超時時間
proxy_send_timeout 表示代理后端服務器的數(shù)據(jù)回傳時間,即在規(guī)定時間內(nèi)后端服務器必須傳完所有數(shù)據(jù),否則nginx將斷開這個連接
proxy_read_timeout 設置nginx從代理的后端服務器獲取信息的時間,表示連接建立成功后,nginx等待后端服務器的響應時間,其實是nginx已經(jīng)進入后端的排隊之中等候處理的時間
proxy_buffer_size 設置緩沖區(qū)大小,默認該緩沖區(qū)大小等于指令proxy_buffers設置的大小
proxy_buffers 設置緩沖區(qū)的數(shù)量和大小,nginx從代理的后端服務器獲取的響應信息,會設置到緩沖區(qū)
proxy_busy_buffers_size 用于設置相同很忙時可以使用的proxy_buffers大小,官方推薦的大小為 proxy_buffers * 2
proxy_trmp_file_write_size 指定proxy緩存臨時文件的大小

proxy_pass使用

格式:proxy_pass URL;

示例如下:

proxy_pass http://blog.syushin.com/;
proxy_pass http://192.168.30.7:8080/uri;
proxy_pass http://tmp/www.sock;

URL可以是域名,IP地址也可以是socket文件。

對于proxy_pass的配置有幾點需要注意:
示例1

location /upload/ {
    proxy_pass http://192.168.30.7;
}

示例2

location /upload/ {
    proxy_pass http://192.168.30.7/; # 注意多了一個斜桿
}

示例3

location /upload/ {
    proxy_pass http://192.168.30.7/blog/;
}

示例4

location /upload/ {
    proxy_pass http://192.168.30.7/blog;
}

假如server_name為blog.syushin.com,當請求http://blog.syushin.com/uploa...,上面示例1-4的請求結果是:

示例1:http://192.168.30.7/upload/index.html
示例2:http://192.168.30.7/index.html
示例3:http://192.168.30.7/blog/index.html
示例4:http://192.168.30.7/blogindex.html

好了,這篇文章就介紹到這了,希望大家以后多多支持腳本之家。

相關文章

  • nginx?添加http_stub_status_module模塊

    nginx?添加http_stub_status_module模塊

    本文主要介紹了nginx?添加http_stub_status_module模塊,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • nginx降權與匹配php詳細講解

    nginx降權與匹配php詳細講解

    大部分網(wǎng)站開發(fā)語言都要運行在服務器,比如主流的nginx、apache等等,下面這篇文章主要給大家介紹了關于nginx降權與匹配php的相關資料,需要的朋友可以參考下
    2023-01-01
  • 一次nginx 504 Gateway Time-out錯誤排查、解決記錄

    一次nginx 504 Gateway Time-out錯誤排查、解決記錄

    這篇文章主要介紹了一次nginx 504 Gateway Time-out錯誤排查、解決記錄,經(jīng)過反復檢查,發(fā)現(xiàn)造成這個問題的原因就是PHP的CURL沒有設置超時時間,解決辦法只要設置超時時間或者修改一下nginx的配置即可解決,需要的朋友可以參考下
    2014-05-05
  • 5種nginx負載均衡配置方法分享

    5種nginx負載均衡配置方法分享

    這篇文章主要介紹了5種nginx負載均衡配置方法分享,分別是nginx自帶的3種方法和2種第三方配置方法,需要的朋友可以參考下
    2014-07-07
  • Nginx最大連接數(shù)配置詳解

    Nginx最大連接數(shù)配置詳解

    這篇文章主要為大家詳細介紹了Nginx最大連接數(shù)配置的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Nginx DNS resolver配置實例

    Nginx DNS resolver配置實例

    這篇文章主要介紹了Nginx DNS resolver配置實例,本文講解在proxy_pass 和 upstream server 通信的時候需要手動指定 resolver,本文就給出了配置實例,需要的朋友可以參考下
    2015-01-01
  • 淺談nginx反向代理中神奇的斜線

    淺談nginx反向代理中神奇的斜線

    這篇文章主要介紹了淺談nginx反向代理中神奇的斜線,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Linux  安裝nginx服務器詳細介紹

    Linux 安裝nginx服務器詳細介紹

    這篇文章主要介紹了Linux 安裝nginx服務器詳細介紹的相關資料,需要的朋友可以參考下
    2016-10-10
  • nginx+apache+mysql+php+memcached+squid搭建集群web環(huán)境

    nginx+apache+mysql+php+memcached+squid搭建集群web環(huán)境

    當前,LAMP開發(fā)模式是WEB開發(fā)的首選,如何搭建一個高效、可靠、穩(wěn)定的WEB服務器一直是個熱門主題,本文就是這個主題的一次嘗試。
    2011-03-03

最新評論