Para compilar Tengine, un servidor web de alto rendimiento basado en Nginx, siga estos pasos de configuración inicial.
./configure \
--prefix=/opt/tengine \
--error-log-path=/opt/tengine/log/error.log \
--http-log-path=/opt/tengine/log/access.log \
--pid-path=/run/tengine.pid \
--lock-path=/var/lock/tengine.lock \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream
Alternativamente, para una configuración más completa con rutas personalizadas para caché de clientes y proxy:
./configure \
--prefix=/usr/local/tengine \
--error-log-path=/usr/local/tengine/logs/error.log \
--http-log-path=/usr/local/tengine/logs/access.log \
--pid-path=/var/run/tengine.pid \
--lock-path=/var/run/tengine.lock \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/cache/tengine/client \
--http-proxy-temp-path=/var/cache/tengine/proxy \
--with-pcre
Instalación de Tengine con módulos Lua
Para integrar Lua en Tengine, se requieren LuaJIT y los módulos ngx_devel_kit y lua-nginx-module.
Instale las dependencias del sistema:
yum -y install gcc gcc-c++ pcre-devel openssl-devel zlib-devel
1. Instalar LuaJIT
Descargue, compile e instale LuaJIT desde la fuente:
wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
tar xzvf LuaJIT-2.1.0-beta3.tar.gz
cd LuaJIT-2.1.0-beta3
make install PREFIX=/usr/local/luajit
Configure las variables de entorno para apuntar a la instalación de LuaJIT:
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.1
2. Obtener los módulos ngx_devel_kit y lua-nginx-module
Descargue y extraiga ngx_devel_kit y lua-nginx-module en un directorio de trabajo:
wget https://github.com/vision5/ngx_devel_kit/archive/v0.3.1.tar.gz
tar -xzvf v0.3.1.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.15.tar.gz
tar -xzvf v0.10.15.tar.gz
3. Compilar e instalar Tengine con los módulos Lua
Descargue el código fuente de Tengine y configure la compilación incluyendo los módulos Lua:
wget http://tengine.taobao.org/download/tengine-2.3.3.tar.gz
tar -xvf tengine-2.3.3.tar.gz
cd tengine-2.3.3
./configure \
--prefix=/opt/tengine-lua \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--add-module=../ngx_devel_kit-0.3.1 \
--add-module=../lua-nginx-module-0.10.15 \
--with-ld-opt="-Wl,-rpath,/usr/local/luajit/lib"
Finaliec la compilación e instalación:
make
make install
Consideraciones para distribuciones como Ubuntu
En sistemas basados en Debian o Ubuntu, el proceso es similar, pero se pueden usar herramientas de gestión de paquetes para instalar las dependencias. Asegúrese de que las bibliotecas de desarrollo estén presentes.
Resolución de problemas comunes
Error con OpenSSL: Si durante la compilación se encuentran advertencias o errores sobre funciones obsoletas en OpenSSL 3.x, como ENGINE_by_id, considere compilar con una versión anterior de OpenSSL, como la 1.1.1. Descargue el código fuente de OpenSSL 1.1.1, compílelo en un directorio separado y pase la ruta a la configuración de Tengine usando --with-openssl=.
Archivo config no encontrado: Si el script ./config de OpenSSL no se encuentra durante la compilación de Tengine, puede ser necseario editar el archivo de configuración de OpenSSL dentro del código fuente de Tengine. Modifique el archivo auto/lib/openssl/conf para eliminar rutas redundantes como .openssl/ en las definiciones de CORE_INCS, CORE_DEPS y CORE_LIBS.