Skip to content


Nginx Quickly Setup a Static Website🔗

NOTE : This guide assumes you have working nginx configuration and auto-renewal scripts setup correctly.

Step 1 : Register a Child Domain on your Domain Provider🔗

Add one CNAME entry with following information to setup

  • Type : CNAME
  • Host : prismo
  • Value : (Notice the . at the end)
  • TTL : 5min

Now wait for 2 minutes and try pinging to to check if your domain has propogated to your server or not. Usually this is very fast now a days.

Now execute : nslookup to check domain propogation.

Accessing should throw 502 if nginx is correctly configured.

Step 2 : Setup nginx conf for🔗

  • Create a simple index.html file with some content in /var/www/prismo
  • We will use simple configs one by one.

Basic Config-1 : filename : in /etc/nginx/conf.d/

server {
    listen 80;
    server_name ~^(www\.|)prismo\.minetest\.in$;

    access_log /var/log/nginx/prismo.minetest_access.log main;
    error_log  /var/log/nginx/prismo.minetest_error.log  info;

Save above configuration and run service nginx restart . This should give welcome message that nginx is configured correctly.

Basic Config-2 : same file

server {
    listen 80;
    server_name ~^(www\.|)prismo\.minetest\.in$;

    access_log /var/log/nginx/prismo.minetest_access.log main;
    error_log  /var/log/nginx/prismo.minetest_error.log  info;
        # this is a redirect rule to https
    return 301$request_uri;


server {
    listen 443 ssl;
    server_name ~^prismo\.minetest\.in$;

    access_log /var/log/nginx/prismo_error.log main;
    error_log  /var/log/nginx/prismo_error.log  info;
        # NOTE Keep these commented out for now until we obtain certs from runlets perl script.
    # ssl_certificate     /var/letse/smk/certificates/ ;
    # ssl_certificate_key /var/letse/smk/certificates/ ;

    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        root /var/www/tmp;
        allow all;

    location = /.well-known/acme-challenge/ {
        return 404;

    set $docdir /var/www/prismo;
    include /etc/nginx/local/common.conf;
    root $docdir;

# Add any useful rewrite rules below.

Now save this config and again access . You will get a certificate warning and proceed with above setup to check if your html page is rendered properly or not.

You could render your html page on http if you move setdirectory directives in http config portion. And note certs are commented out because they do not exist yet !

Confirm : If your http is redirected to https and page loads correctly, ignore secure website warnings for now.

Step 3: Generating certs for the above domain🔗

NOTE: nginx must be up for perl script solver to work

Now if you have recieved bundle of scripts from this website then there should be a runlets perl script, Its basically a certificate solver and generates certificate for our domain.

Add your new domain and run the script. Wait for it to resolve and generate certificate.

Uncomment certs line from above script and execute service nginx restart again. If there is no specific error from nginx then you have setup everything correctly and use a browser to navigate to and it should redirect to with valid certs.

Step 4 : Adding your website🔗

Now you can drop in your static website to /var/www/prismo/ directory tree and nginx will take care of rest.

As usual setup I generally have a folder for static files locally and I create a deploy script file with two commands, one generates the static files/builds website and another rsyncs that into the server.

Example npm build website.

npm run build && rsync -avz --delete build/ mtboxroot:/var/www/prismo/
exit 0

Note here mtboxroot is derived from the .ssh/config file.