Git Product home page Git Product logo

freenginx's Introduction

Distroless FreeNGINX with HTTP/3 and QUIC support🚀

Build and push image📦 version GitHub issues open

The Docker image is ready to use:
docker run -d --rm -p 127.0.0.1:8080:8080/tcp ghcr.io/ammnt/freenginx:main
or
docker run -d --rm -p 127.0.0.1:8080:8080/tcp ammnt/freenginx:main

Description:

  • Based on latest version of Alpine Linux - low size (~4 MB);
  • BoringSSL with HTTP/3 and QUIC support: https://boringssl.googlesource.com/boringssl
  • HTTP/2 with ALPN support;
  • TLS 1.3 and 0-RTT support;
  • TLS 1.2 and TCP Fast Open (TFO) support;
  • Built using hardening GCC flags;
  • NJS and Brotli support;
  • PCRE with JIT compilation;
  • zlib-ng library latest version;
  • Rootless master process - unprivileged container;
  • Async I/O threads module;
  • "Distroless" image - shell removed from the image;
  • Removed unnecessary modules;
  • Added OCI labels and annotations;
  • No excess ENTRYPOINT in the image;
  • Slimmed version by Docker Slim tool;
  • Scanned efficiency result with Dive tool;
  • Scanned by vulnerability scanners: GitHub, Docker Scout, Snyk, Grype, Clair and Syft;
  • Anonymous signature - removed "Server" header ("banner"):
    https://github.com/ammnt/freenginx/blob/main/Dockerfile

Note:

Feel free to contact me with more security improvements🙋

freenginx's People

Contributors

ammnt avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

freenginx's Issues

Default nginx.conf

Any chance to provide the default nginx.conf such as the following one, but maybe without logs enabled by default?

Also while leaving out the current server section and including the include line at the bottom so that the user of the image can copy in their own config or maybe override the /etc/nginx/conf.d/default.conf if it's present, as shown bellow.

# configuration file /etc/nginx/nginx.conf:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

Very nice and compact image, btw.

Example usage would then be:

FROM ghcr.io/ammnt/freenginx:main
...
COPY ./nginx.conf /etc/nginx/conf.d/default.conf

OCSP Stapling

FreeNGINX with BoringSSL does not seem to support OCSP Stapling.
Please consider using QuicTLS instead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.