Nginx优点:
- 跨平台,配置简单
- 非阻塞,高并发连接(最高5W)
- 内存消耗小
- 开源
- 稳定性高
基本命令:
- 启动 nginx.exe
- 停止 nginx -s stop 或者 nginx -s quit
- 重载配置 nginx -s reload
- 查看版本 nginx -V
当访问192.168.0.1时出现“welcome to openresty”。如果想显示为“hello word”,则需要修改配置文件nginx.conf:
location / {
# root html;
# index index.html index.htm;
default_type text/html; # 编码
content_by_lua_block{
ngx.say("hello world") # 嵌入lua代码/脚本
# 也可以使用content_by_lua_file filepath嵌入lua脚本文件
}
}
获取HTTP请求信息:
获取uri参数:
-- 获取get请求参数
local arg=nginx.req.get_uri_args() -- 数组
for k,v in pairs(arg) do
ngx.say(k, v) # 循环打印数组
end
-- 获取post请求时,请求参数
ngx.req.read_body() -- 解析body参数之前一定要先读取body
local arg=nginx.req.get_post_args()
for k,v in pairs(arg) do
ngx.say(k, v) # 循环打印数组
end
获取header
local header=ngx.req.get_headers()
for k,v in pairs(arg) do
ngx.say(k, v) # 循环打印数组
ngx.say("<br>")
end
获取body
local data=ngx.req.get_body_data()
ngx.say(data)
OpenResty的目标是让web服务直接跑在Nginx服务内部,充分利用Nginx的非阻塞I/O模型,不仅对HTTP客户端请求,甚至于对远程后端,诸如MySQL,Redis等都进行一致的高性能响应。
常用架构:
-
负载均衡
-
单机闭环
所有想要的数据都能从本地直接获取,在大多数时候无需通过网络去其他服务器获取。通过Lua程序直接访问文件系统和数据库。

-
分布式闭环
单机闭环会遇到两个问题:
- 数据不一致问题(比如没有采用主从架构导致不同服务器数据不一致)
- 遇到存储瓶颈(磁盘或者内存不够)
解决数据不一致问题比较好的办法是采用主从或者分布式集中存储而存储瓶颈需要进行按照业务进行分片,将数据分散到多台服务器。

-
接入网关
接入网关又可以叫做接入层,及接收到流量的入口。在入口可以:

Lua数据类型:
Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

Lua变量有三种类型:全局变量,局部变量,表中的域。
Lua中的变量都是全局变量,包括语句块或者函数里的变量。除非用local显式声明为局部变量。
function fun()
a = 10
local b = 20
end
fun()
print(a, b) -- 10, nil
条件运算:
-- if语句
if()
then
print("hello world")
else
print("222")
end
-- if嵌套
if()
then
if()
then
print("22")
end
end
循环语句
-- while循环
a = 10
while(a>10)
do
print(a)
a = a-1
end
-- repeat until 重复执行循环,直到 指定的条件为真时为止
b = 10
repeat
print(b)
b = b-1
until(b<1)
-- for循环
for a = 1,10,2 do
print(a) --1,3,5,7,9
end
函数
function fun(a,b,c)
return a+b+c
end
value = fun(1,2,3)
print(value)
引入模块
require "module"
print(module.sum(10,20))
更多笔记:
https://www.cnblogs.com/crazymakercircle/p/17052040.html#autoid-h2-0-0-0
6044






