栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

网站显示openresty(openresty/1.11.2.5)

网站显示openresty(openresty/1.11.2.5)

一、OpenResty介绍

OpenResty 是一个基于 Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty通过汇聚各种设计精良的 Nginx模块,从而将 Nginx有效地变成一个强大的通用 Web 应用平台。,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

简单的说:OpenResty = Nginx + Lua,是一个增强的Nginx。

二、OpenResty安装

1.、安装开发库依赖

yum install -y pcre-devel openssl-devel gcc curl   

2、配置yum的依赖源

yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo    

3、.安装OpenResty

yum install openresty

4、openresty的默认安装目录

/usr/local/openresty

5、启动openresty(Nginx)

/usr/local/openresty/nginx/sbin/nginx
或者
service openresty start

6、通过浏览器查看nginx的页面

三、OpenResty配置文件

1、修改openresty下nginx的配置文件

vi /usr/local/openresty/nginx/conf/nginx.conf


在http的配置下添加如下配置

location /lua {  
    default_type 'text/html';  
    content_by_lua 'ngx.say("hello 51doit")';  
} 

2、在浏览器中进行测试


3、配置伪装图片的静态地址

location /log.gif {
  #伪装成gif文件
  default_type image/gif;    
  #本身关闭access_log
  access_log off;    
  
  #返回空图片
  empty_gif;
}

4、 使用lua的log_by_lua_file将参数写入到指定的日志文件中

替换上面的log.gif

location /log.gif {
  #伪装成gif文件
  default_type image/gif;    
  #本身关闭access_log
  access_log off;    
  
  #使用lua将nginx的接收的参数写入到日志文件中
  log_by_lua_file 'conf/log.lua';
  
  #返回空图片
  empty_gif;
}

5、创建一个log.lua文件

vi /usr/local/openresty/nginx/conf/log.lua

编写lua脚本

-- 引入lua所有解析json的库
local cjson = require "cjson" 
-- 获取请求参数列表
local request_args_tab = ngx.req.get_uri_args()
-- 使用lua的io打开一个文件,如果文件不存在,就创建,a为append模式
local file = io.open("/logs/access.log", "a")
-- 定义一个json对象
local log_json = {}
-- 将参数的K和V迭代出来,添加到json对象中
for k, v in pairs(request_args_tab) do
    log_json[k] = v
end
-- 将json写入到指定的log文件,末尾追加换行
file:write(cjson.encode(log_json), "n")
-- 将数据写入
file:flush()

创建存放日志的目录并设置写入权限

mkdir /logs
chmod o+w /logs

6、按小时生产文件

如果一直往一个文件中写入数据,这个日志文件会过大,造成读写效率变低,现在按照小时生成文件

-- 引入lua用来解析json的库
local cjson = require "cjson" 
-- 获取请求参数列表
local request_args_tab = ngx.req.get_uri_args()
-- 获取当前系统时间
local time = os.date("%Y%m%d%H",unixtime)
-- 使用lua的io打开一个文件,如果文件不存在,就创建,a为append模式
local path = "/mylog/access-" .. time .. ".log"
local file = io.open(path, "a")
-- 定义一个json对象
local log_json = {}
-- 将参数的K和V迭代出来,添加到json对象中
for k, v in pairs(request_args_tab) do
    log_json[k] = v
end
-- 将json写入到指定的log文件,末尾追加换行
file:write(cjson.encode(log_json), "n")
-- 将数据写入
file:flush()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771586.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号