openresty(nginx+lua)中获取不到post数据,ngx.req.get_body_data返回nil This function returns nil if the request body has not been read, the request body has been read into disk temporary files, or the request body has zero size. 打开nginx调试日志 error_log /var/log/ng…
原文:https://blog.csdn.net/enweitech/article/details/78519398 OpenResty 官网:http://openresty.org/  OpenResty® - 中文官方站 http://openresty.org/cn/ OpenResty 是一个nginx和它的各种三方模块的一个打包而成的软件平台.最重要的一点是它将lua/luajit打包了进来,使得我们可以使用lua脚本来进行web的开发.有了lua,我们可以借助于nginx的异步非…
OpenResty 官网:http://openresty.org/ OpenResty 是一个nginx和它的各种三方模块的一个打包而成的软件平台.最重要的一点是它将lua/luajit打包了进来,使得我们可以使用lua脚本来进行web的开发.有了lua,我们可以借助于nginx的异步非阻塞的功能,达到使用 lua 异步并发访问后端的 MySQL, PostgreSQL, Memcached, Redis等等服务.特别是特有的 ngx.location.capture_multi 功能让人印象…
一.简介 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web 应用.Web 服务和动态网关. OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台.这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支…
前言 之前也分享过很多工作中踩坑的经验: 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移? [原创]经验分享:一个Content-Length引发的血案(almost....) 今天再来分享工作中一个真实的案例: 商品评价列表页,显示每条用户的评价详情,为了保护用户隐私,要求显示用户昵称时只能显示第一位和最后一位,其他的用※代替. 例如输入:,输出:*** 看似一个平淡无奇的需求,我也没有太在意.服务端将用户的评论信息存储到db中,评价列表接口就是将数据库中该商品的…
相关文章: <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <nginx限制请求之二:(ngx_http_limit_req_module)模块> <nginx限制请求之三:Nginx+Lua+Redis 对请求进行限制> <nginx限制请求之四:目录进行IP限制> <分布式限流之一:redis+lua 实现分布式令牌桶,高并发限流&…
Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器(Tomcat) 实现思路:通过在Nginx上进行访问限制,通过Lua来灵活实现业务需求,而Redis用于存储黑名单列表. 相关nginx上lua或redis的使用方式可以参考我之前写的一篇文章: openresty(nginx).lua.drizzle调研 http://www.cnblogs.c…
openresty(nginx+lua)发http请求 利用location+proxy_pass间接实现 location ^~ /test/http { internal; proxy_pass http://test.com/path; } lua代码 local res, err = ngx.location.capture("/test/http", { method = ngx.HTTP_POST, body = body }); if res then ngx.log(n…
这篇文章是一个多月前写的,当时之所以搭建这个是为了最大程度上发挥Nginx的高并发效率(主要是结合lua脚本),参考的话,主要参考张开涛先生写的跟开涛学Nginx+lua系列文章,地址为:https://jinnianshilongnian.iteye.com/blog/2190344 当时本人按照张开涛写的一步一步搭建,当然了也发现一些小问题,所以在此将其发表出去,另外强调一点,开发人员无论是平时编写代码或者是调研新技术或者实践,最好也写写文档总结一下. 我写文档的主要目的,一来让自己思路更加…
Nginx入门 本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章: nginx启动.关闭.重启 http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html agentzh 的 Nginx 教程 http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html Nginx+Lua入门 http://17173ops.com/2013/11/…
使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,利用春节期间总结了一份基本的学习教程,希望对大家有用.也欢迎谈探讨学习一些经验. 目录 第一章 安装Nginx+Lua开发环境 第二章 Nginx+Lua开发入门 第三章 Redis/SSDB+Twemproxy安装与使用 第四章 Lua模块开发 第五章 常用Lua开发库1-redis.mysql.http客户端 第五章 常用Lua开发库2-JSON库.编码转换.字符…
nginx配置 lua_package_path "/usr/local/openresty/lualib/resty/smtp/?.lua;;"; lua_need_request_body on; location ^~ /alarm/mail { resolver 202.106.0.20 valid=3600s; content_by_lua_file /path/to/send_mail.lua; } 其中resolver后为dns服务器ip: lua代码 local smt…
提前安装好elk(elasticsearch.logstach.kibana) 一 启动logstash $LOGSTASH_HOME默认位于/usr/share/logstash或/opt/logstash 1 nginx日志使用默认格式 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer"…
通过location配置 location ~ \.html$ { add_header 'Cache-Control' 'no-cache'; } location ~ \.(js|css|gif|jpg|jpeg|png|bmp|swf)$) { access_log off; expires 7d; } 在location内配置 location ^~ /testpath { if ($uri ~ \.html$) { add_header 'Cache-Control' 'no-cach…
使用docker部署 1 下载 # wget https://github.com/doujiang24/lua-resty-kafka/archive/v0.06.tar.gz# tar xvf v0.06.tar.gz 2 准备配置文件testkafka.conf # vi testkafka.conf lua_package_path "/usr/local/openresty/lualib/resty/kafka/?.lua;;"; lua_need_request_body…
常用格式 textfile 需要定义分隔符,占用空间大,读写效率最低,非常容易发生冲突(分隔符)的一种格式,基本上只有需要导入数据的时候才会使用,比如导入csv文件: ROW FORMAT DELIMITED FIELDS TERMINATED BY '\u0001' LINES TERMINATED BY '\n' STORED AS TEXTFILE json hive3.0后官方支持json格式,之前需要使用第三方,导入jar,http://www.congiu.net/hive-json…
hdfs.yarn.hbase这些组件的master支持多个,实现自动主备切换,其中hdfs.hbase无论访问主master或者备master都可以正常访问页面,但是yarn比较特别,只有主master的页面可以访问,备master会返回Refresh,3s后重定向: 一种方式是提供两个域名,分别对应两个yarn的master,一旦有master切换,需要手工切换到另外一个,有没有更好的方式? 访问备master过程如下: curl http://standby_ip:8088/cluster…
问题重现 select id from big_table where name = 'sdlkfjalksdjfla' limit 100; 首先看执行计划: hive> explain select * from big_table where name = 'sdlkfjalksdjfla' limit 100; OK STAGE DEPENDENCIES: Stage-0 is a root stage STAGE PLANS: Stage: Stage-0     Fetch Oper…
docker经常需要挂载文件到容器中,比如启动nginx # docker run -d --name test_nginx -v /tmp/nginx.conf:/etc/nginx/nginx.conf nginx 然后就有修改配置文件然后刷新的功能,如果直接用vi编辑宿主机文件 # vi /tmp/nginx.conf 然后在docker容器中执行reload # docker exec -it test_nginx nginx -s reload 会发现配置没有生效,此时直接查看dock…
# top top - 21:21:51 up 207 days, 1:30, 5 users, load average: 0.90, 0.79, 1.62 Tasks: 249 total, 1 running, 246 sleeping, 2 stopped, 0 zombie %Cpu(s): 49.2 us, 2.0 sy, 0.0 ni, 48.1 id, 0.0 wa, 0.0 hi, 0.6 si, 0.0 st 如果load average很大(参考核数),则系统负载很高,其中…
一 下载 confluence https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.15.6-x64.bin jira https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-8.2.2-x64.bin 二 安装 三 配置 1 如果要在confl…
docker container启动失败,报错:Exited (137) *** ago,比如 Exited (137) 16 seconds ago 这时通过docker logs查不到任何日志,从mesos上看stderr相关的只有一句 I0409 16:56:26.408077 8583 executor.cpp:736] Container exited with status 137 通过docker inspect查看container状态为 "State": { &quo…
cloudera manager安装hue后想开启访问mysql(librdbms)需要在这里配置(hue_safety_valve.ini) 添加配置如下 [librdbms] # The RDBMS app can have any number of databases configured in the databases # section. A database is known by its section name # (IE sqlite, mysql, psql, and o…
hue中使用hue用户(hue admin)访问hdfs报错: Cannot access: /. Note: you are a Hue admin but not a HDFS superuser, "hdfs" or part of HDFS supergroup, "supergroup". 其他症状:oozie editor页面卡住不动 检查过程如下: 1 hdfs配置 hadoop.proxyuser.hue.hosts=*hadoop.proxyuse…
oozie中通过shell执行impala,脚本如下: $ cat test_impala.sh #!/bin/sh /usr/bin/kinit -kt /tmp/impala.keytab impala/server04 /usr/bin/impala-shell -i server04:21000 -q 'show databases' 直接执行shell脚本正常,在oozie中执行报错: Traceback (most recent call last): File "/usr/lib/…
yarn开启日志归集功能,除了配置之外 yarn.log-aggregation-enable=true 还要检查/tmp/logs目录是否存在以及权限,尤其是在开启kerberos之后,有些目录可能不能自动创建成功,需要手工创建: $ hdfs dfs -mkdir /tmp$ hdfs dfs -chmod 777 /tmp 每个应用的hdfs日志目录: /tmp/logs/$user/logs/$applicationId…
redhat6系统默认安装的glibc-2.12,有的软件依赖的是glibc-2.14,这时需要升级glibc,下载安装 http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz # ./configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin# make# make install 结果make…
hive通过外部表读写elasticsearch数据,和读写hbase数据差不多,差别是需要下载elasticsearch-hadoop-hive-6.6.2.jar,然后使用其中的EsStorageHandler: Connect the massive data storage and deep processing power of Hadoop with the real-time search and analytics of Elasticsearch. The Elasticsea…
在hive中创建外部表: CREATE EXTERNAL TABLE hive_hbase_table(key string, name string,desc string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,columfamily:name,columnfamily:desc&qu…
hive及其他组件(比如spark.impala等)都会依赖hive metastore,依赖的配置文件位于hive-site.xml hive metastore重要配置 hive.metastore.warehouse.dirhive2及之前版本默认为/user/hive/warehouse/,创建数据库或表时会在该目录下创建对应的目录 javax.jdo.option.ConnectionURLjavax.jdo.option.ConnectionDriverNamejavax.jdo.o…