Configure a Nginx HTTPS Reverse Proxy

Install

sudo apt-get update
sudo apt-get install nginx

Create a reverse proxy configuration file

cd /etc/nginx/sites-available
sudo vim codetorich.com.conf
codetorich.com.conf
server {
  listen 80;
  listen [::]:80;
  server_name app.codetorich.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name app.codetorich.com;

  ssl_certificate     /etc/letsencrypt/live/codetorich.com/cert.pem;
  ssl_certificate_key /etc/letsencrypt/live/codetorich.com/privkey.pem;

  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;

  location / {
    proxy_pass         http://127.0.0.1:5000;
    proxy_redirect     off;
    proxy_buffering    off;
    proxy_set_header   Host            $host;
    proxy_set_header   X-Real-IP       $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}
ln -s /etc/nginx/sites-available/codetorich.com.conf /etc/nginx/sites-enabled/codetorich.com.conf

Test the Nginx configuration file

nginx -t

Reload NGINX web server:

sudo systemctl reload nginx

Restart NGINX web server:

sudo systemctl restart nginx

Last updated

Was this helpful?