From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 docker/frontend/nginx.conf |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 110 insertions(+), 0 deletions(-)

diff --git a/docker/frontend/nginx.conf b/docker/frontend/nginx.conf
new file mode 100644
index 0000000..cff4ac6
--- /dev/null
+++ b/docker/frontend/nginx.conf
@@ -0,0 +1,110 @@
+# cx-web锛歋PA 闈欐�佹墭绠� + /api銆�/websocket 鍙嶄唬 cx-gateway锛坈ompose 鏈嶅姟鍚嶇洿杩烇級
+# 鏈枃浠惰 compose 鎸傝浇鍒板鍣� /etc/nginx/conf.d/default.conf锛堥暅鍍忓唴浜︽湁鍚屼唤 COPY 鍏滃簳锛夛紱
+# 鐜板満鏀瑰弽浠�/寮� TLS 鐩存帴缂栬緫鍚� docker compose restart cx-web锛屾棤闇�閲嶆瀯寤洪暅鍍忋��
+
+server {
+    listen 80;
+    server_name _;
+
+    root  /usr/share/nginx/html;
+    index index.html;
+
+    # 涓婁紶缁� /api 鍙嶄唬锛堝垎鐗囦笂浼犲崟鐗囬粯璁ゅ嚑 MB锛屾斁瀹藉埌 512m 鍏滃簳鏁存枃浠剁洿浼犲満鏅級
+    client_max_body_size 512m;
+
+    gzip on;
+    gzip_min_length 1k;
+    gzip_types text/plain text/css application/javascript application/json
+               application/xml image/svg+xml font/woff2;
+
+    # 鍙橀噺 proxy_pass + docker 鍐呭祵 DNS 鎯版�цВ鏋愶細
+    #   鈶� gateway 瀹瑰櫒鏈捣鏃� nginx 涔熻兘姝e父鍚姩锛堥潤鎬� proxy_pass 浼氬湪鍚姩鏈熻В鏋愬け璐ョ洿鎺ラ��鍑猴級
+    #   鈶� gateway 閲嶅缓鎹� IP 鍚庢寜 valid=30s 閲嶆柊瑙f瀽锛屼笉浼氱紦瀛樻棫 IP 涓�鐩� 502
+    resolver 127.0.0.11 valid=30s ipv6=off;
+    set $gw http://cx-gateway:30000;
+
+    # API锛氬畬鏁磋矾寰勯�忎紶锛坧roxy_pass 涓哄彉閲忎笖涓嶅甫 URI => 鍘熸牱杞彂锛�/api 鍓嶇紑淇濈暀锛岀綉鍏虫寜鍓嶇紑璺敱锛�
+    # ^~锛氬懡涓鍓嶇紑鍚庝笉鍐嶅弬涓庢鍒欏尮閰嶁�斺�斿惁鍒� /api/file/Image/xxx.jpg 浼氳涓嬫柟
+    # 鎵╁睍鍚嶉暱缂撳瓨姝e垯鍔蛋褰撴湰鍦伴潤鎬佹枃浠舵壘鑰� 404锛堝浘鐗囬瑙堢粡 80 鍙嶄唬鐨勫満鏅紝2026-07-18 鐜板満瀹炶瘉锛�
+    location ^~ /api/ {
+        proxy_pass $gw;
+        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;
+        # 馃敶 2026-08-11 琛ワ細鏈� location 鍘熷厛娌¤璇昏秴鏃讹紝璧� nginx 榛樿 60s
+        #锛堥偅涓� 3600s 鍙啓鍦ㄤ笅鏂� /websocket/ 閲岋紝瀵� /api/ 涓嶇敓鏁堬級銆�
+        # 鍚庢灉锛氫换浣� /api/** 瓒呰繃 60 绉掑繀鐒� 504锛屼笖 nginx 鍙洖涓�涓嚜閫犵殑閿欒椤碉紝
+        # 鍓嶇鐪嬩笉鍒板悗绔殑浠讳綍淇℃伅銆傚疄娴嬫挒涓婄殑鏄�
+        # POST /api/workflow/operator/CandidateUser/0锛堥�夊鎵逛汉锛夐娆¤皟鐢紝
+        # nginx error log 鍘熸枃 "upstream timed out ... while reading response header"銆�
+        # 鍙� 300s 涓� Feign 鐨� client.config.default.readTimeout: 300000 瀵归綈
+        #锛坈onfig/shared/frame-config.yaml锛夛紝浣胯秴鏃跺垽瀹氬彂鐢熷湪鍚庣鑰岄潪 nginx鈥斺��
+        # 鍚庣瓒呮椂鑷冲皯鑳借惤鏃ュ織銆佽兘鍥炵粨鏋勫寲閿欒銆�
+        # 鈿狅笍 杩欏彧鏄笉璁╁畠 504锛�**娌℃湁瑙e喅"鎺ュ彛鎱�"鏈韩**锛�
+        # 娴佺▼鐩稿叧鎺ュ彛鍋忔參鏄棦鏈夐棶棰橈紝瀹氫綅涓庝紭鍖栬 tasks/todo.md 鐨勫緟浼樺寲绔犺妭銆�
+        proxy_read_timeout 300s;
+        proxy_send_timeout 300s;
+    }
+
+    # 鎶ヨ〃璁捐锛圲niver 鐗堬級锛氬墠绔� VITE_GLOB_REPORT_API_URL 鐢熶骇鏋勫缓涓虹┖锛屾姤琛ㄨ姹傝惤鍒版湰鍩�
+    # /api/Report锛岃�岀綉鍏� router.yaml 鏃犳璺敱锛堣鏈嶅姟鏄嫭绔嬪彂琛屽寘銆佷笉娉ㄥ唽 Nacos锛夆啋 404
+    # "No static resource api/Report."銆傛澶勬寜鏈�闀垮墠缂�浼樺厛锛堟瘮涓嬫柟 ^~ /api/ 鏇撮暱锛屼笌椤哄簭鏃犲叧锛�
+    # 鍗曠嫭鎴蛋锛岀洿杩炴湇鍔°��
+    # 鈿狅笍 涓存椂鑱旇皟鎬侊細鐜版寚鍚戝涓� java -jar 璧风殑 32000锛涘鍣ㄥ寲锛坈x-report锛夊悗鏀规垚 $gw 鍚屾
+    #    鍙橀噺褰㈠紡 http://cx-report:32000銆俬ost.docker.internal 璧板鍣� /etc/hosts锛�
+    #    鏁呮澶勭敤闈欐�� proxy_pass锛堝彉閲忓舰寮忎細缁曡繃 hosts 鐩存煡 DNS 瑙f瀽涓嶅埌锛夈��
+    location ^~ /api/Report {
+        proxy_pass http://host.docker.internal:32000;
+        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锛氬墠绔敓浜х幆澧冭繛 ${location.origin}/websocket/<token>锛�
+    # 缃戝叧瀹為檯璺敱鏄� /api/message/websocket/**锛�2026-07-17 curl 瀹炶瘉锛氬墠鑰� 200銆佸悗鑰� 101锛夛紝
+    # 鏁呴噸鍐欒ˉ鍓嶇紑鍐嶅弽浠o紙rewrite 鐨� URI 浼氭浛鎹� proxy_pass 杞彂璺緞锛�
+    location ^~ /websocket/ {
+        rewrite ^/websocket/(.*)$ /api/message/websocket/$1 break;
+        proxy_pass $gw;
+        proxy_http_version 1.1;
+        proxy_set_header Upgrade    $http_upgrade;
+        proxy_set_header Connection "upgrade";
+        proxy_set_header Host       $host;
+        proxy_read_timeout 3600s;
+        proxy_send_timeout 3600s;
+    }
+
+    # 杩愯鏃堕厤缃敞鍏ョ偣锛圴ITE_GLOB_* 涓夊湴鍧�锛夛細鏀规鏂囦欢鍏嶉噸鏋勫缓鐢熸晥锛岀粷涓嶈兘琚暱缂撳瓨
+    location = /_app.config.js {
+        add_header Cache-Control "no-cache";
+    }
+
+    # vite 浜х墿甯﹀唴瀹� hash锛堝垎甯冨湪 assets/ js/ css/ cdn/ 绛夌洰褰曪級锛屾寜鎵╁睍鍚嶉暱缂撳瓨锛�
+    # html 涓嶅湪鍒楋紙index.html 璧颁笅鏂� no-cache锛夛紱_app.config.js 鐢变笂鏂圭簿纭尮閰嶄紭鍏堝厹浣�
+    location ~* \.(js|mjs|css|woff2?|ttf|eot|png|jpe?g|gif|svg|ico|mp3|mp4)$ {
+        add_header Cache-Control "public, max-age=2592000, immutable";
+    }
+
+    # history 璺敱锛氬唴椤靛埛鏂�/鐩磋揪涓�寰嬪洖钀� index.html锛沬ndex 鏈韩涓嶇紦瀛橈紙鍙戠増鍗崇敓鏁堬級
+    location / {
+        try_files $uri $uri/ /index.html;
+        add_header Cache-Control "no-cache";
+    }
+}
+
+# 鈹�鈹� TLS锛堟湰鏈熶笉鍚敤锛岀幇鍦烘湁璇佷功鍚庝笁姝ュ紑鍚紝璇﹁浜や粯鍖� INSTALL.md 搂5锛夆攢鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+# 鈶� 璇佷功鏀惧埌浠撳簱/浜や粯鍖呮牴 docker/frontend/certs/{server.crt,server.key}
+# 鈶� docker-compose.yml 鐨� cx-web 瑙e紑 "443:443" 绔彛涓� certs 鎸傝浇涓よ娉ㄩ噴
+# 鈶� 瑙e紑涓嬫柟 server 鍧楁敞閲婂悗 docker compose restart cx-web
+#
+# server {
+#     listen 443 ssl;
+#     server_name _;
+#     ssl_certificate     /etc/nginx/certs/server.crt;
+#     ssl_certificate_key /etc/nginx/certs/server.key;
+#     ssl_protocols TLSv1.2 TLSv1.3;
+#
+#     # 涓� 80 绔彛 server 鍧椾繚鎸佷竴鑷达紙root/鍙嶄唬/缂撳瓨鍚� location 鍘熸牱澶嶅埗鍒版澶勶級
+# }

--
Gitblit v1.8.0