网关主入口设计
为网关起个名字:fago
fago关框架,也会有个主入口;
nginx配置文件的入口,调用fago网关的入口
一)nginx的conf配置
fago-nginx.conf
#user nobody;
worker_processes 1;
error_log logs/error.log;
error_log logs/debug.log debug;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/html;
charset utf-8;
sendfile on;
keepalive_timeout 65;
resolver 8.8.8.8;
upstream default_upstream {
server localhost:8080;
}
#----------------------------fago configuration-----------------------------
lua_package_path '/usr/local/lua/?.lua;;';
lua_code_cache on;
lua_shared_dict shared_ip_blacklist 1m; #定义ip_blacklist 本地缓存变量
init_by_lua_block {
local fago = require("fago.fago")
fago.init()
context = {
fago = fago
}
}
init_worker_by_lua_block {
local fago = context.fago
fago.init_worker()
}
server {
listen 80;
#server_name www.server1.com;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location / {
set $upstream_host $host;
set $upstream_url 'http://default_upstream';
rewrite_by_lua_block {
local fago = context.fago
fago.redirect()
fago.rewrite()
}
access_by_lua_block {
local fago = context.fago
fago.access()
}
# proxy
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header Host $upstream_host;
proxy_pass $upstream_url;
header_filter_by_lua_block {
local fago = context.fago
fago.header_filter()
}
body_filter_by_lua_block {
local fago = context.fago
fago.body_filter()
}
log_by_lua_block {
local fago = context.fago
fago.log()
}
}
}
server {
listen 8080;
location /world {
echo "hello world";
}
}
}二)fago主入口
/usr/local/openresty/lualib/fago/fago.lua
启动 nginx -c /usr/local/openresty/nginx/conf/fago-nginx.conf
访问http://192.168.40.110/world
查看nginx日志:
Last updated
Was this helpful?