This guide covers the Nginx blueprint instance.
Accessing Your Server
ssh -i your-key.pem bitnami@YOUR-IP
Nginx Basics
Check status:
sudo systemctl status nginx
Restart / reload:
sudo systemctl restart nginx
sudo nginx -s reload
Test configuration:
sudo nginx -t
Serving a Static Website
sudo mkdir -p /var/www/mysite
scp -i key.pem -r ./dist/* bitnami@YOUR-IP:/var/www/mysite/
sudo nano /etc/nginx/sites-available/mysite
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/mysite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Setting Up as a Reverse Proxy
For Node.js, Python, or any backend:
server {
listen 80;
server_name api.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
SSL with Certbot
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Auto-renewal is configured by default.
Performance Tuning
Add to the http block in /etc/nginx/nginx.conf:
gzip on;
gzip_types text/plain text/css application/json application/javascript;
client_max_body_size 50M;
keepalive_timeout 65;
Enable caching for static assets:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}