時間:2023-07-14 23:48:02 | 來源:網(wǎng)站運營
時間:2023-07-14 23:48:02 來源:網(wǎng)站運營
Nginx負載均衡配置、限流配置、Https配置詳解:upstream myApiTest { server localhost:9001 weight=10; server localhost:9002 weight=5; server localhost:9003 max_fails=3 fail_timeout=30s; server localhost:9004 backup; server localhost:9005 down; }
worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream myApiTest { server localhost:9001; server localhost:9002; server localhost:9003; } server { listen 8080; server_name xxx; #隨意配置一個即可,優(yōu)先走代理地址 location / { proxy_pass http://myApiTest; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
補充其他參數(shù)說明:upstream myApiTest { server localhost:9001 backup; server localhost:9002 down; server localhost:9003;}
(2).輪詢+權(quán)重worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream myApiTest { server localhost:9001 weight=10; server localhost:9002 weight=5; server localhost:9003; } server { listen 8080; server_name xxx; #隨意配置一個即可,優(yōu)先走代理地址 location / { proxy_pass http://myApiTest; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
(3). ip_hashworker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream myApiTest { ip_hash; #開啟ip_hash策略 server localhost:9001; server localhost:9002; server localhost:9003; } server { listen 8080; server_name xxx; #隨意配置一個即可,優(yōu)先走代理地址 location / { proxy_pass http://myApiTest; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
(4). url_hash[Route("api/[controller]/[action]")] [ApiController] public class HomeController : ControllerBase { [HttpPost] public string GetNowTime() { string nowTime = DateTime.Now.ToString(); Console.WriteLine($"當前時間為:{nowTime}"); return $"當前時間為:{nowTime}"; } }
(2). nginx服務(wù)worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 7000; #監(jiān)聽端口 server_name xxx; #隨意配置一個地址即可,優(yōu)先走代理 location / { proxy_pass http://localhost:7061; #代理地址 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
通過post請求訪問:http://localhost:7000/api/Home/GetNowTime ,返回當前時間,表示配置成功。limit_conn_zone $server_name zone=myLimit0:10m;limit_conn_zone $binary_remote_addr zone=myLimit1:10m;
(1). $server_name:表示虛擬主機(server) 同時能處理并發(fā)連接的總數(shù)。 (數(shù)量在啟用時配置)limit_conn myLimit1 2; #啟用限流
(1). myLimit1 :表示用上述聲明的哪個配置進行限制,myLimit1與上述聲明的名稱相對應(yīng)。worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 限流配置聲明 limit_conn_zone $server_name zone=myLimit0:10m; server { listen 7000; #監(jiān)聽端口 server_name xxx; #隨意配置一個地址即可,優(yōu)先走代理 location / { limit_conn myLimit0 5; #啟用限流 proxy_pass http://localhost:7061; #代理地址 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
測試結(jié)果:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 限流配置聲明 limit_conn_zone $binary_remote_addr zone=myLimit1:10m; server { listen 7000; #監(jiān)聽端口 server_name xxx; #隨意配置一個地址即可,優(yōu)先走代理 location / { limit_conn myLimit1 8; #啟用限流 proxy_pass http://localhost:7061; #代理地址 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
測試結(jié)果:忽略limit_req_zone $binary_remote_addr zone=myLimit2:10m rate=5r/s;
(1). $binary_remote_addr : 表示限制同一客戶端ip地址,即限制速率是以ip為分類的,限制每個ip的速度。limit_req zone=myLimit2 burst=5 nodelay;
(1). zone=myLimit2:表示用上述聲明的哪個配置進行限制,myLimit2與上述聲明的名稱相對應(yīng)。worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 限流配置聲明 limit_req_zone $binary_remote_addr zone=myLimit2:10m rate=2r/s; server { listen 7000; #監(jiān)聽端口 server_name xxx; #隨意配置一個地址即可,優(yōu)先走代理 location / { limit_req zone=myLimit2; #啟用限流 proxy_pass http://localhost:7061; #代理地址 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
測試結(jié)果:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 限流配置聲明 limit_req_zone $binary_remote_addr zone=myLimit2:10m rate=2r/s; server { listen 7000; #監(jiān)聽端口 server_name xxx; #隨意配置一個地址即可,優(yōu)先走代理 location / { limit_req zone=myLimit2 burst=5; #啟用限流 proxy_pass http://localhost:7061; #代理地址 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
測試結(jié)果:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 限流配置聲明 limit_req_zone $binary_remote_addr zone=myLimit2:10m rate=1r/s; server { listen 7000; #監(jiān)聽端口 server_name xxx; #隨意配置一個地址即可,優(yōu)先走代理 location / { limit_req zone=myLimit2 burst=5 nodelay; #啟用限流 proxy_pass http://localhost:7061; #代理地址 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
測試結(jié)果:worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #http主機 server { listen 7000; #監(jiān)聽端口 server_name test1; #隨意配置一個地址即可,優(yōu)先走代理 location / { proxy_pass http://localhost:7061; #代理地址 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } #https主機 server { listen 8000 ssl; server_name test2; #證書目錄 ssl_certificate D:/cert/server-cert.pem; ssl_certificate_key D:/cert/server-key.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; location / { proxy_pass http://localhost:7061; } }}
(2). 將http跳轉(zhuǎn)到httpsworker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #http主機 server { listen 7000; #監(jiān)聽端口 server_name test1; #隨意配置一個地址即可,優(yōu)先走代理 location / { proxy_pass http://localhost:7061; #代理地址 #跳轉(zhuǎn)到https (test2是https主機的server_name) return 301 https://test2$request_uri; #或者 #return 301 https://$host:8000$request_uri; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } #https主機 server { listen 8000 ssl; server_name test2; #證書目錄 ssl_certificate D:/cert/server-cert.pem; ssl_certificate_key D:/cert/server-key.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; location / { proxy_pass http://localhost:7061; } }}
原文鏈接:第二節(jié):Nginx負載均衡配置、限流配置、Https配置詳解 - Yaopengfei - 博客園關(guān)鍵詞:配置,負載,均衡
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。