Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
February 18, 2022 02:39 pm GMT

OpenBSD httpd 7.0: Web server

Summary

OpenBSD httpd

OpenBSD has its own web server called "httpd".

To be frank, it seems to have less conf examples and tutorials. Therefore, some might think it more difficult.

It's, however, simple and minimal with clearly licensed, robust and secure, and thus, to my feelings, it's beautiful.
Also, it becomes more powerful with relayd.

Environment

  • OS: OpenBSD 7.0 amd64

Historical backgrounds

It's possible on OpenBSD to install Nginx, Apache (called "apache-httpd") and Lighttpd.

They are unsupported officially partially because of historical backgrounds.
Nginx disappeared from the official repository at the end of 5.6 release in 2015.
OpenBSD httpd was added then.
Besides, It's also possible to install Caddy web server manually.

Tutorial

Prepare a configuration file

httpd.conf is required in order to activate httpd service.
The default path is /etc/httpd.conf .

Prepare /etc/httpd.conf

You can make its conf file by copying a file in /etc/examples:

$ doas cp -p /etc/examples/httpd.conf /etc/

Alternatively, of coures, it's OK to create it manually:

# # Fish shell:# if not test -e /etc/httpd.conf; \      touch /etc/httpd.conf; \  end

Edit /etc/httpd.conf

The original conf file is like this

# $OpenBSD: httpd.conf,v 1.22 2020/11/04 10:34:18 denis Exp $# [ GLOBAL CONFIGURATION ]# none# [ TYPES ]types {    include "/usr/share/misc/mime.types"}# [ SERVERS ]server "example.com" {        listen on * port 80        location "/.well-known/acme-challenge/*" {                root "/acme"                request strip 2        }        location * {                block return 302 "https://$HTTP_HOST$REQUEST_URI"        }}server "example.com" {        listen on * tls port 443        tls {                certificate "/etc/ssl/example.com.fullchain.pem"                key "/etc/ssl/private/example.com.key"        }        location "/pub/*" {                directory auto index        }        location "/.well-known/acme-challenge/*" {                root "/acme"                request strip 2        }}

(caution) root property in "SERVERS" section means the directories under /var/www . The official document mentions in GLOBAL CONFIGURATION section:

chroot directory
Set the chroot(2) directory. If not specified, it defaults to /var/www, the home directory of the www user.

Now you can modify the conf file to build server as you want:

$ doas nvim /etc/httpd.con

Additional server definitions may be like these:

server "www.https-example.domain" {     alias "https-example.domain"     listen on * port 80     listen on * tls port 443    tls {        key         "/etc/ssl/private/www.https-example.domain.key"        certificate "/etc/ssl/www.https-example.domain.crt"    }    root "/htdocs/www.https-example.domain" }server "www.fastcgi-tcp-example.domain" {    alias "fastcgi-example.domain"    listen on * port 80    fastcgi socket tcp 127.0.0.1 8080}server "www.fastcgi-unix-socket-example.domain" {    alias "fastcgi-example.domain"    listen on * port 80    fastcgi socket "/run/example/unix_socket.sock"}

The official document is here .

Make index.html for testing

# mkdir -p /var/www/htdocs/www.https-example.domain# # if necessary:# #chown www:www /var/www/htdocs/www.https-example.domain$ echo "Hello, world. from OpenBSD httpd" > /var/www/www.https-example.domain/index.html

Activate httpd service

Enable httpd:

# rcctl enable httpd

* note: This time /etc/rc.conf.local is created like this:

# cat /etc/rc.conf.localhttpd_flags=

Then start it:

# rcctl start httpdhttpd(ok)

* note: Under the default setting: httpd_flags=NO, # rcctl -f start httpd can start httpd forcely.

Test if the server is listening

$ curl localhost:80Hello, world. from OpenBSD httpd

Conclusion

You can add more servers with /etc/httpd.conf. It will require reloading the daemon with:

$ doas rcctl restart httpdhttpd(ok)httpd(ok)

Thank you very much for your reading.
Happy serving


Original Link: https://dev.to/nabbisen/openbsd-httpd-70-web-server-2c2i

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To