国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 網站 > Nginx > 正文

淺談Nginx七層反向代理和負載均衡

2024-08-30 12:29:48
字體:
來源:轉載
供稿:網友

1.介紹

1.1 Nginx不僅是一個出色的web軟件,其七層代理和負載均衡也是相當出色。Nginx做前端代理,當用戶請求服務時,可以根據url進行判斷,然后分配到不同的后臺webserver上。

1.2 Nginx的負載均衡實現原理:首先在http模塊中配置使用upstream模塊定義后臺的web server的池子,名為proxy-web,在池子中我們可以添加多臺后臺webserver,其中狀態檢查、調度算法都是在池子中配置;然后在serverr模塊中定義虛擬主機,但是這個虛擬主機不指定自己的web目錄站點,它將使用location匹配url然后轉發到上面定義好的web池子中,最后根據調度策略再轉發到后臺web server上

2.負載均衡配置項的介紹

2.1 upstream調度算法介紹

(1)rr輪詢(默認)

按照請求順序分配到每個RS,和lvs中的rr算法一樣,如果RS宕機,會自動剔除,默認情況下只檢測80端口,如果RS報402、403、503、504錯誤,會直接返回給客戶端。

(2)weight(權重)

在rr的基礎上再加上權重(默認是rr+weight),權重輪詢和訪問成正比,值越大分配的越多,可以根據服務器的配置設置權重,可以解決服務器性能不均進行請求分配的問題

(3)ip_hash

解決動態網頁session共享問題

每個訪問請求按照IP地址的hash值進行分配,ip的hash值只要相同就會被分配到同一臺服務器上(lvs負載均衡的-p參數,keepalived配置里的persistence_timeout 50),該調度算法可以解決動態網頁session共享問題,但有時會導致請求分配不均,

提示:由于國內用的都是nat模式,所以hash不適合使用

ip_hash不能和其他的算法一塊使用,即不能使weight或backup

(4)fair(第三方)

按照后端服務器的響應時間來配置,響應時間短的優先分配,比上面的都更智能,此種算法可以按照頁面大小和加載時間長短智能的進行負載均衡,nginx本身不支持fair,需要下載nginx的upstrea_fair模塊

(5)url_hash(第三方)

主要應用于緩存服務器上

按照訪問的url來分配請求,讓相同的url定向到同一個服務器,后端服務器為緩存服務器的時候效果更顯著,在upstream中加入hash語句,server語句中不能寫入weight等其他的參數,hash_method是使用的hash算法。

缺點:如果有一臺機器宕機了,那就苦了,consistent_hash可以解決這個問題

可以提高后端緩存服務器的效率,nginx本身不支持url_hash的,需要下載hash軟件

(6)least_conn

最少連接數,哪個連接少就分配到哪臺設備

(7)consistent_hash

 一致性算法

2.2 upstream健康檢查配置介紹

upstream proxy_nginx {        server 192.168.0.254 weight=1 max_fails=2 fail_timeout=10s ;        server 192.168.0.253 weight=2 max_fails=2 fail_timeout=10s;              server 192.168.0.252 backup;              server 192.168.0.251 down;    }

server 192.168.0.254 : 后臺RS,可以是域名或IP,默認是80端口,也可加上:80指定

wight = 1 權重比 默認是1

max_fails=2 健康檢查的最大失敗次數,超過此次數表示該RS不可用,默認是1,0表示禁止失敗嘗試。生產環境一般設置2~3次

fail_timeout=10s  失敗的超時時間,默認是10s

backup  熱備配置,當前面的RS全部不可用時自動啟動

down  表示該服務永遠不可用

注意:max_fails設置的越低用戶體驗越好,但是設置低了也有個缺點,就是proxy可能會誤判RS的狀態,而且RS越少誤判的幾率越大,誤判會對業務產生巨大影響,當RS的數量比較少時建議將該值設置的大點。

2.3 location指令的用法介紹

Location主要用來匹配url,如:http://www.beyond.com/nice,在這里對于location來說www.beyond.com是域名,/nice才是url。

對于url的匹配,可以使用字符串或者正則表達式,但如果是正則表達式,必須指定前綴,location指令來匹配不同的url,匹配成功后應用不同的配置

