worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; client_max_body_size 20480m; error_log /var/log/nginx/error.log debug; server { listen 8000; server_name localhost; location /api/{ # rewrite ^/prod-api/(.*)$ /$1 break; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://ci4s-gateway-service.argo.svc:8082/; proxy_connect_timeout 500s; # 设置连接超时时间为 120 秒 proxy_read_timeout 500s; # 设置读取超时时间为 120 秒 proxy_send_timeout 500s; # 设置发送超时时间为 120 秒 } location /label-studio/ { # rewrite ^/label-studio/(.*)$ /$1 break; proxy_pass http://label-studio-service.argo.svc:9000/projects/; proxy_hide_header X-Frame-Options; add_header X-Frame-Options ALLOWALL; } location /minio/ { # rewrite ^/label-studio/(.*)$ /$1 break; proxy_pass http://juicefs-s3-gateway.juicefs.svc:9000/; proxy_hide_header X-Frame-Options; add_header X-Frame-Options ALLOWALL; } location /neo4j/ { # rewrite ^/label-studio/(.*)$ /$1 break; proxy_pass http://172.20.20.88:7474/; proxy_hide_header X-Frame-Options; add_header X-Frame-Options ALLOWALL; } location / { rewrite ^/prod-api/(.*)$ /$1 break; root /home/ruoyi/projects/ruoyi-ui; try_files $uri $uri/ /index.html; index index.html index.htm; } location /api/v1/model/ { proxy_pass http://pipeline-convert-service.argo.svc:80; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # location /api/v1/realtimeStatus { # proxy_pass http://argo-server.argo.svc:2746/api/v1/workflow-events/argo; # proxy_set_header REMOTE-HOST $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # } location /api/v1/tensorboard/show { # 提取查询参数中的 `svc` 值 set $svc ""; if ($arg_svc) { set $svc $arg_svc; } # 将请求转发到动态生成的内部服务地址 proxy_pass http://$svc.argo.svc:6006; # 传递必要的头信息 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 对于 WebSocket 应用很重要 proxy_buffering off; } location /api/v1/realtimeStatus { rewrite ^/api/v1/realtimeStatus(.*)$ /api/v1/workflow-events/argo$1 break; proxy_pass https://argo-server.argo.svc:2746; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 保留查询参数 proxy_set_header X-Original-URI $request_uri; # 禁用缓冲 proxy_buffering off; # 增加超时时间 proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_connect_timeout 60s; # 设置传递的请求头 # proxy_set_header Connection ''; # chunked_transfer_encoding off; # 如果需要保留自定义头部 proxy_set_header Accept 'text/event-stream'; } location /newlog/realtimeLog { proxy_pass http://loki.loki-log.svc:3100/loki/api/v1/tail; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location @router { rewrite ^.*$ /index.html last; } # 避免actuator暴露 if ($request_uri ~ "/actuator") { return 403; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }