成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

OpenResty debugger: lua-resty-repl

zhonghanwen / 2045人閱讀

摘要:根據(jù)作者介紹這是一個簡單和容易調(diào)試運行在的。簡單介紹一下這次大會,這次大會的主題是開發(fā),涉及到在前端系統(tǒng)框架集群服務(wù)語音云服務(wù)智能硬件等方面的實踐,以及軟件基金會背后的故事。

在2016年第二屆 OpenResty 的全球開發(fā)者大會上看到了一個比較有意思的項目 lua-resty-repl,后來聽聞一些開發(fā)者看了項目的介紹后還是覺得一頭霧水,不知道怎么使用。這篇文章主要是介紹一下這個項目的使用方法。

根據(jù)作者介紹這是一個簡單和容易調(diào)試運行在 OpenRestylua。

安裝 luarocks

根據(jù) 官網(wǎng) 介紹,快速開始的姿勢如下:

$ wget https://luarocks.org/releases/luarocks-2.4.1.tar.gz
$ tar zxpf luarocks-2.4.1.tar.gz
$ cd luarocks-2.4.1
$ ./configure; sudo make bootstrap
$ sudo luarocks install luasocket
$ lua
Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio
> require "socket"

如果遇到系統(tǒng)上缺少 lualib.h 依賴導(dǎo)致無法正常的通過的,請到 Lua 官網(wǎng) 上先下載好最新的 Lua 源碼編譯安裝解決,或指定 Lua 源碼中lualib.h 的目錄即可。相信安裝 luarocks 過程中各種失敗問題大家很容易能解決,這里就不詳細(xì)展開。

安裝 lua-resty-repl
luarocks install lua-resty-repl
創(chuàng)建 nginx.conf

先創(chuàng)建一個 nginx.conf 文件并向文件中寫入配置信息:

master_process off;           # 關(guān)閉 master 進(jìn)程
error_log stderr notice;      # error_log 日志級別是 stderr notice
daemon off;                   # 關(guān)閉守護(hù)進(jìn)程模式,即打開調(diào)試模式

events {
  worker_connections 1024;
}

http {
  server {
    listen 8080;
    lua_code_cache off;

    location / {
      content_by_lua_block {
        require("resty.repl").start()
      }
    }
  }
}

將上面的 nginx.conf 替換掉 OpenResty 安裝后 conf 文件夾中的 nginx.conf 后,啟動 OpenResty:

運行 lua-resty-repl
$nginx
Time [alert] #0: lua_code_cache is off; this will hurt performance in nginx.conf
nginx: [alert] lua_code_cache is off; this will hurt performance in nginx.conf
Time [notice] #0: using the "epoll" event method
Time [notice] #0: openresty/1.11.2.1
Time [notice] #0: built by gcc 4.9.2 (Debian 4.9.2-10)
Time [notice] #0: OS: Linux 4.4.0-38-generic
Time [notice] #0: getrlimit(RLIMIT_NOFILE): 65536:65536

可以看到打出一些調(diào)試信息,現(xiàn)在我們啟動另外一個終端,或者使用 tmux 分屏,在另一個屏上輸入:

curl -H X-Header:buz 172.17.0.2:8080?foo=bar

那么你將會在原來的調(diào)試信息上看到如下輸出內(nèi)容:

Time [alert] 639#0: lua_code_cache is off; this will hurt performance in nginx.conf
nginx: [alert] lua_code_cache is off; this will hurt performance in nginx.conf
Time [notice] 639#0: using the "epoll" event method
Time [notice] 639#0: openresty/1.11.2.1
Time [notice] 639#0: built by gcc 4.9.2 (Debian 4.9.2-10)
Time [notice] 639#0: OS: Linux 4.4.0-38-generic
Time [notice] 639#0: getrlimit(RLIMIT_NOFILE): 65536:65536
[1] ngx(content)>

> 后面寫入 ngx.req.get_headers()ngx.req.get_uri_args()之類的命令后可以看到:

