events {} http { include /etc/nginx/mime.types; default_type application/octet-stream; upstream backend5000 { server server1:5000; } upstream backend5001 { server server2:5001; } upstream backend5002 { server server3:5002; } server { listen 80; listen [::]:80; server_name dev1.aptivaai.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name dev1.aptivaai.com; root /usr/share/nginx/html; index index.html; ssl_certificate /etc/letsencrypt/live/dev1.aptivaai.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/dev1.aptivaai.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; # ---- server1 (port 5000) ---- location /api/register { proxy_pass http://server1:5000/api/register; } location /api/check-username { proxy_pass http://server1:5000/api/check-username; } location /api/signin { proxy_pass http://server1:5000/api/signin; } location /api/login { proxy_pass http://server1:5000/api/login; } location /api/user-profile { proxy_pass http://server1:5000/api/user-profile; } location /api/areas { proxy_pass http://server1:5000/api/areas; } location /api/activate-premium { proxy_pass http://server1:5000/api/activate-premium; } # ---- server2 (port 5001) ---- location /api/onet/ { proxy_pass http://server2:5001; } location /api/onet/career-description/ { proxy_pass http://server2:5001; } location /api/job-zones { proxy_pass http://server2:5001/api/job-zones; } location /api/salary { proxy_pass http://server2:5001/api/salary; } location /api/cip/ { proxy_pass http://server2:5001/api/cip/; } location /api/tuition/ { proxy_pass http://server2:5001/api/tuition/; } location /api/projections/ { proxy_pass http://server2:5001/api/projections/; } location /api/skills/ { proxy_pass http://server2:5001/api/skills/; } location = /api/ai-risk { proxy_pass http://server2:5001/api/ai-risk; } location /api/ai-risk/ { proxy_pass http://server2:5001/api/ai-risk/; } location /api/chat/ { proxy_pass http://server2:5001; proxy_http_version 1.1; proxy_buffering off; } location ^~ /api/maps/distance { proxy_pass http://server2:5001; } location /api/schools { proxy_pass http://server2:5001/api/schools; } # ---- server3 (port 5002) ---- location ^~ /api/premium/ { proxy_pass http://server3:5002; } location /api/public/ { proxy_pass http://server3:5002/api/public/; } # ---- static React build ---- location / { index index.html; try_files $uri $uri/ /index.html; } location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?|eot|ttf|svg)$ { expires 6M; access_log off; } error_page 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } }