Skip to content

p-w/gatling-webserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gatling
a high performance web server

Gatling is a small and fast HTTP webserver and reverse proxy that makes deploying microservices or websites easy. Gatling is particularly good in situations with very high load. It's designed to adhere green software standards. The size is only 10% of the next best webserver image, so sustainability is a core priority, just as important as performance, security, cost and accessibility. Let's minimise carbon and maximise trust.

Docker Pulls Docker Image Size (tag) GitHub last commit Docker Image Version (latest by date) GitHub

Quick reference

Features

  • Small! (125k static Linux-x86 binary with HTTP, FTP and SMB support)
  • Fast! (measure for yourself, please)
  • Scalable! (see this document, measured using tools that are included in the gatling distribution.
  • Uses platform-specific performance and scalability APIs on Linux 2.4, Linux 2.6, NetBSD current (2.0+), FreeBSD 4+, OpenBSD 3.4+, Solaris 9+, AIX 5L, IRIX 6.5+, MacOS X Panther+, HP-UX 11+
  • connection keep-alive
  • el-cheapo virtual domains (similar to thttpd)
  • IPv6 support
  • Content-Range
  • transparent content negotiation (will serve foo.html.gz if foo.html was asked for and browser indicates it understands deflate)
  • With optional directory index generation
  • Will only serve world readable files (so you don't export files accidentally)
  • Supports FTP and FTP upload as well (upload only to world writable directories and the files won't be downloadable unless you chmod a+r them manually)
  • CGI support for HTTP, also SCGI and FastCGI (over IP sockets, not Unix Domain yet)
  • El-cheapo .htaccess support (see README.htaccess)
  • Quick-and-dirty SSL/TLS support (see README.tls)
  • Can detect some common mime types itself, like file(1)
  • Read-only SMB1 support (was once good enough to read a specific file from Windows or using smbclient from Samba but now SMB1 is deprecated, so less useful)

gatling v0.17 - Example Usage

Pull the image: docker pull wilfahrt/gatling-webserver

Enable docker provider:

## gatling-webserver.yml

# Docker configuration backend
providers:
  docker:
    defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"

Start gatling:

docker run -d -p 8080:8080 -p 80:80 \
-v /var/run/docker.sock:/var/run/docker.sock \
wilfahrt/gatling-webserver:latest

Start a backend server, named test with traefik/whoami (i.e. a tiny Go webserver that prints os information and HTTP request to output):

docker run -d --name test traefik/whoami

And finally, you can access to your whoami server through gatling, on the domain name test.docker.localhost.


a PW project