NGINX as a Simple Web Server
2024-07-30Nginx is a simple web server — but sometimes you want something that is
really simple to setup. You know, something like Python's python3 -m
http.server
or
Busybox's httpd or
Caddy which are all great options, but I like
to focus on a single tool, really get to know it, and use it everywhere. So as I
use nginx in production (as an edge router, for static file serving, etc) I use
it for the simple need-a-server-now use case too.
So without more ado, here is how to do that.
Nginx needs a little bit for a basic config, so I store this minimal config somewhere on the host:
daemon off;
events {}
pid nginx.pid;
http {
include /etc/nginx/mime.types;
access_log /dev/stdout;
client_body_temp_path .;
proxy_temp_path .;
fastcgi_temp_path .;
uwsgi_temp_path .;
scgi_temp_path .;
server {
server_name localhost;
listen 0.0.0.0:8000;
location / {
autoindex on;
root public;
}
}
}
Then when I wan to serve a directory under Nginx, use:
nginx -p $PWD -e stderr -c /path/to/nginx.conf