Fully functional webserver from scratch written in C++, based on nginx.
Compliant with the norms for HTTP defined in RFC 7230-7235.
- HTTP request/response parsing
- HTTP authentication
- Custom configuration files
- Common Gateway Interface (CGI)
- Php-cgi compatibility
- File uploads
- Chunked encoding
- Multiple server support
- Signal handling
- Port and host of each server
- Server_names
- Default error pages
- Max client body size
- Allowed HTTP request methods
- Url root location
- Directory listing
- Default file to answer if requested path is a directory
- CGI
All configuration options are based on the behaviour of nginx.
make && ./webserv
Custom configuration file:
make && ./webserv path-to-config-file
The default server runs on localhost:8080