Skip to content

Instantly share code, notes, and snippets.

@hamidrhashmi
Created June 21, 2024 06:32
Show Gist options
  • Save hamidrhashmi/c439fcb046874baf8aa193c4df716681 to your computer and use it in GitHub Desktop.
Save hamidrhashmi/c439fcb046874baf8aa193c4df716681 to your computer and use it in GitHub Desktop.
How to relay HTTPS traffic to HTTP endpoint with nginx

Create file in site-available folder

vim /etc/nginx/sites-available/backendservice.conf

and past ethe following line in it

server {
    client_max_body_size 100M;
    server_name PUB_API;
    listen 3555 ssl;
    #listen 80;
    ssl_certificate /etc/letsencrypt/live/backendservice.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/backendservice.com/privkey.pem;

    location / {
        proxy_pass http://localhost:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_read_timeout 60;
        proxy_connect_timeout 60;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Note

This Configuration file will start listening on port 3555 (https) and start forwarding traffic to port 5000 (http)

create a Symlink to file

cd /etc/nginx/sites-enabled
unlink default
ln -s ../sites-available/backendservice.conf backendservice.conf
systemctl restart nginx

Enjoy 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment