キャッシュキーを決定するためのURLパラメータ
set_by_lua_block $ dataArg {
ローカルENC = ngx.req.get_uri_args()[ "ENC"]
ローカルキー= ngx.req.get_uri_args()[ "キー"]
ローカル名= ngx.req.get_uri_args() "名前"]
ローカルSTR =のtoString(ENC)...のtoString(キー)...のtoString(名前)
戻りSTR
}
proxy_cache_key $ホスト$ uriの$ dataArg。
第二に、クロスドメインで最初のパスに係る判定を行うためにソース局
$ cors_origin "*"を設定します。
もし($ http_origin = ""!){
$ cors_origin $ http_origin設定します。
}
more_set_headers「アクセス制御-許可-起源:$ cors_origin」。
第三には、オペレータによって異なる上流を取ります
図1に示すように、下層送信要求ヘッダ:
位置/ {
proxy_buffer_size 128Kを。
proxy_buffers 32 32K。
128Kをproxy_busy_buffers_size。
proxy_set_header ホスト$ホスト;
proxy_set_header CDN ctyun。
proxy_set_headerのX-転送さ-についてREMOTE_ADDR $;
CM&LT ISP proxy_set_header; #CM&LTは頭部(移動)するための要求を送信します
add_headerパワード・バイ・ctcdn 「 $ SERVER_ADDR 」。
proxy_cache $ cache_store。
proxy_passの$スキーム://テストupstream_ $スキームの$ SERVER_PORT。
}
2、判断を下すために、上位層
サーバー{
80を聞きます。
サーバー名www.test.com ;
8.8.8.8解決114114114114。
underscores_in_headers ON; 顧客は、カスタムヘッダー値を読み込む開く#nginx
error_logに /data/log/nginx/error.log;
access_logの/data/log/nginx/access.log nginxlog。
位置/ {
proxy_buffer_size 128Kを。
proxy_buffers 32 32K。
128Kをproxy_busy_buffers_size。
proxy_set_header ホスト$ホスト;
proxy_set_header CDNテスト。
add_header "$ SERVER_ADDR" を搭載。
proxy_cache $ cache_store。
通信は、アップストリーム通信をバックアップ;チャイナユニコムのモバイル通信機器があれば##ここに低いという点で、上側移動上流側へ戻す必要性;ユニコムユニコムバック上流。
もし($ http_isp = "CT"){
$スキームproxy_pass:// テスト- ct_ $スキームの$ SERVER_PORTを、
}
もし($ http_isp = "CN"){
proxy_passの$スキーム://テスト-cn_ $スキームの$ SERVER_PORT。
}
もし($ http_isp = "CM"){
proxy_passの$スキーム://テスト-cm_ $スキームの$ SERVER_PORT。
}
}
図3に示すように、上部上流構成
上流の試験-cm_http80 {
server 1.1.1.1:80;
}
upstream test-cn_http80 {
server 2.2.2.2:80;
}
upstream test-ct_http80 {
server 3.3.3.3:80;
}