Install NGINX on Arch Linux

Fast and easy tutorial for installing a NGINX web server with HTTP/2 and TLS certificates from Let’s Encrypt on Arch Linux.

Installation

Terminal window
pacman -S nginx-mainline certbot certbot-nginx

The default page served at http://127.0.0.1 is located at /usr/share/nginx/html/index.html.

Configuration

DigitalOcean has provided a tool for configuring your web server over at nginxconfig.io, use it and follow the instructions to create a site. Then proceed with the instructions below.

Disable the default site

If you want to disable the default site and create a new one, instead of adding your site to the default webroot, you can disable it by removing the symlink.

Terminal window
rm /etc/nginx/sites-enabled/default

Automatically renew the certificates

Create a systemd service

/etc/systemd/system/certbot.service
[Unit]
Description=Let’s Encrypt renewal
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew —quiet —agree-tos —deploy-hook “systemctl reload nginx.service”

Create a timer

Make it run twice a day at random times to help reduce load on Let’s Encrypt servers

/etc/systemd/system/certbot.timer
[Unit]
Description=Twice daily renewal of Let’s Encrypt’s certificates
[Timer]
OnCalendar=0/12:00:00
RandomizedDelaySec=1h
Persistent=true
[Install]
WantedBy=timers.target

Start and enable the service

Terminal window
systemctl start certbot.timer
systemctl enable certbot.timer

Run NGINX

Terminal window
systemctl start nginx
systemctl enable nginx

Live

Your website should now be live at https://yourdomain.com.

← Back to all posts