faloker/purify

View on GitHub
nginx/nginx.prod.conf

Summary

Maintainability
Test Coverage
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
  worker_connections 1024;
}

http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log main;
  
  client_max_body_size 800m;
  client_body_buffer_size 100M;
  
  sendfile on;
  keepalive_timeout 65;

  server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name purify.io;

    location / {
      root /app;
      index index.html;
      try_files $uri $uri/ /index.html;
    }

    location /api {
      proxy_pass http://api:3000;
    }

    location /swagger {
      proxy_pass http://api:3000;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
      root /usr/share/nginx/html;
    }

    ssl_certificate /etc/nginx/ssl/cert;
    ssl_certificate_key /etc/nginx/ssl/key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.3;
    ssl_prefer_server_ciphers off;
  }

  server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name purify.io;

    return 301 https://$server_name$request_uri;
  }
}