語法:location [=|~|~*|^~|@]/url {…..}

[=]精確匹配,如果找到匹配等號的內容,立即停止搜索,并立即處理請求(優先級最高)

[~] 表示匹配正則表達式,區分大小寫

[^~]只匹配字符串,不匹配正則表達式,主要用來匹配目錄

[~*]表示匹配正則表達式,不區分大小寫

[@]指定一個命名的location,一般只應用于內部重定向請求,location @name {···}

示例:

worker_processes 1;events {  worker_connections 1024;}http {  include    mime.types;  default_type application/octet-stream;  sendfile    on;  keepalive_timeout 65;  server {    listen    80;    server_name www.beyond.com;#No.1    location / {        return 502;    }#No.3    location ~* /.jpg$ {        return 403;    }#No.4    location ^~ /a/ {        return 402;    }#No.5    location /a/1.jpg {        return 401;    }#No.6    location = /a/.jpg {        return 400;    }}}

小結:

匹配順序:

1)優先先匹配普通url,但是匹配完之后會繼續匹配正則

內部匹配規則為最大匹配前綴,即location /data/123 {} 要比 location /data {} 優先,和location的位置順序沒關系。匹配完之后會用最大匹配前綴 繼續去匹配下面的正則匹配

2)正則匹配,

  正則匹配跟位置順序無關,但是和邏輯順序有關,會以最大匹配為準(越精確越優先)

3)location的執行邏輯基本上跟順序沒有關系;但是針對正則匹配的方式,匹配上第一個url,就不在繼續匹配后面的url;

這種情況,如果匹配上普通localtion,沒有正則匹配,則使用普通匹配;如果既有普通location的最大前綴匹配,也有正則匹配,則正則匹配覆蓋最大前綴匹配。

4)匹配完“普通 location ”后,有的時候需要繼續匹配“正則 location ”,有的時候則不需要繼續匹配“正則 location ”。

兩種情況下,不需要繼續匹配正則 location :(1) 當普通 location 前面指定了“ ^~ ”,特別告訴 Nginx 本條普通 location 一旦匹配上,則不需要繼續正則匹配;(2) 當普通location 恰好嚴格匹配上,不是最大前綴匹配,則不再繼續匹配正則。

2.4 proxy模塊的介紹

Nginx轉發模塊是ngx_http_proxy_module,默認安裝,可以直接使用

Proxy_pass此指令用于轉發location匹配到的url到serve池子中。

語法:proxy_pass URL;

注意:使用該指令時需注意URL中是否包含URI。,如果URL中不包含URI,nginx將不會改變原地址的uri,如果包含uri,將使用新的uri代替原來的uri。

如:

