Skip to content

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

License

Notifications You must be signed in to change notification settings

IYism/docker-tengine

Repository files navigation

Tengine Docker Image

This repository provides multi-operating system Docker images for Tengine, designed for high-performance web applications. It supports Lua scripting, PCRE2, GMSSL, and more (via Tongsuo).

Features

  • GMSSL Support: Provides cryptographic functions compliant with national standards.
  • Lua Scripting: 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.
  • Brotli Compression: Efficient compression for faster loading of static resources.

Components

  • Tengine: Version master
  • zlib: Version 1.3.1
  • PCRE2: Version 10.44
  • 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 NGINX 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_iwrr_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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages