一、tengine+lua集成安装
1.首先安装pcre、openssl
2.修改tengine安装包中 tengine-2.2.2/auto/lib/openssl/conf文件中的openssl路径,配置文件中路径包含/.openssl/,如usr/local/opt/openssl/.openssl/include/openssl/ssl.h,实际路径中不包含
--3./configure --prefix=tengine要安装到的目录 --with-pcre=pcre的安装包目录 --with-openssl=/usr/local/opt/openssl
具体安装步骤:
3.先安装1、2条nginx安装前置依赖
4.安装luajit
下载luajit安装包,执行命令 :make && make install
5.下载luamodule: ngx_devel_kit 、nginx_lua_module
6.安装tengine
# tell nginx's build system where to find LuaJIT 2.1:
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.1
# Here we assume Nginx is to be installed under /work/program/tengine
./configure --prefix=/work/program/tengine --with-pcre=/work/soft/pcre-8.38 --with-openssl=/usr/local/opt/openssl --with-ld-opt=-Wl,-rpath,/usr/local/lib --add-module=/work/program/lua-nginx-module-master --add-module=/work/program/ngx_devel_kit-master
sudo make -j2
sudo make install
7.安装lua-cjson
修改Makefile 文件内容,否则(mac下)会出现错误 Undefined symbols for architecture x86_64:
原:CJSON_LDFLAGS = -shared
改:CJSON_LDFLAGS = -bundle -undefined dynamic_lookup
这里就是OSX和Unix的区别,bundle是Mac使用的文件格式,如果不使用这些选项,可能引起“multiple lua vms detected”错误LUA_INCLUDE_DIR = $(PREFIX)/include/luajit-2.0
注释掉
FPCONV_OBJS = fpconv.o
添加:
FPCONV_OBJS = g_fmt.o dtoa.o
CJSON_CFLAGS += -DUSE_INTERNAL_FPCONV
CJSON_CFLAGS += -DIEEE_BIG_ENDIAN
CJSON_CFLAGS += -pthread -DMULTIPLE_THREADS执行命令:make && make install
安装luamodule:ngx_devel_kit 、nginx_lua_module
具体查看tengine 动态语言支持lua:https://github.com/alibaba/tengine/blob/master/modules/ngx_http_lua_module/README.markdown4.sudo make
二、request: "GET /favicon.ico HTTP/1.1"
favicon.ico 文件是浏览器收藏网址时显示的图标,当第一次访问页面时,浏览器会自动发起请求获取页面的favicon.ico文件。
nginx可以配置个该文件访问路径,也可以nginx配置忽略favicon.ico日志
location = /favicon.ico { log_not_found off; access_log off; }
三、ffi引用的相关问题
引用最新版的lua-resty-core