nginx.conf 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. proxy_read_timeout 300s;
  41. proxy_send_timeout 300s;
  42. }
  43. location ~ ^/feeds/.+ {
  44. rewrite ^/feeds/(.*) /$1 break;
  45. proxy_pass http://feed-aggregator:3010;
  46. proxy_set_header Host $host;
  47. proxy_set_header X-Real-IP $remote_addr;
  48. }
  49. # Regex match requires at least one character after /scheduler/ so that
  50. # a bare /scheduler (Vue Router page) is never redirected here.
  51. location ~ ^/scheduler/.+ {
  52. rewrite ^/scheduler/(.*) /$1 break;
  53. proxy_pass http://scheduler:3011;
  54. proxy_set_header Host $host;
  55. proxy_set_header X-Real-IP $remote_addr;
  56. }
  57. }
  58. }