基於Nginx構建高併發協議解析服務 原創

2021-08-25 09:28:01 字數 1519 閱讀 1078

正文:

[img]

1.nginx服務通過內嵌的perl指令碼動態解析url引數.提取key資訊.

perl_set $storm_key_new '

use mime::base64::perl;

use uri::escape;

sub}}}

';

2.設定storm_perl的負載均衡服務

upstream storm_perl

3.nginx服務通過key資訊查詢本地是否存在對應的快取資料,如果存在直接返回給客戶端.

設定nginx開啟本地快取,並指定快取存放位置及相關資訊.

#注:proxy_temp_path和proxy_cache_path指定的路徑必須在同一分割槽

proxy_temp_path /opt/data/proxy_temp_dir;

#設定web快取區名稱為cache_one,記憶體快取空間大小為200mb,1天沒有被訪問的內容自動清除,硬碟快取空間大小為30gb。

proxy_cache_path /opt/data/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;

設定後端請求的header資訊,快取時間,

location /

4..nginx服務通過內嵌的perl指令碼動態讀取memcache服務的資料,讀取失敗後,直接將請求轉向後端的apache伺服器

#設定memcache服務的ip和埠

set $memd 0;

set $memcached_server "127.0.0.1:11211";

location ~ .*\.(php|jsp|cgi)?

if(!$memd);

$r->variable("memd",$memd);

}my $realkey = 0;

$realkey = $r->variable("storm_key_new");

my $stormbox = $memd->get($realkey);

if($stormbox)else

}';error_page 404 500 502 503 504 =[color=red] @get_storm;[/color]

access_log /opt/modules/nginx/logs/log_mm.log count;

}

當讀取memcache的請求返回404時,直接轉向另外乙個location

location @get_storm

nginx高併發配置

nginx配置及說明 worker processes 8 nginx 程序數,建議按照cpu 數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000...

nginx高併發配置

nginx配置及說明 worker processes 8 nginx 程序數,建議按照cpu 數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000...

基於Redis Memcached的高併發秒殺設計

如何設計高併發時的秒殺,是面試電商技術職位時必考的題目。今天在這裡分享一下基於redis或memcached的技術方案,能解決重複提交 超發 高併發的問題。預定義總庫存 define total stock 5 預定義商品編號 define item id item 001 userid get u...