亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 2505 | 回復(fù): 0
打印 上一主題 下一主題

[Redis] 基于redis和openresty實(shí)現(xiàn)一個(gè)http動(dòng)態(tài)路由 [復(fù)制鏈接]

論壇徽章:
72
20周年集字徽章-20	
日期:2020-10-28 14:04:30操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-07-13 06:20:0015-16賽季CBA聯(lián)賽之廣夏
日期:2016-07-10 09:04:02數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-07 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-07-07 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-07-04 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-03 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-07-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-02 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-07-02 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-06-29 09:58 |只看該作者 |倒序?yàn)g覽
本帖最后由 cjfeii 于 2016-06-29 09:59 編輯

http://blog.csdn.net/cjfeii/article/details/51159496
http://openresty.org/cn/dynamic-routing-based-on-redis.html
本文的一個(gè)例子主要介紹如何利用redis實(shí)現(xiàn)對(duì)請(qǐng)求頭中User-Agent修改已達(dá)到路由到兩個(gè)不同的http后臺(tái)的目的。這個(gè)例子使用了這些openresty組件: Redis2 Nginx Module, Lua Nginx Module, Lua Redis Parser Library, 和 Set Misc Nginx Module。

1. 配置nginx

下面是完整的nginx.conf
  1. worker_processes  1;
  2. error_log logs/error.log info;

  3. events {
  4.     worker_connections 1024;
  5. }

  6. http {
  7.     upstream apache.org {
  8.         server apache.org;
  9.     }

  10.     upstream nginx.org {
  11.         server nginx.org;
  12.     }

  13.     server {
  14.         listen 8080;

  15.         location = /redis {
  16.             internal;
  17.             set_unescape_uri $key $arg_key;
  18.             redis2_query get $key;
  19.             redis2_pass 127.0.0.1:6379;
  20.         }

  21.         location / {
  22.             set $target '';
  23.             access_by_lua '
  24.                 local key = ngx.var.http_user_agent
  25.                 local res = ngx.location.capture(
  26.                     "/redis", { args = { key = key } }
  27.                 )

  28.                 print("key: ", key)

  29.                 if res.status ~= 200 then
  30.                     ngx.log(ngx.ERR, "redis server returned bad status: ",
  31.                         res.status)
  32.                     ngx.exit(res.status)
  33.                 end

  34.                 if not res.body then
  35.                     ngx.log(ngx.ERR, "redis returned empty body")
  36.                     ngx.exit(500)
  37.                 end

  38.                 local parser = require "redis.parser"
  39.                 local server, typ = parser.parse_reply(res.body)
  40.                 if typ ~= parser.BULK_REPLY or not server then
  41.                     ngx.log(ngx.ERR, "bad redis response: ", res.body)
  42.                     ngx.exit(500)
  43.                 end

  44.                 print("server: ", server)

  45.                 ngx.var.target = server
  46.             ';

  47.             proxy_pass http://$target;
  48.         }
  49.     }
  50. }
復(fù)制代碼
2. 啟動(dòng)redis
  1. $ ./redis-server  # default port is 6379
復(fù)制代碼
在啟動(dòng)的redis中設(shè)置相關(guān)key:
  1. $ ./redis-cli
  2. redis> set foo apache.org
  3. OK
  4. redis> set bar nginx.org
  5. OK
復(fù)制代碼
3. 測(cè)試nginx應(yīng)用:
  1. $ curl --user-agent foo localhost:8080
  2. <apache.org home page goes here>

  3. $ curl --user-agent bar localhost:8080
  4. <nginx.org home page goes here>
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP