nginx.conf 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. events {}
  2. http {
  3. server {
  4. listen 80;
  5. server_name localhost;
  6. # Allow uploads up to 100 MB
  7. client_max_body_size 100m;
  8. location / {
  9. proxy_pass http://ui:5173;
  10. proxy_set_header Host $host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_http_version 1.1;
  13. proxy_set_header Upgrade $http_upgrade;
  14. proxy_set_header Connection "upgrade";
  15. }
  16. location /ws {
  17. proxy_pass http://ui:5173;
  18. proxy_set_header Host $host;
  19. proxy_set_header X-Real-IP $remote_addr;
  20. proxy_set_header Upgrade $http_upgrade;
  21. proxy_set_header Connection "upgrade";
  22. }
  23. location /socket.io/ {
  24. proxy_http_version 1.1;
  25. proxy_set_header Upgrade $http_upgrade;
  26. proxy_set_header Connection "upgrade";
  27. proxy_pass http://socket:8084/socket.io/;
  28. }
  29. # Serve uploaded media files directly from the shared volume
  30. location /media/ {
  31. alias /media/;
  32. add_header Cache-Control "public, max-age=31536000, immutable";
  33. try_files $uri =404;
  34. }
  35. location /api/ {
  36. rewrite ^/api/(.*) /$1 break;
  37. proxy_pass http://gateway:8084;
  38. proxy_set_header Host $host;
  39. proxy_set_header X-Real-IP $remote_addr;
  40. }
  41. location ~ ^/feeds/.+ {
  42. rewrite ^/feeds/(.*) /$1 break;
  43. proxy_pass http://feed-aggregator:3010;
  44. proxy_set_header Host $host;
  45. proxy_set_header X-Real-IP $remote_addr;
  46. }
  47. # Regex match requires at least one character after /scheduler/ so that
  48. # a bare /scheduler (Vue Router page) is never redirected here.
  49. location ~ ^/scheduler/.+ {
  50. rewrite ^/scheduler/(.*) /$1 break;
  51. proxy_pass http://scheduler:3011;
  52. proxy_set_header Host $host;
  53. proxy_set_header X-Real-IP $remote_addr;
  54. }
  55. }
  56. }