location /test {#1 proxy_pass http://1.1.1.1;#2 proxy_pass http://1.1.1.1/tmp;}

如果使用1的話,原來的url將不會改變,代理后是http://1.1.1.1/test

如果使用2的話,原來的url將會變為http://1.1.1.1/tmp

所以在配置的時候需要注意url末尾是否加“/”的問題

參數:

proxy_ignore_client_abort  on|off用于設置客戶端中斷網絡請求時,nginx是否中斷對被代理服務器的請求,默認為off,中斷

proxy_headers_hash_max_size  size 設置http報文頭的哈希表的大小,默認為512

proxy_headers_hash_bucket_size size 設置申請存放http報文頭的哈希表容量的單位大小,默認為64字符

client_body_buffer_size  客戶端請求緩存大小,可以理解為先保存本地在傳給用戶

proxy_connect_timeout time  與RS鏈接超時的時間,默認為60s

proxy_send_timeout time  RS回傳數據的時間,必須在這個時間段內傳完,否則斷開連接

proxy_read_timeout time  等待RS響應的時間,標明連接已經成功,正在排隊

proxy_buffering on|off 是否開啟proxy buffer 默認為on

proxy_buffer_size 緩存區大小,默認等于指令proxy_buffers設置的大小 默認為4K或8K

proxy_buffers number size  緩沖區的數量和大小,從RS獲取的響應信息會放置到緩沖區,默認為8 4K|8K

proxy_busy_buffers_size  系統很忙時可以使用的proxy_buffers大小,官方推薦的大小是proxy_buffers的兩倍,默認為8K或16K

proxy_temp_path path [level1[level2]] 指定磁盤上的一個文件路徑,用于臨時存放代理服務器的大體積響應數據,如果buffer已經裝滿,但是響應數據仍然沒有被nginx完全接收,響應數據就會被臨時存放到該文件中

proxy_max_temp_file_size  用于配置所有臨時文件的總體積大小

proxy_temp_file_write_size  用于配置同時寫入緩存臨時文件的數據量大小
proxy_set_header host $host 當RS有多個虛擬主機的時候需要逐個指定

proxy_set_header X-Forwarded-For $remote_addr   開啟負載均衡器轉發真實客戶的IP地址給RS.   

注意:

“proxy_set_header”當我們的RS有多個虛擬主機(相同的ip,相同的端口)的時候如www、bbs、blog,代理服務器怎么知道將請求發到哪呢,這個時候nginx代理就會查找proxy_set_header參數,將請求發送到相應域名的虛擬主機上。

3.nginx負載均衡配置案例

1.有三個域名:www.beyond.com bbs.beyond.com film.beyond.com,四臺webserver負責提供服務

2.有一個mailserver和cloud server在一臺服務器上

規劃:

web1   192.168.254.251    BBS、film

web2   192.168.254.252     BBS、film

web3   192.168.254.253       BBS、film

web4   192.168.254.254     www,負載均衡器

web5   192.168.254.250      mail   cloud

說明:web4是負載均衡器,同時也負責解析www站點。web1、web2、web3負責解析bbs和film站點。Mail和cloud在同一臺設備上,也是web站點

Nginx的安裝略了

現在列出web4的nginx的配置文件供參考

nginx.conf:user nginx;worker_processes 4;error_log logs/error.log;pid    logs/nginx.pid;events {  use epoll ;    worker_connections 1024;http {   include    mime.types;   default_type application/octet-stream;   server_tokens off;   sendfile    on;   tcp_nopush    on;   keepalive_timeout 65;   fastcgi_connect_timeout 300;   fastcgi_send_timeout  300;   fastcgi_read_timeout  300;   client_header_buffer_size   32k;   large_client_header_buffers 4 128k;   client_max_body_size 10m;   gzip on;   gzip_min_length 1k;   gzip_buffers   4 8k;   gzip_http_version 1.1;   gzip_comp_level 6;   gzip_vary on;   gzip_types    text/javascript text/plain application/x-javascript text/css application/xml;  log_format main ' $http_host $http_x_forwarded_for ${request_time}s [$time_local] "$request" $status $body_bytes_sent $http_referer $http_user_agent $remote_addr';    include vhosts/*.conf;         #每個虛擬主機一個配置文件    include upstream.conf;            #存放web的后臺server     fastcgi_intercept_errors on;}
Vhosts/{bbs,film,www,cloud,mail}.conf: server {    listen    80;    server_name bbs.beyond.com;    index index.php;    location / {    proxy_pass http://web;    proxy_set_header host $host;    proxy_set_header X-Forwarded-For $remote_addr;    client_body_buffer_size  4K;    proxy_connect_timeout  90;    proxy_send_timeout  90;    proxy_read_timeout  90;    proxy_buffer_size  4K;    proxy_buffers   4 32K;    proxy_busy_buffers_size 64K;    proxy_temp_file_write_size 64K;}  }
 server {    listen    80;    server_name cloud.beyond.com;    index index.php;    location / {    proxy_pass http://192.168.254.250:8000;    proxy_set_header host $host;    proxy_set_header X-Forwarded-For $remote_addr;    client_body_buffer_size  4K;    proxy_connect_timeout  90;    proxy_send_timeout  90;    proxy_read_timeout  90;    proxy_buffer_size  4K;    proxy_buffers   4 32K;    proxy_busy_buffers_size 64K;    proxy_temp_file_write_size 64K;}  }
 server {    listen    80;    server_name film.beyond.com;    index index.php;    location / {    proxy_pass http://web;    proxy_set_header host $host;    proxy_set_header X-Forwarded-For $remote_addr;    client_body_buffer_size  4K;    proxy_connect_timeout  90;    proxy_send_timeout  90;    proxy_read_timeout  90;    proxy_buffer_size  4K;    proxy_buffers   4 32K;    proxy_busy_buffers_size 64K;    proxy_temp_file_write_size 64K;}  }
 server {    listen    80;    server_name mail.beyond.com;    index index.php;    location / {    proxy_pass http://192.168.254.250:80;    proxy_set_header host $host;    proxy_set_header X-Forwarded-For $remote_addr;    client_body_buffer_size  4K;    proxy_connect_timeout  90;    proxy_send_timeout  90;    proxy_read_timeout  90;    proxy_buffer_size  4K;    proxy_buffers   4 32K;    proxy_busy_buffers_size 64K;    proxy_temp_file_write_size 64K;}  }
 server {    listen    80;    server_name monitor.beyond.com;    index index.php;    location / {    proxy_pass http://192.168.254.220;    proxy_set_header host $host;    proxy_set_header X-Forwarded-For $remote_addr;    client_body_buffer_size  4K;    proxy_connect_timeout  90;    proxy_send_timeout  90;    proxy_read_timeout  90;    proxy_buffer_size  4K;    proxy_buffers   4 32K;    proxy_busy_buffers_size 64K;    proxy_temp_file_write_size 64K; }  }
 server {    listen    80;    server_name www.beyond.com;    root /usr/local/nginx/html/www;    index index.html;    access_log logs/current/www.beyond.com-access.log main;    error_log logs/current/www.beyond.com-error.log;     error_page  500 501 502 503 504 /error/5-error.html;      error_page 400 403 404 405 408 410 411 412 413 414 415 /error/4-error.html;     location ~ .*/.(gif|jpg|jpeg|png|bmp|swf)$ {        expires 30d;    }     location ~.*/.(js|css|javascript|fluash)$ {        expires 24h;    }    location /error {    root /usr/local/nginx/logs/error;    }   }

注意每個server是一個.conf的文件

upstream.conf文件:

upstream web {server 192.168.254.253 weight=1 max_fails=2 fail_timeout=10s ;server 192.168.254.252 weight=1 max_fails=2 fail_timeout=10s ;server 192.168.254.251 weight=1 max_fails=2 fail_timeout=10s ;}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
另类综合图区| 欧美精品se| 成人av小说网| www.九九热.com| jlzzjlzz欧美大全| 成av人免费青青久| 中文字幕在线观看播放| 国产精品欧美色图| 国产大学生粉嫩无套流白浆| 精精国产xxxx视频在线动漫| www555久久| 中中文字幕av在线| 99在线视频观看| av在线电影观看| 国产美女在线看| 夜色资源网av在先锋网站观看| 91亚洲欧美| 免费在线看v| 国产黄在线看| 国产在线观看av| 亚洲夜夜综合| 国产精品亚洲第五区在线| 在线天堂av| 国产美女免费观看| 精品亚洲综合| 黄色片视频在线观看| 国产人成精品| 成 人免费视频播放| 在线视频1区2区| 国产小视频免费在线观看| 欧美精品小视频| 精品一区二区三区在线观看l| 欧美午夜电影一区二区三区| 国产精品久久久久永久免费看| 国产三级av在线| 激情综合网五月激情| 国产精品久久久久久久久鸭| 麻豆av在线| gogo高清在线播放免费| 国产精品合集一区二区| 日本不卡影院| 伊人网在线免费观看| 中文字幕亚洲免费| 成年网在线观看免费观看网址| 99久久99热久久精品免费看| 中文字幕在线观看播放| 亚洲色婷婷综合开心网| 国产麻豆一级片| 欧美婷婷久久五月精品三区| 日本韩国精品一区二区| av在线二区| 午夜在线网站| 欧美视频免费一区二区三区| 日本在线视频www鲁啊鲁| 国产成人综合亚洲欧美在| 国产精品日日爱| 2021天堂中文幕一二区在线观| 国产导航在线| 中文字幕av在线| 伊人影院在线观看| eeuss影院www在线播放| 亚洲视频网站在线| 欧洲亚洲精品视频| 国产永久免费高清在线观看| 日本中文字幕高清视频| 中文字幕在线第一页| 精品久久亚洲一级α| jizz亚洲大全| 国产麻豆高清视频在线第一页| 五月婷婷视频在线观看| 精品欧美日韩一区二区| gogo在线高清视频| 国产精品一区二区三区高清在线| 国产一级黄色电影| 亚洲欧美中文字幕在线观看| 黄色免费av| 国产二级片在线| www免费在线观看| 国产欧美一区二区三区小说| av在线免费播放| 中文字幕网站视频在线| 亚洲国产精华液| 午夜伦全在线观看| 青青国产在线| 在线视频中文字幕久| 国产一区二区三区不卡在线| 四虎国产精品永久| 国产黄色大片在线观看| 免费视频二区| 夜夜操com| 国产极品视频| 国产中文字幕在线播放| 精品视频一二三| 午夜国产视频| 麻豆视频在线观看免费网站| 91超碰免费在线| 久久综合第一页| av在线免费播放网站| 精品无人乱码| 国产高清视频在线| 国产精品冒白浆免费视频| 大香伊人中文字幕精品| 在线观看国产视频| 在线视频三区| 2021天堂中文幕一二区在线观| 国产特级淫片免费看| 懂色av一区| 黄色片视频在线观看| 免费a在线看| 久草在线视频网| 国产在线播放av| 天堂在线一二区 | 欧美艹逼视频| 欧美日韩不卡中文字幕在线| 亚洲最新永久在线观看| 亚洲男人网站| 麻豆视频在线观看免费网站| 狠狠干天天爱| 中文字幕网在线| 国产精品黄页网站在线播放免费| 成年网在线观看免费观看网址| 免费观看一二区视频网站| 日韩精品免费一区二区| 色欧美在线观看| 丁香视频免费观看| 国产日韩欧美精品一区二区三区| 国产亚洲精品拍拍拍拍拍| 国产精品伦一区二区三区视频| 国产无遮挡又黄又爽免费网站| 国产黄a三级三级三级av在线看| 国产对白在线| 天堂在线国产| 综合激情丁香| 亚洲欧美日韩综合精品网| 国产在线中文字幕| 国产理论电影在线观看| 国产精品久久久久白浆| www免费在线观看| 国产三级在线播放| 免费在线看v| ·天天天天操| 天堂在线看视频| 日韩在线天堂| 国产成在线观看免费视频| 超碰免费在线播放| 91亚洲天堂| 天堂资源在线中文| 在线国产1区| 国产永久av在线| 色欧美在线观看| 国产精品一区牛牛影视| 国产第一页在线视频| 久久亚洲资源| 亚洲综合天堂网| 国产视频精选在线| 国产乱xxⅹxx国语对白| 天天激情综合| 伊人免费视频| 91这里只有精品| 国产二级片在线| 国产精品日日爱| 午夜视频99| 国产理论片免费观看| 欧美日韩不卡中文字幕在线| 亚洲久草视频| 99久久国产视频| 国产经典自拍视频在线观看| 国产69精品久久久久孕妇国产69久久 | 国产精品久久久久久久牛牛| 久久国产精品黑丝| 欧美日韩久久中文字幕| 青青久草在线| 亚洲日本伊人| 在线免费观看黄色av| 在线视频中文字幕| 四虎中文字幕| 日本免费黄色| 超碰在线97国产| 高清色视频在线观看| 国产精品一卡二卡三卡| 国产一级粉嫩xxxx| 国产精彩视频在线观看免费蜜芽| 国产一二三区在线视频| 国产精品伦理一区二区三区| 国产成人无吗| www.国产精品.com| 中文字幕一区免费| 伊人伊人av电影| 小说区乱图片区| 国产免费专区| 国产黄色免费网站| av日韩在线免费| 国产在线你懂得| 国产精品99999| 日本电影全部在线观看网站视频 | 亚洲国产精品区| 天堂在线免费观看| 国产va在线| 麻豆视频国产| 99在线播放|