一、安装与配置
1.安装 OpenResty
以 Ubuntu 系统为例,首先安装 OpenResty:
sudo apt-get install --assume-yes --fix-missing build-essential libssl-dev curl
wget https://openresty.org/download/openresty-1.19.3.1.tar.gz
tar -zxvf openresty-1.19.3.1.tar.gz
cd openresty-1.19.3.1/
./configure --prefix=/usr/local/openresty --with-http_ssl_module
make
sudo make install
复制代码
2.配置 OpenResty
修改 OpenResty 的配置文件,一般位于/usr/local/openresty/nginx/conf
下。以下是一个简单的示例配置:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
复制代码
二、HTTP 服务
1.反向代理
将请求转发到其他 HTTP 服务器,例如转发到本地端口号为 8080 的应用:
location /app {
proxy_pass http://127.0.0.1:8080;
}
复制代码
2.URL 重写
将 URL 路径进行重写,例如把以/v1 开头的请求转发到本地端口为 8080 的应用上,并将路径 /v1 替换成 /api:
location /v1 {
rewrite ^/v1(.*) /api$1 break;
proxy_pass http://127.0.0.1:8080;
}
复制代码
3.负载均衡
将请求分发到多台服务器上实现负载均衡,以轮询的方式进行分发:
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
location /api {
proxy_pass http://backend;
}
复制代码
4.缓存
开启缓存功能来减轻应用服务器的压力:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
server {
listen 80;
server_name localhost;
location /api {
proxy_cache my_cache;
proxy_cache_valid 200 60m;
proxy_pass http://127.0.0.1:8080;
}
}
复制代码
三、Lua 脚本
在 OpenResty 中可以使用 Lua 脚本进行更灵活的编程。
1.基本语法
local name = "Alice"
if name == "Alice" then
ngx.say("Hello, Alice!")
else
ngx.say("Hello, Stranger!")
end
复制代码
2.访问请求参数
local args = ngx.req.get_uri_args()
ngx.say(args.a + args.b)
复制代码
3.访问请求头信息
local headers = ngx.req.get_headers()
ngx.say("User-Agent: ", headers["User-Agent"])
复制代码
4.访问请求体信息
ngx.req.read_body()
local data = ngx.req.get_body_data()
ngx.say(data)
复制代码
5.访问响应头信息
ngx.header.content_type = "text/plain"
ngx.header.server = "OpenResty"
复制代码
6.访问请求方法和 URL 信息
ngx.say(ngx.req.get_method(), " ", ngx.var.request_uri)
复制代码
以上就是 OpenResty 接口的讲解。
相关技术视频教程:c/c++ linux服务器开发/后台架构师免费学习地址
c/c++后端技术交流群:812855908
评论