Skip to content

Instantly share code, notes, and snippets.

@cppshane
Created May 15, 2022 20:07
Show Gist options
  • Save cppshane/04c5f237b5e01502504b61ae2d9b697b to your computer and use it in GitHub Desktop.
Save cppshane/04c5f237b5e01502504b61ae2d9b697b to your computer and use it in GitHub Desktop.
.NET/Angular NGINX with SSL via Certbot
upstream example_site {
server 127.0.0.1:4000;
}
upstream example_api {
server 127.0.0.1:5000;
}
server {
root /var/www/example.com/dist/example/browser;
index index.html;
server_name shaneduffy.io www.shaneduffy.io;
location / {
proxy_pass http://example_site;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /api/ {
proxy_pass http://example_api;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
# Generate certificate
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d sample.com -d www.sample.com
# After creating config file, create symbolic link to enable
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment