目錄
安裝
1.安裝相關類庫
yum install -y readline-devel pcre-devel openssl-devel gcc
2.安裝編譯openresty
wget https://openresty.org/download/openresty-1.15.8.2.tar.gz
tar -zxvf openresty-1.15.8.2.tar.gz
./configure
make
make install
3.編寫配置啓動openresty服務
創建一個目錄,保存nginx.conf文件
這裏我們在openresty創建目錄,目錄名爲 jast ,在哪裏創建都可以
mkdir jast
在jast目錄下創建 conf 目錄 與 logs目錄
mkdir logs
mkdir conf
在conf目錄下創建文件 nginx.conf ,內容如下
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 2199;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>Hello, World!</p>")
';
}
}
}
代表我們監控2199端口,返回內容爲Hello, World!
啓動nginx服務,
/usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast -c conf/nginx.conf
-p :剛剛創建的jast目錄,項目目錄
-c :剛剛創建的配置文件目錄
查看服務
[root jast]# ps -ef|grep nginx
root 17576 1 0 11:12 ? 00:00:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast -c conf/nginx.conf
nobody 17577 17576 0 11:12 ? 00:00:00 nginx: worker process
通過瀏覽器訪問:http://ip:2199,查看返回結果成功
4.通過 openresty 保存日誌數據到系統
log.gif 方式
使用log.gif方便前端做埋點日誌
修改nginx.conf 文件
# vim nginx.conf
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 2199;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>Hello, World!</p>")
';
}
location /log.gif {
#僞裝成gif文件
default_type image/gif;
#本身關閉access_log
access_log off;
#使用lua將nginx的接收參數寫入到日誌文件中
log_by_lua_file 'conf/log_conf.lua';
#返回空圖片
empty_gif;
}
}
}
編寫log_conf.lua 文件
# vim log_conf.lua
-- 引入lua json庫
local cjson = require "cjson"
-- 獲取請求參數
local request_args_tab = ngx.req.get_uri_args()
-- 獲取系統時間
local time = os.date("%Y%m%d%H",unixtime)
-- 創建file對象,注意這裏目錄是啓動openresty時 -p 指定目錄下的logs目錄,並且 logs 權限要設置爲 chmod o+x
local file = io.open("logs/data-" .. time .. ".log","a")
-- 創建json對象
local log_json = {}
-- 將請求參數轉爲json
for k,v in pairs(request_args_tab) do
log_json[k] = v
end
-- json數據寫入文件,並\n換行
file:write(cjson.encode(log_json),"\n")
file:flush()
重新加載配置文件
/usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast -c conf/nginx.conf -s reload
請求接口:http://ip:2199/log.gif?test=測試數據&a=b
查看logs目錄下數據,接收成功