国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

OpenResty安裝、配置與使用

stackfing / 3001人閱讀

摘要:用于方便地搭建能夠處理超高并發擴展性極高的動態應用服務和動態網關。安裝安裝依賴庫下載及安裝激活組件被用于構建。大部組件默認是激活的,也有部件不是。您需要通過以下選項在編譯的時候將它們各自激活,和。

OpenResty簡介

OpenResty 是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用于方便地搭建能夠處理超高并發、擴展性極高的動態 Web 應用、Web 服務和動態網關。

Lua簡介

Lua是一個簡潔、輕量、可擴展的程序設計語言,其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。Lua由標準C編寫而成,代碼簡潔優美,幾乎在所有操作系統和平臺上都可以編譯,運行。

OpenResty安裝

1.安裝依賴庫

yum install readline-devel pcre-devel openssl-devel gcc

2.下載及安裝OpenResty

wget https://openresty.org/download/openresty-1.9.15.1.tar.gz
tar xvf openresty-1.9.15.1.tar.gz
cd openresty-1.9.15.1
./configure --with-luajit && make && make install

激活LuaJIT

組件被用于構建 OpenResty。所有的組件可以被激活或禁止。 大部組件默認是激活的,也有部件不是。 LuaJIT、 DrizzleNginxModule、PostgresNginxModule和IconvNginxModule 默認是沒有激活的。您需要通過以下選項在編譯 OpenResty的時候將它們各自激活, --with-luajit、 --with-http_drizzle_module、 --with-http_postgres_module和 --with-http_iconv_module 。

安裝好的OpenResty

從上圖可以看到,openresty在/usr/local目錄下

OpenResty啟動

通過下述方式啟動Nginx。如果沒有任何輸出,說明啟動成功,-p 指定我們的項目目錄,-c 指定配置文件。

/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
/usr/local/openresty/nginx/sbin/nginx -p "pwd" -c /usr/local/openresty/nginx/conf/nginx.conf

為openresty下的nginx建立軟鏈(非必需)

ln -s /usr/local/openresty/nginx/sbin/nginx  /usr/sbin/nginx

則可使用如下方式啟動

/usr/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf

在瀏覽器中訪問:

OpenResty配置Lua

由于原生的Nginx日志沒有resp_body這一選項,通過在nginx.conf中添加Lua腳本的方式定義resp_body。

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
                      "$status $body_bytes_sent "$http_referer" "
                      ""$http_user_agent" "$http_x_forwarded_for"";

    log_format log_resp_body  "$remote_addr - $remote_user [$time_local] "$request" "
                      "$status $body_bytes_sent "$http_referer" "
                      ""$http_user_agent" "$http_x_forwarded_for" "
                      "$request_time $bytes_sent $request_length "$request_body" "$resp_body"";

    access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        access_log  logs/access.index.log  log_resp_body;

        lua_need_request_body on;

        set $resp_body "";

        body_filter_by_lua "
            local resp_body = string.sub(ngx.arg[1], 1, 1000)
            ngx.ctx.buffered = (ngx.ctx.buffered or "") .. resp_body
            if ngx.arg[2] then
                ngx.var.resp_body = ngx.ctx.buffered
            end
        ";

        location / {
            root   html;
            index  index.html index.htm;
        }

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

檢測Nginx配置是否正確

/usr/sbin/nginx -t

重啟Nginx

/usr/sbin/nginx -s reload

驗證Lua配置是否成功

tail -f access.log

tail -f access.index.log

參考資料:

OpenResty
OpenResty中文站
nginx-lua
lua-nginx-module

20160615更正:

實踐證明,上面body_filter_by_lua中的代碼存在bug,可通過如下方式更正:

body_filter_by_lua "
    local maxlen = 1000
    ngx.ctx.buffered = ngx.ctx.buffered or ""
    if #ngx.ctx.buffered < maxlen then
        ngx.ctx.buffered = ngx.ctx.buffered .. string.sub(ngx.arg[1], 1, maxlen - #ngx.ctx.buffered)
    end
    if ngx.arg[2] then
        ngx.var.resp_body = ngx.ctx.buffered
    end
";

感謝OpenResty 中文郵件列表

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39303.html

相關文章

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

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

    BingqiChen 評論0 收藏0
  • 日志平臺(網關層) - 基于Openresty+ELKF+Kafka

    摘要:現在用方式調用接口,中使用方式輸入內容日志平臺網關層基于。日志平臺網關層基于到此為止,提取經過網關的接口信息,并將其寫入日志文件就完成了,所有的接口日志都寫入了文件中。 背景介紹 1、問題現狀與嘗試 沒有做日志記錄的線上系統,絕對是給系統運維人員留下的坑。尤其是前后端分離的項目,后端的接口日志可以解決對接、測試和運維時的很多問題。之前項目上發布的接口都是通過Oracle Service...

    xumenger 評論0 收藏0

發表評論

0條評論

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