当前位置:首页 > 教程 > 正文内容

nginx漏洞利用(nginx+lua)

2023-03-29 10:30:06教程4

nginx+lua

获取url参数

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容。

在 nginx配置中,通过$arg_PARAMETER 即可获得GET参数PARAMETER的内容。

获取请求头

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。

在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。

通过以下方式进行验证,比如说,通过 http://www.test.com?name=hello&id=123 来验证url的请求参数,能够在nginx中获取到,只需要修改nginx.conf 配置文件如下,就可以在access.log中看到id和name在log中

http {

include mime.types;

default_type application/octet-stream;

log_format main '{ "@timestamp": "$time_iso8601", '

'"servername": "$http_host", '

'"id": "$arg_id",'

'"name": "$arg_name",'

'"remote_addr": "$remote_addr",'

'"referer": "$http_referer",'

'"request": "$request",'

'"request_time": "$request_time",'

'"status": $status,'

'"bytes":$body_bytes_sent,'

'"agent": "$http_user_agent",'

'"x_forwarded": "$http_x_forwarded_for",'

'"upstr_addr": "$upstream_addr",'

'"upstr_host": "$upstream_http_host",'

'"ups_resp_time": "$upstream_response_time" }';

access_log logs/access.log main;

server_names_hash_bucket_size 128;

nginx lua redis

使用redis实现计数器,是因为redis是单线程的,使用setnx命令或者lua脚本,可以实现对同一个key的单线程计算

nginx lua模块

nginx支持逻辑判断语法匹配,还可以使用lua增强功能

nginx lua 网关

gRPC必须使用 HTTP/2 传输数据,支持明文和TLS加密数据,支持流数据的交互。充分利用 HTTP/2 连接的多路复用和流式特性。

技术选型

1、最早计划采用Netty来做,但由于gRPC的proto模板不是我们定义的,所以解析成本很高,另外还要读取请求Header中的数据,开发难度较大,所以这个便作为了备选方案。

2、另一种改变思路,往反向代理框架方向寻找,重新回到主流的Nginx这条线,但是nginx采用C语言开发,如果是基于常规的负载均衡策略转发请求,倒是没什么大的问题。但是,我们内部有依赖任务资源关系,也间接决定着要依赖外部的存储系统。

Nginx适合处理静态内容,做一个静态web服务器,但我们又看重其高性能,最后我们选型 Openresty

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

nginx lua开发实战pdf

使用tengine+lua+gm来实现对图片的实时裁剪与水印添加,简单的说就是通过nginx调用lua脚本,调用gm命令对图片进行处理。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98759425.html