upstream ui { server webfront:8080; } upstream api { server core:3001; } server { listen 80; server_name boards-url.replace.me; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 80; server_name boards-api-url.replace.me; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443 ssl; server_name boards-api-url.replace.me; ssl_certificate /etc/nginx/ssl.crt; ssl_certificate_key /etc/nginx/ssl.key; ssl_protocols TLSv1.2; client_max_body_size 50M; location / { proxy_buffering off; proxy_cache off; proxy_set_header Host $host; proxy_set_header Connection ''; proxy_http_version 1.1; chunked_transfer_encoding off; proxy_pass http://api; } location ^~ /socket { rewrite ^/socket/(.*) /$1 break; #used to send request to base url proxy_pass http://api; proxy_redirect off; proxy_pass_request_headers on; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } } server { listen 443; server_name boards-url.replace.me; client_max_body_size 50m; client_body_timeout 120s; large_client_header_buffers 4 32k; ssl_certificate /etc/nginx/ssl.crt; ssl_certificate_key /etc/nginx/ssl.key; ssl_protocols TLSv1.2; location / { proxy_buffering off; proxy_cache off; proxy_set_header Host $host; proxy_set_header Connection ''; proxy_http_version 1.1; chunked_transfer_encoding off; proxy_pass http://ui; } }