tengine安装(包含常用模块)【ubuntu22.04】

下载文件

 wget https://tengine.taobao.org/download/tengine-2.4.1.tar.gz
 tar -zxvf tengine-2.4.1.tar.gz

安装依赖库

 sudo apt update
 sudo apt install g++ -y
 sudo apt install libpcre3 libpcre3-dev -y
 sudo apt install openssl libssl-dev -y
 sudo apt install zlib1g zlib1g-dev -y
 sudo apt make -y

安装lua5.3库用于启用tengine lua模块,没有需要可以不安装

  sudo apt install -y lua5.1 liblua5.1-0 liblua5.1-0-dev libluajit-5.1-dev

编译安装

cd tengine-2.4.1
sudo su root
./configure --without-http_upstream_keepalive_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-file-aio --with-http_v2_module --with-http_lua_module --with-luajit-inc=/usr/include/luajit-2.1 --with-luajit-lib=/usr/lib/x86_64-linux-gnu \
   --add-module=modules/ngx_backtrace_module --add-module=modules/ngx_debug_pool --add-module=modules/ngx_debug_timer --add-module=modules/ngx_http_concat_module --add-module=modules/ngx_http_footer_filter_module --add-module=modules/ngx_http_proxy_connect_module --add-module=modules/ngx_http_reqstat_module --add-module=modules/ngx_http_slice_module --add-module=modules/ngx_http_sysguard_module --add-module=modules/ngx_http_trim_filter_module --add-module=modules/ngx_http_upstream_check_module --add-module=modules/ngx_http_upstream_consistent_hash_module --add-module=modules/ngx_http_upstream_dynamic_module --add-module=modules/ngx_http_upstream_dyups_module --add-module=modules/ngx_http_upstream_keepalive_module --add-module=modules/ngx_http_upstream_session_sticky_module --add-module=modules/ngx_http_user_agent_module"
make && make install
exit

注意

我安装的时候选择lua模块 --with-http_lua_module
因此需要指定 –with-luajit-inc=/usr/include/luajit-2.1 –with-luajit-lib=/usr/lib/x86_64-linux-gnu
不同的系统版本可能不一样,我用的是ubuntu22.04
可以使用find命令搜索一下:

usr# find /usr -name 'lua.h'

定位到luajit.h 的目录,将目录位置配置 --with-luajit-inc=<目录位置>
定位到libluajit-5.1.so 的目录 配置 --with-luajit-lib=<目录位置>

创建软连接

 sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

创建tengine服务并设置自启动

服务配置文件内容参考自隔壁nginx
配置中使用的是tengine默认安装目录,如有修改,请根据实际情况进行修改再执行
如果安装了nginx要先卸载

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/bin/nginx -t
ExecStart=/usr/bin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

EOF
sudo systemctl daemon-reload
sudo /lib/systemd/systemd-sysv-install enable nginx
sudo systemctl start nginx.service

如果提示"Failed to start nginx.service: Unit nginx.service is masked."
使用以下命令解除

systemctl unmask nginx.service

你可能感兴趣的:(经验记录,nginx,负载均衡,运维开发)