閱讀769 返回首頁    go 阿裏雲 go 技術社區[雲棲]


ngx_lua中的協程調度(四)

ngx_lua中訪問多個第三方服務

ngx_lua中提供了ngx.socket API,可以方便的訪問第三方網絡服務。如下麵的代碼,通過get_response函數從兩個(或者更多)的源服務器獲取數據,再生成響應發給客戶端。

location / {
    content_by_lua_block {
        local get_response(host, port)
            local sock = ngx.socket.tcp()
            local ok, err = sock:connect(host, port)
            if not ok then
                return nil, err
            end
            local data, err = sock:receive()
            if not data then
                return nil, err
            end

            return data
        end

        local first = get_response("lua.org", 8080)
        local second = get_response("nginx.org", 8080)
        ngx.say(first .. second)
    }
}

最後更新:2017-07-21 09:32:51

  上一篇:go  前端程序員必知的30個Chrome擴展
  下一篇:go  【Rundeck】rundeck自動部署平台安裝和遷移