| @@ -1,60 +1,131 @@ | |||
| worker_processes 1; | |||
| events { | |||
| worker_connections 1024; | |||
| } | |||
| http { | |||
| include mime.types; | |||
| default_type application/octet-stream; | |||
| sendfile on; | |||
| keepalive_timeout 65; | |||
| 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/; | |||
| } | |||
| location /label-studio { | |||
| rewrite ^/prod-api/(.*)$ /$1 break; | |||
| proxy_pass http://label-studio-ls-app.label-data.svc:80/; | |||
| proxy_hide_header X-Frame-Options; | |||
| add_header X-Frame-Options "ALLOW-FROM http://label-studio-ls-app.label-data.svc:80/"; | |||
| } | |||
| 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 / { | |||
| rewrite ^/prod-api/(.*)$ /$1 break; | |||
| root /home/ruoyi/projects/ruoyi-ui; | |||
| try_files $uri $uri/ /index.html; | |||
| index index.html index.htm; | |||
| } | |||
| 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; | |||
| } | |||
| } | |||
| } | |||
| 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:8080/projects/; | |||
| 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; | |||
| } | |||
| } | |||
| } | |||