Time [alert] 639#0: lua_code_cache is off; this will hurt performance in nginx.conf
nginx: [alert] lua_code_cache is off; this will hurt performance in nginx.conf
Time [notice] 639#0: using the "epoll" event method
Time [notice] 639#0: openresty/1.11.2.1
Time [notice] 639#0: built by gcc 4.9.2 (Debian 4.9.2-10)
Time [notice] 639#0: OS: Linux 4.4.0-38-generic
Time [notice] 639#0: getrlimit(RLIMIT_NOFILE): 65536:65536
[1] ngx(content)> ngx.req.get_headers()
=> {
  accept = "*/*",
  host = "172.17.0.2:8080",
  ["user-agent"] = "curl/7.47.0",
  ["x-header"] = "buz",
   = {
    __index = 
  }
}
[2] ngx(content)> ngx.req.get_uri_args()
=> {
  foo = "bar"
}
[3] ngx(content)> ngx.say "it works!"
=> 1
[4] ngx(content)> ngx.exit(ngx.OK)
172.17.0.1 - - [Time +0000] "GET /?foo=bar HTTP/1.1" 200 20 "-" "curl/7.47.0"

從上面可以看出,當(dāng)一個請求過來的時候,開始執(zhí)行我們手動輸入的代碼,直到遇到 ngx.exit() 才返回結(jié)果給客戶端。

順帶一提,這次看完在騰訊舉辦的 第二屆 OpenResty 的全球開發(fā)者大會 后覺得很贊,干貨滿滿的,還有 OpenResty 創(chuàng)始人 agentzh 和幾位牛逼的講師在大會上出色演講和精彩答疑,確實讓大家收獲很大。
簡單介紹一下這次大會,這次 OpenResty 大會的主題是 web 開發(fā),涉及到 OpenResty 在前端系統(tǒng)、API gatewayweb 框架、集群服務(wù)、語音云服務(wù)、智能硬件等方面的實踐,以及 OpenResty 軟件基金會背后的故事。想要回顧大會優(yōu)質(zhì)的視頻回放和 PPT,請點擊這里查看。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39395.html

相關(guān)文章

  • (學(xué)習(xí)到實踐)六、docker自定義nginx/openresty

    摘要:但官方?jīng)]有發(fā)布相關(guān)東西,所以以結(jié)合安裝參考官方的為原則編寫。運行測試運行成功,大小,太大了感覺,提交到云端。啟動官方鏡像提交到云端,偶然想搜索下有沒有,竟然反問有官方鏡像,了個下來,還不錯。 前言 為什么要使用openresty? 官方說明:OpenResty? 是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內(nèi)部集成了大量精良的 Lua 庫、第三方模塊以及大多數(shù)的依賴項...

    BingqiChen 評論0 收藏0
  • OpenResty安裝、配置與使用

    摘要:用于方便地搭建能夠處理超高并發(fā)擴(kuò)展性極高的動態(tài)應(yīng)用服務(wù)和動態(tài)網(wǎng)關(guān)。安裝安裝依賴庫下載及安裝激活組件被用于構(gòu)建。大部組件默認(rèn)是激活的,也有部件不是。您需要通過以下選項在編譯的時候?qū)⑺鼈兏髯约せ?,和? OpenResty簡介 OpenResty 是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內(nèi)部集成了大量精良的 Lua 庫、第三方模塊以及大多數(shù)的依賴項。用于方便地搭建能夠處...

    stackfing 評論0 收藏0
  • 極客時間《OpenResty從入門到實戰(zhàn)》 返現(xiàn)福利 + 學(xué)習(xí)路徑圖

    摘要:從入門到實戰(zhàn)課程大綱摘自極客時間專欄。從入門到實戰(zhàn)作者溫銘,同時也是軟件基金會主席,最佳實踐作者。學(xué)習(xí)路徑圖參考資料 極客時間《OpenResty從入門到實戰(zhàn)》 返現(xiàn)福利 + 學(xué)習(xí)路徑圖 showImg(https://segmentfault.com/img/bVbsg9O?w=258&h=258);關(guān)注有課學(xué)微信公眾號,回復(fù)暗號 OR 獲取購買《OpenResty從入門到實戰(zhàn)》極客...

    DataPipeline 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<