如果想直接测试Kong网关的性能,最好是请求到达网关后取本地资源后直接返回,而不是经过域名解析、负载、转发等等耗时。
本文所用的Kong是2.1.0版本,配置请求返回一个txt文件。(nginx 下那种alias方式在kong中好像无效,如 博客 )
找到你服务器的 nginx_kong.lua 文件,或在Idea中找到nginx_kong.lua 文件,如图
打开后搜索下 location = /kong_error_handler ,在其上增加 如下代码即可。
location /a.txt {
return 200 'request access';
}
效果如下:
注意,kong的error日志会有如下两个warn
[warn] 23075#0: *225766275 [lua] reports.lua:75: log(): [reports] could not determine log suffix (scheme=http, proxy_mode=) while logging request, client: xxx server: kong, request: "HEAD /a.txt HTTP/1.0"
[warn] 23075#0: *225766275 using uninitialized "kong_proxy_mode" variable while logging request, client: xxx, server: kong, request: "HEAD /a.txt HTTP/1.0"
如下即可:
location /a.txt {
default_type '';
set $kong_proxy_mode 'http';
proxy_http_version 1.1;
proxy_set_header TE $upstream_te;
proxy_set_header Host $upstream_host;
proxy_set_header Upgrade $upstream_upgrade;
proxy_set_header Connection $upstream_connection;
proxy_set_header X-Forwarded-For $upstream_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto;
proxy_set_header X-Forwarded-Host $upstream_x_forwarded_host;
proxy_set_header X-Forwarded-Port $upstream_x_forwarded_port;
proxy_set_header X-Forwarded-Prefix $upstream_x_forwarded_prefix;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass_header Server;
proxy_pass_header Date;
proxy_ssl_name $upstream_host;
proxy_ssl_server_name on;
return 200 'request access';
}