BSDCan2015 - ZI

BSDCan 2015
The Technical BSD Conference

Reyk Floeter
Day Talks #2 - 13 June - 2015-06-13
Room DMS 1140
Start time 15:00
Duration 01:00
ID 552
Event type Lecture
Track Hacking
Language used for presentation English

Introducing OpenBSD’s new httpd

OpenBSD includes a new web server in its base system that is based on relayd and replaced nginx.

OpenBSD includes a brand new web server that was started just two weeks before the 5.6 release was finished. Work is in active progress and significant improvements have been done since its initial appearance. But why do we need another web server? This talk is about the history, design and implementation of the new httpd(8). About 17 years ago, OpenBSD first imported the Apache web server into its base system. It got cleaned up and improved and patched to drop privileges and to chroot itself by default. But years of struggle with the growing codebase, upstream, and the inacceptable disaster of Apache 2 left OpenBSD with an unintended fork of the ageing Apache 1.3.29 for many years. When nginx came up, it promised a much better alternative of a popular, modern web server with a suitable BSD license and a superior design. It was patched to drop privileges and to chroot itself by default and eventually replaced Apache as OpenBSD’s default web server. But history repeated itself: a growing codebase, struggle with upstream and the direction of its newly formed commercial entity created a discontent among many developers. Until one day at OpenBSD’s g2k14 Hackathon in Slovenia, I experimented with relayd and turned it into a simple web server. A chain of events that were supported by Bob Beck and Theo de Raadt turned it into a serious project that eventually replaced nginx as the new default. It was quickly adopted by many users: ”OpenBSD httpd” was born, a simple and secure web server for static files, FastCGI and LibreSSL-powered TLS. And, of course, ”httpd is web scale”.