90 lines
3.8 KiB
Nginx Configuration File
90 lines
3.8 KiB
Nginx Configuration File
events {}
|
|
|
|
http {
|
|
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;
|
|
|
|
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;
|
|
ssl_prefer_server_ciphers off;
|
|
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256';
|
|
ssl_session_cache shared:SSL:10m;
|
|
ssl_session_timeout 1h;
|
|
|
|
error_log /var/log/nginx/error.log debug;
|
|
access_log /var/log/nginx/access.log;
|
|
|
|
# ---------- server1 (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 (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 (5002) ----------
|
|
location ^~ /api/premium/ { proxy_pass http://server3:5002; }
|
|
location /api/public/ { proxy_pass http://server3:5002/api/public/; }
|
|
|
|
# ---------- static React build ----------
|
|
root /usr/share/nginx/html;
|
|
index index.html;
|
|
location / { try_files $uri /index.html; }
|
|
location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?|eot|ttf|svg)$ {
|
|
expires 6M;
|
|
access_log off;
|
|
add_header Cache-Control "public, max-age=31536000, immutable";
|
|
}
|
|
|
|
error_page 502 503 504 /50x.html;
|
|
location = /50x.html { root /usr/share/nginx/html; }
|
|
}
|
|
}
|
|
http {
|
|
upstream backend5000 { server server1:5000; }
|
|
upstream backend5001 { server server2:5001; }
|
|
upstream backend5002 { server server3:5002; }
|
|
|
|
server {
|
|
listen 80;
|
|
location /api1/ { proxy_pass http://backend5000/; }
|
|
location /api2/ { proxy_pass http://backend5001/; }
|
|
location /api3/ { proxy_pass http://backend5002/; }
|
|
}
|
|
}
|