sungyism/tengine

By sungyism

Updated 17 days ago

Supports Lua, GeoIP2, PCRE2, Brotli, and GmSSL (via Tongsuo).

Image
Web Servers

3.0K

Tengine Docker Image

Maintained by: the Tengine Docker Maintainers

This repository provides multi-operating system Docker images for Tengine, designed for high-performance web applications.

Features

  • GMSSL Support: Provides cryptographic functions compliant with national standards.
  • Lua Support: Use LuaJIT with the lua-nginx-module for dynamic request handling and flexible configuration.
  • PCRE2 Support: Enhanced regular expressions with JIT compilation for improved performance.
  • GeoIP2 Support: Enable IP-based geolocation using MaxMind's GeoIP2 databases.
  • Brotli Compression: Efficient compression for faster loading of static resources.

Components

  • Tengine: Version master
  • zlib: Version 1.3.1
  • PCRE2: Version 10.45
  • Tongsuo: Version 8.4.0
  • geoip-api-c: Version 1.6.12
  • brotli: Version 1.0.9
  • ngx_brotli: Version master
  • ngx_http_geoip2_module: Version 3.4
  • ngx_devel_kit: Version 0.3.3
  • LuaJIT: Version 2.1-20240815
  • echo-nginx-module: Version 0.63
  • lua-nginx-module: Version 0.10.27
  • stream-lua-nginx-module: Version 0.0.15
  • lua-cjson: Version 2.1.0.14
  • lua-resty-core: Version 0.1.29
  • lua-resty-lock: Version 0.09
  • lua-resty-lrucache: Version 0.14

Quick Start

Build the Docker Image

Build the Docker image locally:

docker build -t sungyism/tengine:latest .
Run the Container

You can run the Tengine container using the following command:

docker run -d -p 80:80 -p 443:443 --name tengine sungyism/tengine:latest

This will start Tengine with the default configuration.

Custom Configuration

You can customize the NGINX configuration by mounting your own configuration files into the container:

docker run -d \
  -v /etc/nginx:/etc/nginx \
  -v /data/public:/data/public \
  -p 80:80/tcp \
  -p 443:443/tcp \
  --name tengine \
  sungyism/tengine:latest

You can also include custom Lua scripts, or other configuration options as needed.

Tengine Compilation Parameters

The following parameters were used to compile Tengine:

--with-threads
--with-file-aio
--with-http_ssl_module
--with-http_v2_module
--with-http_realip_module
--with-http_addition_module
--with-http_xslt_module
--with-http_image_filter_module
--with-http_geoip_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_auth_request_module
--with-http_random_index_module
--with-http_secure_link_module
--with-http_degradation_module
--with-http_slice_module
--with-http_stub_status_module
--without-http_upstream_keepalive_module
--with-mail
--with-mail_ssl_module
--with-stream
--with-stream_ssl_module
--with-stream_realip_module
--with-stream_geoip_module
--with-stream_ssl_preread_module
--with-stream_sni
--with-compat
--with-pcre
--with-pcre-jit
--add-module=modules/ngx_tongsuo_ntls
--add-module=modules/mod_common
--add-module=modules/mod_config
--add-module=modules/mod_dubbo
--add-module=modules/mod_strategy
--add-module=modules/ngx_backtrace_module
--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_upstream_vnswrr_module
--add-module=modules/ngx_http_user_agent_module
--add-module=modules/ngx_multi_upstream_module
--add-module=modules/ngx_slab_stat

Contributing

Contributions are welcome! Please feel free to submit issues, pull requests, or suggestions.

Docker Pull Command

docker pull sungyism/tengine