Skip to main content

Command Palette

Search for a command to run...

Nginx Cheatsheet

Nginx Configurations that developers should know

Updated
2 min readView as Markdown
Nginx Cheatsheet
V

I would like to Build -> Ship -> Get Feedback -> Optimise -> Repeat

Open source So far to popular repositories:

Contribution To Elastic Search:

  1. https://tinyurl.com/yxwqm4q2
  2. https://tinyurl.com/y27ynp3j

Contribution To Bitly G-OauthProxy:

  1. Support for multi white listed urls with regex url match - https://tinyurl.com/y5rb3wzg

Nginx is open-source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. In this post, I will mention few Nginx configurations which we use frequently.

Index


Listen To Port

server {
  # Standard HTTP Protocol
  listen 80;

  # Standard HTTPS Protocol
  listen 443 ssl;

  # For http2
  listen 443 ssl http2;

  # Listen on 80 using IPv6
  listen [::]:80;

  # Listen only on using IPv6
  listen [::]:80 ipv6only=on;
}

Access Logging

server {
  # Relative or full path to log file
  access_log /path/to/file.log;

  # Turn 'on' or 'off'
  access_log on;
}

Domain Name

server {
  # Listen to yourdomain.com
  server_name yourdomain.com;

  # Listen to multiple domains
  server_name yourdomain.com www.yourdomain.com;

  # Listen to all domains
  server_name *.yourdomain.com;

  # Listen to all top-level domains
  server_name yourdomain.*;

  # Listen to unspecified Hostnames (Listens to IP address itself)
  server_name "";

}

Static Assets

server {
  listen 80;
  server_name yourdomain.com;

  location / {
          root /path/to/website;
  } 
}

Redirect

server {
  listen 80;
  server_name www.yourdomain.com;
  return 301 http://yourdomain.com$request_uri;
}
server {
  listen 80;
  server_name www.yourdomain.com;

  location /redirect-url {
     return 301 http://otherdomain.com;
  }
}

Reverse Proxy

server {
  listen 80;
  server_name yourdomain.com;

  location / {
     proxy_pass http://0.0.0.0:3000;
     # where 0.0.0.0:3000 is your application server (Ex: node.js) bound on 0.0.0.0 listening on port 3000
  }

}

Load Balancing

upstream node_js {
  server 0.0.0.0:3000;
  server 0.0.0.0:4000;
  server 123.131.121.122;
}

server {
  listen 80;
  server_name yourdomain.com;

  location / {
     proxy_pass http://node_js;
  }
}

SSL

server {
  listen 443 ssl;
  server_name yourdomain.com;

  ssl on;

  ssl_certificate /path/to/cert.pem;
  ssl_certificate_key /path/to/privatekey.pem;

  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_trusted_certificate /path/to/fullchain.pem;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_session_timeout 1h;
  ssl_session_cache shared:SSL:50m;
  add_header Strict-Transport-Security max-age=15768000;
}

# Permanent Redirect for HTTP to HTTPS
server {
  listen 80;
  server_name yourdomain.com;
  return 301 https://$host$request_uri;
}

Thank you for reading

If you like what you read and want to see more, please support me with coffee or a book ;)

Buy Me A Coffee

O
olishiz1y ago

Loved it! Thanks for simplifying the process!

H

Vlogr makes me a creative video editor You can also create games, vlogs, and creative videos/ It saves me a lot of time and gives me more flexibility you can also check this vlog editor online free website out.

V

Just looking for this! Thanks!

H

Vlogr makes me a creative video editor You can also create games, vlogs, and creative videos/ It saves me a lot of time and gives me more flexibility you can also check this ahref="https://www.vlogr.com/"vlog editor online free</a> website out.

R

Shouldn't use TLS 1.0/1.1.

This site itself doesn't even :)

V

Yep.

The TLSv1.1 and TLSv1.2 parameters (1.1.13, 1.0.12) work only when OpenSSL 1.0.1 or higher is used.

The TLSv1.3 parameter (1.13.0) works only when OpenSSL 1.1.1 built with TLSv1.3 support is used.

J
Jack5y ago

So useful bookmarked :>

M
Mounick5y ago

Just bookmarked this for future reference. Nice one Vishnu.

Cheatsheets

Part 8 of 11

In this series, i will be publishing multiple posts on Cheatsheets on different technologies which developers should know.

Up next

Git Quick Stats for your repository

Access various statistics in your git repository