Files
AIclinicalresearch/docs/05-部署文档/07-前端Nginx-SAE部署操作手册.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

31 KiB
Raw Blame History

<EFBFBD>滨垢 Nginx - SAE <20>函蔡<E587BD><EFBFBD><E6BBA2><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0
<EFBFBD>𥕦遣<EFBFBD>園𡢿: 2025-12-23
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: AIclinicalresearch 撟喳蝱<E596B3>滨垢<E6BBA8>滚𦛚
<EFBFBD>函蔡<EFBFBD><EFBFBD>: <20><EFBFBD>鈭?SAE嚗𠄎erverless 摨𠉛鍂撘閙<E69298>嚗? <EFBFBD>𨅯<EFBFBD>隞枏<EFBFBD>: <20><EFBFBD>鈭?ACR 銝芯犖<E88AAF>?


<EFBFBD><EFBFBD> <20><EFBFBD>

  1. [<5B>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>包(#1-<2D>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>?
  2. <EFBFBD>𨅯<EFBFBD>靽⊥<EFBFBD>蝖株恕
  3. <EFBFBD>𥕦遣SAE摨𠉛鍂
  4. <EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  5. [<5B>滨蔭<E6BBA8>亙熒璉<E78692><E79289>包(#5-<2D>滨蔭<E6BBA8>亙熒璉<E78692><E79289>?
  6. <EFBFBD>滨蔭<EFBFBD><EFBFBD>霈輸䔮
  7. <EFBFBD>函蔡摨𠉛鍂
  8. 撉諹<EFBFBD><EFBFBD>函蔡
  9. 撣貉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>埝䰻
  10. <EFBFBD>亙虜餈鞟輕

1. <20>滨蔭<E6BBA8>∩辣璉<E8BEA3><E79289>?

<EFBFBD>?<EFBFBD>函蔡<EFBFBD><EFBFBD>憿餃<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD>仿★ <EFBFBD><EFBFBD>? 霂湔<EFBFBD>
*ACR<EFBFBD>𨅯<EFBFBD>撌脫綫<EFBFBD>? <EFBFBD>𡢅<EFBFBD> <EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>嚗䫤crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.0`
*<EFBFBD>𡒊垢<EFBFBD>滚𦛚撌脤<EFBFBD>蝵? 漎? <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝡狽PC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>聢撘𧶏<EFBFBD>172.17.x.x:3001嚗?
*VPC蝵𤑳<EFBFBD>撌脣<EFBFBD>撱? <EFBFBD>𡢅<EFBFBD> VPC ID: vpc-2ze055cptkew9c38w4r06
鈭斗揢<EFBFBD>箏歇<EFBFBD>𥕦遣 <EFBFBD>𡢅<EFBFBD> 鈭斗揢<EFBFBD>?ID: vsw-2zevacop039bxrmj6yc0c (<28>舐鍂<E88890>慚)
摰匧<EFBFBD><EFBFBD><EFBFBD>𥕦遣 <EFBFBD>𡢅<EFBFBD> 摰匧<EFBFBD>蝏?ID: sg-2zedk6fi8sgmmcwdu7tu

<EFBFBD><EFBFBD> *<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵桐縑<EFBFBD>?

<EFBFBD><EFBFBD><EFBFBD>隞乩<EFBFBD>靽⊥<EFBFBD><EFBFBD><EFBFBD>函蔡餈<EFBFBD><EFBFBD>銝剝<EFBFBD><EFBFBD><EFBFBD>嚗?

# ACR <20>𨅯<EFBFBD>靽⊥<E99DBD>
ACR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏頣<EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com
<EFBFBD><EFBFBD>蝛粹𡢿: ai-clinical
<EFBFBD>𨅯<EFBFBD><EFBFBD>滨妍: ai-clinical_frontend-nginx
<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0.0

# VPC蝵𤑳<E89DB5>靽⊥<E99DBD>
VPC ID: vpc-2ze055cptkew9c38w4r06
鈭斗揢<EFBFBD>截D: vsw-2zevacop039bxrmj6yc0c
摰匧<EFBFBD><EFBFBD>D: sg-2zedk6fi8sgmmcwdu7tu

# <20>𡒊垢<F0A1928A>滚𦛚靽⊥<E99DBD><EFBFBD><E59A97><EFBFBD>𡒊垢SAE摨𠉛鍂<F0A0899B><EFBFBD>嚗?
<EFBFBD>𡒊垢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?72.17.x.x嚗?
<EFBFBD>𡒊垢蝡臬藁: 3001

2. <20>𨅯<EFBFBD>靽⊥<E99DBD>蝖株恕

<EFBFBD>𣑐 ACR <20>𨅯<EFBFBD>霂行<E99C82>

<EFBFBD>滚𦛚蝐餃<EFBFBD>: 銝芯犖<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滩晶嚗?
<EFBFBD><EFBFBD>蝛粹𡢿: ai-clinical
隞枏<EFBFBD><EFBFBD>滨妍: ai-clinical_frontend-nginx

<EFBFBD>𨅯<EFBFBD>摰峕㟲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏頣<EFBFBD>:
  crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.0

<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>:
  - v1.0.0 (<28>煺漣<E785BA><E6BCA3>𧋦嚗𩥇igest: 68e97e28...)
  - latest (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59581>?

<EFBFBD>𨅯<EFBFBD>憭批<EFBFBD>: 91.9 MB
<EFBFBD><EFBFBD><EFBFBD>園𡢿: 2025-12-23

<EFBFBD><EFBFBD> 撉諹<EFBFBD><EFBFBD>𨅯<EFBFBD>摮睃銁

<EFBFBD><EFBFBD>ACR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>https://cr.console.aliyun.com/

  1. 餈𥕦<EFBFBD><EFBFBD>𣂷葵鈭箇<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摨瓐<EFBFBD>?
  2. <EFBFBD><EFBFBD> ai-clinical_frontend-nginx
  3. 蝖株恕摮睃銁 v1.0.0 <20><>

3. <20>𥕦遣SAE摨𠉛鍂

<EFBFBD><EFBFBD> *<EFBFBD><EFBFBD>SAE<EFBFBD><EFBFBD><EFBFBD>?

霈輸䔮嚗冴ttps://sae.console.aliyun.com/

<EFBFBD>㗇𥋘<EFBFBD><EFBFBD>嚗?*<2A>𤾸<EFBFBD>2嚗<32><E59A97>鈭穿<E988AD>**

<EFBFBD><EFBFBD> *<EFBFBD>𥕦遣<EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD>孵稬<EFBFBD>𣂼<EFBFBD>撱箏<EFBFBD><EFBFBD><EFBFBD>𡢅<EFBFBD><EFBFBD>劐誑銝𧢲郊撉文<EFBFBD><EFBFBD>

*甇仿炊1嚗𡁜<EFBFBD><EFBFBD>典抅<EFBFBD>砌縑<EFBFBD>?

摨𠉛鍂<EFBFBD>滨妍: frontend-nginx-service
摨𠉛鍂<EFBFBD>讛膩: AI銝游<EFBFBD><EFBFBD>𠉛弦撟喳蝱 - <20>滨垢<E6BBA8><EFBFBD><E8B9B1><EFBFBD>皞鞉<E79A9E><E99E89><EFBFBD>React SPA + Nginx嚗?
<EFBFBD><EFBFBD>蝛粹𡢿: 暺䁅恕<EFBFBD><EFBFBD>蝛粹𡢿嚗<EFBFBD><EFBFBD>銝𤾸<EFBFBD>蝡臬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝛粹𡢿嚗?

*甇仿炊2嚗𡁜<EFBFBD><EFBFBD><EFBFBD>蝵脫䲮撘?

<EFBFBD>函蔡<EFBFBD><EFBFBD>: <EFBFBD>𨅯<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>霂剛<EFBFBD>: 銝漤<EFBFBD>

*甇仿炊3嚗𡁜<EFBFBD><EFBFBD><EFBFBD>靘贝<EFBFBD><EFBFBD>?

摰硺<EFBFBD><EFBFBD>: 0.5<EFBFBD>?1GB
  
  霂湔<EFBFBD>嚗?
  - <EFBFBD>滨垢Nginx<EFBFBD>删鍂韏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  - 0.5<EFBFBD>?GB摰<42><E691B0>憭毺鍂
  - 撖寞<EFBFBD>嚗𡁜<EFBFBD>蝡舫<EFBFBD>閬?<3F>?GB嚗釶ython<6F><6E>閬?<3F>?GB

摰硺<EFBFBD><EFBFBD><EFBFBD>: 2
  
  霂湔<EFBFBD>嚗?
  - <EFBFBD><EFBFBD>撠?銝芸<E98A9D>靘衤<E99D98><EFBFBD><E99C82><EFBFBD>舐鍂
  - 1銝芸<EFBFBD>靘𧢲<EFBFBD><EFBFBD>𨀣𧒄嚗<EFBFBD>𡖂1銝芰誧蝏剜<EFBFBD><EFBFBD>?
  - <EFBFBD>滨垢敺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰?

*銝箔<EFBFBD><EFBFBD><EFBFBD>蝡臬蘨<EFBFBD><EFBFBD>閬?.5<EFBFBD>?GB嚗?

<EFBFBD>滚𦛚蝐餃<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
Node.js <20>𡒊垢 2<EFBFBD>?GB <EFBFBD><EFBFBD>AI撖寡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>亥砭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Python 敺格<E695BA><E6A0BC>? 2<EFBFBD>?GB PDF<EFBFBD>𣂼<EFBFBD><EFBFBD>浚PU撖<EFBFBD><EFBFBD><EFBFBD>𧢲<EFBFBD>雿?
Nginx <20>滨垢 0.5<EFBFBD>?GB *<EFBFBD><EFBFBD>靘偦<EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞塚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>撠?

甇仿炊4嚗间PC蝵𤑳<EFBFBD><EFBFBD>滨蔭

VPC: vpc-2ze055cptkew9c38w4r06 (172.17.0.0/16)

鈭斗揢<EFBFBD>? vsw-2zevacop039bxrmj6yc0c
  <EFBFBD>舐鍂<EFBFBD>? <20>𤾸<EFBFBD>2<EFBFBD>舐鍂<E88890>
  蝵烐挾: 172.17.0.0/24

摰匧<EFBFBD>蝏? sg-2zedk6fi8sgmmcwdu7tu
  
  <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>嚗𡁜<E59A97>憿颱<E686BF><E9A2B1>𡒊垢<F0A1928A>滚𦛚<E6BB9A><EFBFBD><EFBFBD>VPC嚗<43><EFBFBD><EFBFBD>瘜閖<E7989C>帋縑

*甇仿炊5嚗𡁻<EFBFBD><EFBFBD><EFBFBD>蝵?

<EFBFBD>𨅯<EFBFBD>蝐餃<EFBFBD>: 摰孵膥<EFBFBD>𨅯<EFBFBD><EFBFBD>滚𦛚銝芯犖<EFBFBD>?

<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.0
  
  <EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>鈭钅★嚗?
  - 雿輻鍂銝𤘪<EFBFBD>蝵𤑳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蒂-vpc<70>𡒊<EFBFBD>嚗㚁<E59A97>銝滢蝙<E6BBA2><EFBFBD>蝵穃<E89DB5><E7A983>?
  - 摰峕㟲颲枏<EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>砍𦶢<EFBFBD>滨征<EFBFBD><EFBFBD><EFBFBD><EFBFBD>倌嚗?
  - 銝滩<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦<EFBFBD>?:v1.0.0

<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0.0

<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>蝑𣇉裦: <EFBFBD>餅糓<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>嚗㇁lways嚗?
  
  霂湔<EFBFBD>嚗?
  - 瘥𤩺活<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>𡝗<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  - 蝖桐<EFBFBD>雿輻鍂<EFBFBD><EFBFBD><EFBFBD>唬誨<EFBFBD>?
  - <EFBFBD><EFBFBD>雿輻鍂蝻枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>

*甇仿炊6嚗𡁜<EFBFBD><EFBFBD>典捆<EFBFBD><EFBFBD>蝵?

摰孵膥蝡臬藁: 80
  
  霂湔<EFBFBD>嚗?
  - Nginx暺䁅恕<EFBFBD>穃𨯬80蝡臬藁
  - 銝𥟠ockerfile銝剔<EFBFBD>EXPOSE 80銝<30><E98A9D>?

<EFBFBD>讛悅: TCP

<EFBFBD>臬𢆡<EFBFBD>賭誘: 
  - 銝滚<EFBFBD><EFBFBD>求ockerfile銝剔<EFBFBD>ENTRYPOINT嚗?

撌乩<EFBFBD><EFBFBD><EFBFBD>:
  - 銝滚<EFBFBD><EFBFBD>求ockerfile銝剔<EFBFBD>WORKDIR嚗?

4. <20>滨蔭<E6BBA8><EFBFBD><E887AC><EFBFBD>

<EFBFBD>𩤃<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗𡁜<EFBFBD>蝡舀<EFBFBD><EFBFBD>𧑐<EFBFBD><EFBFBD><EFBFBD>滨蔭

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭<EFBFBD>躰秤<EFBFBD><EFBFBD>撣貉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脣仃韐亙<EFBFBD><EFBFBD>𩤃<EFBFBD>

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>𡒊垢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD>蝵桀<EFBFBD>蝡臭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝡舐<EFBFBD>VPC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. <EFBFBD><EFBFBD> SAE <20><EFBFBD><E689B9>?
  2. 餈𥕦<EFBFBD>摨𠉛鍂<EFBFBD>𡑒”
  3. <EFBFBD><EFBFBD> nodejs-backend-service<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝡臬<EFBFBD><EFBFBD><EFBFBD>蝘堆<EFBFBD>
  4. <EFBFBD>孵稬餈𥕦<EFBFBD>摨𠉛鍂霂行<EFBFBD>
  5. <EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>刻挪<EFBFBD><EFBFBD>蝵柴<EFBFBD><EFBFBD><EFBFBD>𨧞PC<EFBFBD><EFBFBD><EFBFBD>霈輸䔮<EFBFBD><EFBFBD><EFBFBD>?

蝷箔<EFBFBD><EFBFBD><EFBFBD>嚗?

172.17.0.15:3001

<EFBFBD>P<EFBFBD><EFBFBD><EFBFBD>𣬚垢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>怨扇敶蓥<EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD>滨蔭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>沒AE摨𠉛鍂<EFBFBD>滨蔭憿菟𢒰嚗峕𪄳<EFBFBD><EFBFBD>鞟㴓憓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵桅★嚗?

# 敹<><E695B9><EFBFBD>滨蔭嚗<E894AD><E59A97>憛恬<E6869B>
BACKEND_SERVICE_HOST: 172.17.0.15
  
  霂湔<EFBFBD>嚗?
  - 餈蹱糓<EFBFBD>𡒊垢<EFBFBD>滚𦛚<EFBFBD><EFBFBD>PC<EFBFBD><EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝𠹺<EFBFBD>甇亥繮<EFBFBD><EFBFBD>
  - 銝滩<EFBFBD><EFBFBD>㗖ttp://<2F><EFBFBD>
  - 銝滩<EFBFBD><EFBFBD><EFBFBD>鉄蝡臬藁<EFBFBD>?
  - <EFBFBD><EFBFBD>銝漤<EFBFBD>蝵殷<EFBFBD>摰孵膥<EFBFBD>臬𢆡隡𡁜仃韐亙僎<EFBFBD>仿<EFBFBD>

# <20><EFBFBD><EFBFBD>蝵殷<E89DB5><E6AEB7><EFBFBD>霈文<E99C88><EFBFBD>
BACKEND_SERVICE_PORT: 3001
  
  霂湔<EFBFBD>嚗?
  - <EFBFBD>𡒊垢<EFBFBD>滚𦛚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  - 暺䁅恕<EFBFBD>潭糓3001
  - <EFBFBD><EFBFBD>雿删<EFBFBD><EFBFBD>𡒊垢雿輻鍂<EFBFBD><EFBFBD>蝡臬藁嚗屸<EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD>?撣貉<EFBFBD><EFBFBD>躰秤

<EFBFBD>躰秤<EFBFBD>滨蔭 <EFBFBD><EFBFBD>滨蔭 霂湔<EFBFBD>
http://172.17.0.15 172.17.0.15 銝滩<EFBFBD><EFBFBD><EFBFBD>霈桀<EFBFBD><EFBFBD>
172.17.0.15:3001 172.17.0.15 銝滩<EFBFBD><EFBFBD><EFBFBD>鉄蝡臬藁嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵殷<EFBFBD>
backend-service 172.17.0.15 <EFBFBD>◆雿輻鍂IP嚗䔶<EFBFBD><EFBFBD>鍂銝餅㦤<EFBFBD>?
localhost 172.17.0.15 銝滩<EFBFBD><EFBFBD>甸ocalhost
銝漤<EFBFBD>蝵? 172.17.0.15 <EFBFBD><EFBFBD>滨蔭嚗<EFBFBD><EFBFBD>坔鍳<EFBFBD>典仃韐?

<EFBFBD>?<EFBFBD>滨蔭撉諹<EFBFBD>

<EFBFBD>滨蔭摰峕<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD>孵稬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡢅<EFBFBD>蝖桐<EFBFBD>嚗?

  • <EFBFBD>?<3F><EFBFBD><E3979B>滨妍<E6BBA8><EFBFBD><EFBFBD><EFBC86><EFBFBD><E8BAB9>之撠誩<E692A0>嚗?
  • <EFBFBD>?<3F><EFBFBD><E3979B>潭聢撘𤩺迤蝖殷<E89D96>蝥涅P<E6B685><EFBFBD>嚗?
  • <EFBFBD>?瘝⊥<E7989D>憭帋<E686AD><E5B88B><EFBFBD><EFBFBD>?

5. <20>滨蔭<E6BBA8>亙熒璉<E78692><E79289>?

<EFBFBD>蘂 *<EFBFBD>亙熒璉<EFBFBD><EFBFBD>仿<EFBFBD>蝵?

<EFBFBD><EFBFBD>交䲮撘? HTTP 霂瑟<E99C82>

<EFBFBD><EFBFBD>亥楝敺? /health
  
  霂湔<EFBFBD>嚗?
  - Nginx<EFBFBD>滨蔭銝凋<EFBFBD><EFBFBD><EFBFBD>靘𤤿<EFBFBD><EFBFBD>亙熒璉<EFBFBD><EFBFBD>亦垢<EFBFBD>?
  - 餈𥪜<EFBFBD>蝥舀<EFBFBD><EFBFBD>?"healthy"
  - 銝滢<EFBFBD>韏硋<EFBFBD>蝡舀<EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD>亦垢<EFBFBD>? 80
  霂湔<EFBFBD>嚗帋<EFBFBD>摰孵膥蝡臬藁銝<EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD><EFBFBD>霈? HTTP
  霂湔<EFBFBD>嚗帋<EFBFBD><EFBFBD>浹TTPS

<EFBFBD>𧒄<EFBFBD>園𡢿: 3蝘?
  霂湔<EFBFBD>嚗𡁻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3蝘坿雲憭?

<EFBFBD><EFBFBD>仿𡢿<EFBFBD>? 10蝘?
  霂湔<EFBFBD>嚗𡁏<EFBFBD>10蝘埝<EFBFBD><EFBFBD><EFBFBD>甈?

銝滚<EFBFBD>摨琿<EFBFBD><EFBFBD>? 3甈?
  霂湔<EFBFBD>嚗朞<EFBFBD>蝏剖仃韐?甈<E79488><E288AA><EFBFBD>扇銝箔<E98A9D><E7AE94>亙熒

<EFBFBD>亙熒<EFBFBD><EFBFBD><EFBFBD>? 2甈?
  霂湔<EFBFBD>嚗朞<EFBFBD>蝏剜<EFBFBD><EFBFBD>?甈<E79488><E288AA><EFBFBD>扇銝箏<E98A9D>摨?

<EFBFBD><EFBFBD>撱嗉<EFBFBD>: 30蝘?
  霂湔<EFBFBD>嚗?
  - Nginx<EFBFBD>臬𢆡敺<EFBFBD>翰嚗?-10蝘𡜐<E89D98>
  - 30蝘坿雲憭罸<EFBFBD><EFBFBD>𤩺<EFBFBD><EFBFBD><EFBFBD>摰孵膥<EFBFBD>臬𢆡

<EFBFBD><EFBFBD> *<EFBFBD>亙熒璉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

SAE<EFBFBD>亙熒璉<EFBFBD><EFBFBD>亙膥
    <20>?(瘥?0蝘?
curl http://摰孵膥IP:80/health
    <20>?
Nginx憭<78><E686AD> /health 霂瑟<E99C82>
    <20>?
餈𥪜<E9A488>: HTTP 200 + "healthy"
    <20>?
SAE<41><45>扇摰硺<E691B0>銝箏<E98A9D>摨?<3F>?

<EFBFBD><EFBFBD><EFBFBD>亙熒璉<EFBFBD><EFBFBD>亙仃韐伐<EFBFBD>SAE隡𡄯<EFBFBD>

  1. <EFBFBD><EFBFBD>扇摰硺<EFBFBD>銝箔<EFBFBD><EFBFBD>亙熒
  2. <EFBFBD>𨀣迫<EFBFBD>𤏸砲摰硺<EFBFBD>頧砍<EFBFBD><EFBFBD><EFBFBD>
  3. 餈䂿賒憭梯揖3甈<EFBFBD>嚗屸<EFBFBD><EFBFBD>臬捆<EFBFBD>?

6. <20>滨蔭<E6BBA8><EFBFBD>霈輸䔮

<EFBFBD><EFBFBD> 霈輸䔮<EFBFBD><EFBFBD><EFBFBD>㗇𥋘

<EFBFBD><EFBFBD>A嚗帋蝙<EFBFBD>沒AE<EFBFBD>𣂷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞟鍂鈭擧<EFBFBD>霂𤏪<EFBFBD>

<EFBFBD>滨蔭<EFBFBD><EFBFBD>: 
  1. <20><EFBFBD><E585B8><EFBFBD>蝵桅△<E6A185>𪄳<EFBCB8><EFBFBD>𣂼<EFBFBD><F0A382BC>刻挪<E588BB><EFBFBD>蝵柴<E89DB5>?
  2. 撘<><E69298><EFBFBD>𣂼<EFBFBD>蝵𤏸挪<F0A48FB8><EFBFBD>?
  3. SAE<41>芸𢆡<E88AB8><F0A286A1><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀𧑐<EFBFBD><EFBFBD>:
  <EFBFBD><EFBFBD>: frontend-nginx-service-xxxxx.cn-beijing.sae.aliyuncs.com
  <EFBFBD>讛悅: HTTPS嚗𠄎AE<EFBFBD>芸𢆡<EFBFBD>滨蔭霂<EFBFBD>髡嚗?
  
隡条<EFBFBD>:
  - <EFBFBD>?<3F>滩晶
  - <EFBFBD>?<3F>芸𢆡HTTPS
  - <EFBFBD>?蝡见朖<E8A781>舐鍂
  
蝻箇<EFBFBD>:
  - <EFBFBD>?<3F><EFBFBD><E7AC94>曇扇
  - <EFBFBD>?<3F><EFBFBD><E4ADBE><EFBFBD>銋匧<E98A8B><E58CA7>?
  - <EFBFBD>?霂<><EFBFBD>特AE<41><45><EFBFBD>銝齿糓雿删<E99BBF><E588A0><EFBFBD>

<EFBFBD><EFBFBD>B嚗𡁶<EFBFBD>摰朞䌊摰帋<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞟鍂鈭𡒊<EFBFBD>鈭改<EFBFBD>

<EFBFBD>滨蔭<EFBFBD>∩辣:
  - 撌脫<EFBFBD><EFBFBD>芸楛<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>憒?app.yizheng.ai嚗?
  - <EFBFBD><EFBFBD>撌脣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滚𦛚<EFBFBD>典銁銝剖𤙴憭折<EFBFBD>嚗?
  - <EFBFBD>农SL霂<EFBFBD>髡嚗<EFBFBD>虾隞乩蝙<EFBFBD><EFBFBD>韐寧<EFBFBD>Let's Encrypt嚗?

<EFBFBD>滨蔭甇仿炊:
  1. <20><EFBFBD><E585B8>齿<EFBFBD><E9BDBF><EFBFBD>瘛餃<E7989B>CNAME閫<45><E996AB>
     app.yizheng.ai <20>?frontend-nginx-service-xxxxx.cn-beijing.sae.aliyuncs.com
  
  2. <20>沒AE<41><EFBFBD><E689B9><EFBFBD>摰𡁜<E691B0><F0A1819C>?
     <EFBFBD>𣂼<EFBFBD><EFBFBD>刻挪<EFBFBD><EFBFBD>蝵柴<EFBFBD><EFBFBD><EFBFBD>鞱䌊摰帋<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉溶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  
  3. 銝𠹺<E98A9D>SSL霂<4C>
     <EFBFBD>𣂼<EFBFBD><EFBFBD>刻挪<EFBFBD><EFBFBD>蝵柴<EFBFBD><EFBFBD><EFBFBD>躭TTPS霈曄蔭<EFBFBD><EFBFBD><EFBFBD>𣂷<EFBFBD>隡㰘<EFBFBD>銋艾<EFBFBD>?
  
  4. <20>舐鍂撘箏<E69298>HTTPS
     <EFBFBD><EFBFBD><EFBFBD>𣂼撩<EFBFBD>象TTPS頝唾蓮<EFBFBD>?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀𧑐<EFBFBD><EFBFBD>:
  https://app.yizheng.ai

隡条<EFBFBD>:
  - <EFBFBD>?<3F><><EFBFBD><EFBFBD><EFBFBD>
  - <EFBFBD>?<3F><EFBFBD>靽∩遙摨阡<E691A8>
  - <EFBFBD>?SEO<45>见末
  
蝻箇<EFBFBD>:
  - <EFBFBD>𩤃<EFBFBD> <20><><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>
  - <EFBFBD>𩤃<EFBFBD> <20><><EFBFBD>CP憭<50><E686AD><EFBFBD><E59A97><EFBFBD>𨅯銁銝剖𤙴嚗?

<EFBFBD><EFBFBD> HTTPS<EFBFBD>滨蔭嚗<EFBFBD><EFBFBD>鈭抒㴓憓<EFBFBD><EFBFBD>憿鳴<EFBFBD>

<EFBFBD><EFBFBD>雿輻鍂<EFBFBD><EFBFBD>B嚗<EFBFBD>䌊摰帋<EFBFBD><EFBFBD><EFBFBD>嚗㚁<EFBFBD>撘箇<EFBFBD>撱箄悅<EFBFBD>滨蔭HTTPS嚗?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㗇𥋘:
  
  <EFBFBD><EFBFBD>1: 雿輻鍂<EFBFBD>滩晶<EFBFBD><EFBFBD>et's Encrypt霂<74>
    - <EFBFBD><EFBFBD>鈭騌SL霂<EFBFBD><EFBFBD>滚𦛚<EFBFBD>臭誑<EFBFBD>唾窈<EFBFBD>滩晶霂<EFBFBD>
    - <EFBFBD><EFBFBD><EFBFBD>?銝芣<E98A9D>嚗屸<E59A97><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>?
  
  <EFBFBD><EFBFBD>2: 韐凋僭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
    - <EFBFBD><EFBFBD><EFBFBD>?撟?
    - <EFBFBD><EFBFBD><EFBFBD>靽∩遙摨行凒擃?
    - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD>滨蔭:
  1. <20><><EFBFBD><EFBFBD><EFBFBD><E9ABA1>
     - <EFBFBD><EFBFBD><EFBFBD>辣嚗飱omain.crt <20>?domain.pem
     - <EFBFBD>𤨎<EFBFBD><EFBFBD>辣嚗飱omain.key
  
  2. <20>沒AE銝𠹺<E98A9D><EFBFBD>
     <EFBFBD>𣂼<EFBFBD><EFBFBD>刻挪<EFBFBD><EFBFBD>蝵柴<EFBFBD><EFBFBD><EFBFBD>躭TTPS霈曄蔭<EFBFBD><EFBFBD><EFBFBD>𣂷<EFBFBD>隡㰘<EFBFBD>銋艾<EFBFBD>?
  
  3. <20>舐鍂撘箏<E69298>HTTPS
     <EFBFBD><EFBFBD><EFBFBD>躭TTP<EFBFBD>芸𢆡頝唾蓮HTTPS<EFBFBD>?

7. <20>函蔡摨𠉛鍂

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>函蔡

蝖株恕<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵格<EFBFBD>霂臬<EFBFBD>嚗?

  1. <EFBFBD>𧼮<EFBFBD>摨𠉛鍂<EFBFBD>滨蔭憿菟𢒰憿園<EFBFBD>
  2. <EFBFBD>孵稬<EFBFBD><EFBFBD>蝵脯<EFBFBD><EFBFBD><EFBFBD>?
  3. 蝖株恕<EFBFBD>函蔡靽⊥<EFBFBD>
  4. <EFBFBD>孵稬<EFBFBD>摰𠾼<EFBFBD>?

<EFBFBD><EFBFBD> *<EFBFBD>函蔡餈<EFBFBD><EFBFBD><EFBFBD>漲2-3<><33><EFBFBD>嚗?

1. <20>𨅯<EFBFBD><F0A885AF><EFBFBD><E58CA7>嗆挾 (30-60蝘?
   <20><EFBFBD> SAE餈墧𦻖<E5A2A7>蚊CR
   <20><EFBFBD> 撉諹<E69289><E8ABB9>𨅯<EFBFBD>摮睃銁
   <20><EFBFBD> 銝贝蝸<E8B49D>𨅯<EFBFBD><EFBFBD><E69285>91.9MB嚗?
   <20><EFBFBD><><E996AB><EFBFBD>𨅯<EFBFBD>

2. 摰孵膥<E5ADB5>臬𢆡<E887AC>嗆挾 (10-20蝘?
   <20><EFBFBD> <20>𥕦遣摰孵膥
   <20><EFBFBD> 瘜典<E7989C><E585B8><EFBFBD><E887AC><EFBFBD>
   <20><EFBFBD> <20><EFBFBD>docker-entrypoint.sh
   <20><EFBFBD> envsubst<73>踵揢nginx.conf
   <20><EFBFBD> 撉諹<E69289>Nginx<6E>滨蔭
   <20><EFBFBD> <20>臬𢆡Nginx餈𤤿<E9A488>

3. <20>亙熒璉<E78692><E79289>仿𧫴畾?(30-60蝘?
   <20><EFBFBD> 蝑匧<E89D91>30蝘𡜐<E89D98><F0A19C90><EFBFBD>撱嗉<E692B1>嚗?
   <20><EFBFBD> 蝚?甈⊥<E79488><E28AA5>?/health
   <20><EFBFBD> 蝚?甈⊥<E79488><E28AA5>?/health嚗?0蝘鍦<E89D98>嚗?
   <20><EFBFBD> <20><>扇銝箏<E98A9D>摨?<3F>?

4. 瘚<><E7989A><EFBFBD><EFBFBD><EFBFBD>嗆挾 (5-10蝘?
   <20><EFBFBD><>鰵摰硺<E691B0><E7A1BA><EFBFBD>韐蠘蝸<E8A098><E89DB8><20><EFBFBD> 隞舘<E99A9E>頧賢<E9A0A7>銵∠宏<E288A0>斗唂摰硺<E691B0>
   <20><EFBFBD> <20>函蔡摰峕<E691B0> <20>?

<EFBFBD><EFBFBD> *<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD>函蔡餈<EFBFBD><EFBFBD>銝剖虾隞亙<EFBFBD><EFBFBD>嗆䰻<EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  <EFBFBD>𣂼<EFBFBD><EFBFBD>刻祕<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD>靘见<EFBFBD>銵具<EFBFBD><EFBFBD><EFBFBD>鞉䰻<EFBFBD><EFBFBD>靘讠𠶖<EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  - <EFBFBD>𥕦遣銝? 甇<><EFBFBD><EFBFBD><E58CA7>𨅯<EFBFBD>
  - <EFBFBD>臬𢆡銝? 甇<><EFBFBD>臬𢆡摰孵膥
  - 餈鞱<EFBFBD>銝? 摰孵膥撌脣鍳<E884A3><EFBFBD>蝑匧<E89D91><E58CA7>亙熒璉<E78692><E79289>?
  - <EFBFBD>亙熒: <EFBFBD>亙熒璉<EFBFBD><EFBFBD>仿<EFBFBD><EFBFBD><EFBFBD>虾隞交𦻖<EFBFBD><EFBFBD><EFBFBD>?<3F>?
  - 銝滚<EFBFBD>摨? <20>亙熒璉<E78692><E79289>亙仃韐?<3F>?
  - <EFBFBD>𨀣迫: 摰硺<EFBFBD>撌脣<EFBFBD>甇?

<EFBFBD>?<EFBFBD>函蔡憭梯揖撣貉<EFBFBD><EFBFBD><EFBFBD>

憭梯揖<EFBFBD>嗆挾 <EFBFBD>躰秤靽⊥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD> image not found <EFBFBD><EFBFBD>仿<EFBFBD><EFBFBD>誩𧑐<EFBFBD><EFBFBD><EFBFBD>臬炏甇<EFBFBD>嚗𣬚霈支蝙<EFBFBD>?vpc<70><EFBFBD>
<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD> unauthorized <EFBFBD><EFBFBD>丕CR霈輸䔮<EFBFBD><EFBFBD><EFBFBD>嚗𣬚霈又AE<EFBFBD><EFBFBD><EFBFBD>𡝗<EFBFBD><EFBFBD>?
摰孵膥<EFBFBD>臬𢆡 BACKEND_SERVICE_HOST required <EFBFBD><EFBFBD>亦㴓憓<EFBFBD><EFBFBD><EFBFBD>𤩺糓<EFBFBD><EFBFBD>蝵?
<EFBFBD>亙熒璉<EFBFBD><EFBFBD>? connection refused <EFBFBD><EFBFBD>亙捆<EFBFBD>函垢<EFBFBD><EFBFBD><EFBFBD>蝵殷<EFBFBD>摨磰砲<EFBFBD>?0嚗?
<EFBFBD>亙熒璉<EFBFBD><EFBFBD>? 404 not found <EFBFBD><EFBFBD><EFBFBD>摨瑟<EFBFBD><EFBFBD>亥楝敺<EFBFBD><EFBFBD>摨磰砲<EFBFBD>?health嚗?

8. 撉諹<E69289><E8ABB9>函蔡

<EFBFBD>?撉諹<EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>函蔡<EFBFBD>𣂼<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD>劐誑銝𧢲郊撉日<EFBFBD><EFBFBD><EFBFBD>

*甇仿炊1嚗𡁏䰻<EFBFBD><EFBFBD>靘讠𠶖<EFBFBD>?

雿滨蔭: <20>𣂼<EFBFBD><F0A382BC>刻祕<E588BB><E7A595><EFBFBD><EFBFBD><E78897>𣂼<EFBFBD>靘见<E99D98>銵具<E98AB5>?

璉<><E79289>仿★:
  <20>𡢅<EFBFBD> 摰硺<E691B0><E7A1BA><EFBFBD>: 2銝芸<E98A9D>靘?
  <20>𡢅<EFBFBD> 摰硺<E691B0><E7A1BA><EFBFBD>? <20><EFBFBD><E588B8>曄內"<22>亙熒"
  <20>𡢅<EFBFBD> <20>亙熒璉<E78692><E79289>? <20><EFBFBD><E588B8><EFBFBD>

*甇仿炊2嚗𡁏䰻<EFBFBD>见鍳<EFBFBD>冽𠯫敹?

雿滨蔭: <20>𣂼<EFBFBD><F0A382BC>刻祕<E588BB><E7A595><EFBFBD><EFBFBD><E78897>鞉𠯫敹𨰜<E695B9><EFBFBD><E78897>𣂼<EFBFBD><F0A382BC>嗆𠯫敹𨰜<E695B9>?

摨磰砲<E7A3B0><EFBFBD>:
============================================
Starting Frontend Nginx Service
Backend Service: 172.17.0.15:3001
Container Timezone: Asia/Shanghai
Current Time: Tue Dec 23 21:07:35 CST 2025
============================================
nginx: configuration file /etc/nginx/nginx.conf test is successful

<0A>?憒<><E68692><EFBFBD><EFBFBD>隞乩<E99A9E><E4B9A9><EFBFBD>嚗諹秩<E8ABB9>𡡞<EFBFBD>蝵格迤蝖?
<0A>?憒<><E68692><EFBFBD><EFBFBD> "BACKEND_SERVICE_HOST required"嚗諹秩<EFBFBD>𡒊㴓憓<EFBFBD><EFBFBD><EFBFBD>𤩺𧊋<EFBFBD>滨蔭

*甇仿炊3嚗𡁏<EFBFBD>霂訫<EFBFBD>摨瑟<EFBFBD><EFBFBD>亦垢<EFBFBD>?

# <20><EFBFBD><E79195><EFBFBD>霈輸䔮<E8BCB8><EFBFBD>
<0A><EFBFBD><E7A589><EFBFBD>: https://frontend-nginx-service-xxxxx.cn-beijing.sae.aliyuncs.com

# 瘚贝<E7989A><E8B49D>亙熒璉<E78692><E79289><EFBFBD>雿輻鍂瘚讛<E7989A><E8AE9B><EFBFBD>curl嚗?
霈輸䔮: https://frontend-nginx-service-xxxxx.cn-beijing.sae.aliyuncs.com/health

憸<><E686B8>餈𥪜<E9A488>:
  Status: 200 OK
  Content: healthy

<0A>?憒<><E68692>餈𥪜<E9A488> "healthy"嚗諹秩<EFBFBD>𤾸<EFBFBD>蝡舀<EFBFBD><EFBFBD>⊥迤撣?

*甇仿炊4嚗𡁏<EFBFBD>霂蓥蜓憿菔挪<EFBFBD>?

# 霈輸䔮銝駁△
霈輸䔮: https://frontend-nginx-service-xxxxx.cn-beijing.sae.aliyuncs.com/

璉<><E79289>仿★:
  <20>𡢅<EFBFBD> 憿菟𢒰<E88F9F>賣迤撣詨<E692A3>頧踝<E9A0A7>銝齿糓蝛箇蒾憿蛛<E686BF>
  <20>𡢅<EFBFBD> <20><EFBFBD>React摨𠉛鍂<F0A0899B>屸𢒰
  <20>𡢅<EFBFBD> CSS<53><EFBFBD><EFBFBD><EFBFBD>曄內
  <20>𡢅<EFBFBD> JavaScript甇<74><EFBFBD><EFBFBD>

甇仿炊5嚗𡁏<EFBFBD>霂笌PA頝舐眏

# 霈輸䔮銝<E494AE>銝芯<E98A9D>摮睃銁<E79D83><E98A81>楝敺<E6A59D><E695BA>瘚贝<E7989A>React Router嚗?
霈輸䔮: https://frontend-nginx-service-xxxxx.cn-beijing.sae.aliyuncs.com/dashboard

憸<><E686B8>銵䔶蛹:
  <20>?銝齿𥁒404<30>躰秤
  <20>?餈𥪜<E9A488>index.html
  <20>?React Router<65>亦恣頝舐眏
  <20>?<3F>曄內撖孵<E69296><E5ADB5><EFBFBD><EFBFBD><EFBFBD>隞?

<0A>?憒<><E68692><EFBFBD><EFBFBD>Nginx 404憿菟𢒰嚗諹秩<E8ABB9>篺ginx.conf<6E>滨蔭<E6BBA8>厰䔮憸?

甇仿炊6嚗𡁏<EFBFBD>霂𧭈PI隞<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

# <20><EFBFBD>瘚讛<E7989A><E8AE9B><EFBFBD><E585B8>𤏸<EFBFBD><F0A48FB8><EFBFBD><EFBFBD>F12嚗争<E59A97> Console<6C><65>

# <20><EFBFBD>隞乩<E99A9E><EFBFBD><E99A9E>瘚贝<E7989A>API隞<49><E99A9E>
fetch('/api/v1/health')
  .then(res => res.json())
  .then(data => console.log(data))<><E686B8>蝏𤘪<E89D8F>:
  <20>?霂瑟<E99C82><E7919F>𣂼<EFBFBD>嚗𠄎tatus 200嚗?
  <20>?餈𥪜<E9A488><F0A5AA9C>𡒊垢<F0A1928A><E59EA2><EFBFBD>摨娍㺭<E5A88D>?
  <20>?瘝⊥<E7989D>CORS<52>躰秤

<0A>?憒<><E68692><EFBFBD><EFBFBD>CORS<52>躰秤嚗諹秩<E8ABB9>𤾸<EFBFBD><F0A4BEB8>睲誨<E79DB2><E8AAA8><EFBFBD>蝵格<E89DB5><E6A0BC><EFBFBD>
<0A>?憒<><E68692><EFBFBD><EFBFBD>餈墧𦻖憭梯揖嚗諹秩<E8ABB9>𤾸<EFBFBD>蝡臬𧑐<E887AC><F0A79190><EFBFBD>滨蔭<E6BBA8>躰秤

*甇仿炊7嚗𡁏<EFBFBD>霂閖<EFBFBD><EFBFBD><EFBFBD><EFBFBD>皞鞟<EFBFBD>摮?

# <20><EFBFBD><EFBFBD>膥撘<E886A5><E69298>𤏸<EFBFBD><F0A48FB8><EFBFBD>?<3F>?Network<72><6B>

# 蝚砌<E89D9A>甈∟挪<E2889F>?
  <20>?index.html: <20><EFBFBD>?00嚗龦ache-Control: no-cache
  <20>?index-xxxxx.js: <20><EFBFBD>?00嚗龦ache-Control: 1撟?

# <20>瑟鰵憿菟𢒰嚗<F0A292B0>洵鈭峕活霈輸䔮嚗?
  <20>?index.html: <20><EFBFBD>?00嚗<30><E59A97>甈⊿<E79488><E28ABF>齿鰵<E9BDBF><EFBFBD>嚗?
  <20>?index-xxxxx.js: <20><EFBFBD>?00 (from disk cache)<EFBFBD><EFBFBD><EFBFBD>摮矋<EFBFBD>

甇仿炊8嚗𡁏<EFBFBD>霂柖zip<EFBFBD>讠憬

# <20><EFBFBD><EFBFBD>膥撘<E886A5><E69298>𤏸<EFBFBD><F0A48FB8><EFBFBD>?<3F>?Network<72><6B>
# <20>孵稬隞餅<E99A9E>JS<4A><53><><E79289>充esponse Headers:
  <20>?Content-Encoding: gzip
  <20>?<3F><>辣憭批<E686AD><E689B9><EFBFBD>60-70%

蝷箔<E89DB7>:
  <20><EFBFBD>憭批<E686AD>: 1.2 MB
  隡㰘<E99AA1>憭批<E686AD>: 350 KB (gzip<EFBFBD>讠憬<EFBFBD>?

<EFBFBD><EFBFBD> <EFBFBD>函蔡<EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD>隞乩<EFBFBD>8銝芣郊撉文<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗峕<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨垢<EFBFBD>滚𦛚<EFBFBD>函蔡<EFBFBD>𣂼<EFBFBD>嚗?


9. 撣貉<E692A3><E8B289><EFBFBD><E6A185>埝䰻

<EFBFBD>?**<2A><EFBFBD>1嚗𡁜<E59A97>靘见<E99D98>摨瑟<E691A8><E7919F>亙仃韐?*

*<EFBFBD><EFBFBD>𠶖嚗?

摰硺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>遬蝷?銝滚<E98A9D>摨?
<0A>亙熒璉<E78692><E79289>亙仃韐?

*<EFBFBD>埝䰻甇仿炊嚗?

1. <20><EFBFBD>摰硺<E691B0><E7A1BA><EFBFBD>
   <20>𣂼<EFBFBD><F0A382BC>刻祕<E588BB><E7A595><EFBFBD><EFBFBD><E78897>鞉𠯫敹𨰜<E695B9><EFBFBD><E78897>𣂼<EFBFBD><F0A382BC>嗆𠯫敹𨰜<E695B9><EFBFBD><E78897><EFBFBD>㗇𥋘摰硺<E691B0><E7A1BA>?
   
   憒<><E68692><EFBFBD><EFBFBD>:
   - "BACKEND_SERVICE_HOST required" <20>?<3F><EFBFBD><E887AC><EFBFBD><E3979B><EFBFBD>蝵?
   - "nginx: configuration file test failed" <20>?nginx.conf霂剜<E99C82><E5899C>躰秤
   - 瘝⊥<E7989D><E28AA5><EFBFBD> <20>?摰孵膥瘝⊥<E7989D><E28AA5>臬𢆡

2. 璉<><E79289><EFBFBD>摨瑟<E691A8><E7919F>仿<EFBFBD>蝵?
   <20>𣂼<EFBFBD><F0A382BC><EFBFBD>蝵柴<E89DB5><EFBFBD><E78897>𣂼<EFBFBD>摨瑟<E691A8><E7919F><EFBFBD>?
   
   蝖株恕:
   - 璉<><E79289>亥楝敺? /health嚗<68><E59A97><EFBFBD>?/嚗?
   - 璉<><E79289>亦垢<E4BAA6>? 80嚗<30><E59A97><EFBFBD>?000<30><EFBFBD>隞吔<E99A9E>
   - 璉<><E79289><EFBFBD>霈? HTTP嚗<50><E59A97><EFBFBD>浹TTPS嚗?

3. <20>见𢆡瘚贝<E7989A><E8B49D>亙熒璉<E78692><E79289>?
   <20>沒AE Webshell銝剜<E98A9D>銵?
   curl http://localhost/health
   
   憸<><E686B8>餈𥪜<E9A488>: healthy

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  • <EFBFBD>滨蔭蝻箏仃<EFBFBD><EFBFBD>㴓憓<EFBFBD><EFBFBD><EFBFBD>?
  • 靽格迤<EFBFBD>亙熒璉<EFBFBD><EFBFBD>亥楝敺?
  • <EFBFBD><EFBFBD>亙捆<EFBFBD>函垢<EFBFBD><EFBFBD><EFBFBD>蝵?

<EFBFBD>?<EFBFBD><EFBFBD>2嚗𡁻△<EFBFBD><EFBFBD>霈輸䔮嚗䔶<EFBFBD>API霂瑟<EFBFBD>憭梯揖

*<EFBFBD><EFBFBD>𠶖嚗?

<EFBFBD>滨垢憿菟𢒰甇<EFBFBD><EFBFBD>曄內
靚<>鍂API<50>嗆𥁒<E59786>? Network Error <20>?504 Gateway Timeout

*<EFBFBD>埝䰻甇仿炊嚗?

1. 璉<><E79289><EFBFBD><EFBFBD>膥Console
   <20><EFBFBD><E8A781><EFBFBD><EFBFBD>霂?
   - "ERR_CONNECTION_REFUSED" <20>?<3F>𡒊垢<F0A1928A>滚𦛚<E6BB9A>芸鍳<E88AB8>?
   - "504 Gateway Timeout" <20>?<3F>𡒊垢<F0A1928A><EFBFBD><EFBFBD>𧒄
   - "502 Bad Gateway" <20>?<3F>𡒊垢<F0A1928A><EFBFBD><E595A3>躰秤

2. 璉<><E79289>亦㴓憓<E3B493><E68693><EFBFBD><EFBFBD>蝵?
   <20>𣂼<EFBFBD><F0A382BC><EFBFBD>蝵柴<E89DB5><EFBFBD><E78897>鞟㴓憓<E3B493><E68693><EFBFBD><EFBFBD>?
   
   撉諹<E69289>:
   - BACKEND_SERVICE_HOST <20>臬炏<E887AC>滨蔭
   - IP<49><EFBFBD><E595A3>臬炏甇<E7828F><EFBC86><E59A97><EFBFBD>𡒊垢SAE摨𠉛鍂<F0A0899B><EFBFBD>嚗?
   - 銝滩<E98A9D><E6BBA9>柾ttp://<2F><EFBFBD>
   - 銝滩<E98A9D><E6BBA9><EFBFBD>鉄蝡臬藁<E887AC>?

3. 瘚贝<E7989A><E8B49D>𡒊垢<F0A1928A>滚𦛚<E6BB9A>航噢<E888AA>?
   <20><EFBFBD>蝡臬捆<E887AC><EFBFBD>Webshell銝?
   curl http://172.17.0.15:3001/api/v1/health
   
   憒<><E68692>憭梯揖:
   - 璉<><E79289><EFBFBD>蝡舀<E89DA1><E88880>⊥糓<E28AA5>西<EFBFBD>銵?
   - 璉<><E79289>冬PC蝵𤑳<E89DB5><F0A491B3>臬炏<E887AC><EFBFBD>
   - 璉<><E79289><EFBFBD><E4BA99><EFBFBD><EFBFBD><E996AB>

4. <20><EFBFBD>Nginx<6E>躰秤<E8BAB0><EFBFBD>
   docker logs <container_id> 2>&1 | grep error
   
   撣貉<E692A3><E8B289>躰秤:
   - "upstream: "http://172.17.0.15:3001/..." <20>?<3F>𡒊垢<F0A1928A><EFBFBD><EFBFBD>
   - "connect() failed" <20>?<3F>𡒊垢銝滚虾颲?

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  • 靽格迤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>BACKEND_SERVICE_HOST
  • 蝖桐<EFBFBD><EFBFBD><EFBFBD>蝡臬銁<EFBFBD><EFBFBD>VPC
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>捂VPC<EFBFBD><EFBFBD><EFBFBD>霈輸䔮
  • <EFBFBD>滚鍳<EFBFBD>滨垢摨𠉛鍂雿輸<EFBFBD>蝵桃<EFBFBD><EFBFBD>?

<EFBFBD>?<EFBFBD><EFBFBD>3嚗𡁜<EFBFBD><EFBFBD>圈△<EFBFBD>𥁒404

*<EFBFBD><EFBFBD>𠶖嚗?

霈輸䔮銝駁△甇<EFBFBD><0A>孵稬<E5ADB5>暹𦻖頝唾蓮甇<E893AE><0A>瑟鰵憿菟𢒰嚗㇅5嚗争<E59A97> 404 Not Found

*<EFBFBD><EFBFBD>嚗?

React Router雿輻鍂瘚讛<E7989A><E8AE9B>刻楝<E588BB><EFBFBD>BrowserRouter嚗㚁<E59A97><E39A81>瑟鰵<E7919F>賁ginx<6E><78><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>㕑楝<E39591><EFBFBD><E58B97><EFBFBD><EFBFBD>迺ndex.html<6D>?

*<EFBFBD>埝䰻甇仿炊嚗?

1. 霈輸䔮銝<E494AE>銝析eact頝舐眏
   靘见<E99D98>: https://your-domain.com/dashboard

2. <20>丽5<E4B8BD>瑟鰵憿菟𢒰
   
   <20>?<3F>躰秤<E8BAB0>啗情: <20><EFBFBD>Nginx 404憿菟𢒰
   <20>?甇<><EFBFBD>啗情: 憿菟𢒰甇<F0A292B0><EFBFBD>曄內

3. 璉<><E79289>叩ginx.conf<6E>滨蔭
   <20><EFBFBD>摰孵膥Webshell:
   cat /etc/nginx/nginx.conf | grep "try_files"
   
   摨磰砲<E7A3B0><EFBFBD>:
   try_files $uri $uri/ /index.html;

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

<EFBFBD><EFBFBD>nginx.conf銝剜瓷<E5899C>头try_files`<60>滨蔭嚗屸<E59A97><EFBFBD><E996AC><EFBFBD><EFBFBD>撱粹<E692B1><E7B2B9>𧶏<EFBFBD>

# <20>盯ginx.conf銝剔靽脲<E99DBD>隞乩<E99A9E><E4B9A9>滨蔭
location / {
    try_files $uri $uri/ /index.html;
}

<EFBFBD>?<EFBFBD><EFBFBD>4嚗𡁻<EFBFBD><EFBFBD><EFBFBD><EFBFBD>皞?04

*<EFBFBD><EFBFBD>𠶖嚗?

HTML<EFBFBD><EFBFBD>頧?
JS/CSS<53><53>辣404 Not Found
憿菟𢒰<E88F9F>曄內銝箇滲<E7AE87><E6BBB2>𧋦嚗<F0A78BA6><E59A97><EFBFBD><EFBFBD>嚗?

*<EFBFBD>埝䰻甇仿炊嚗?

1. 璉<><E79289><EFBFBD><EFBFBD>膥Network<72><6B><20><EFBFBD>:
   GET https://your-domain.com/assets/index-xxxxx.js 404

2. 璉<><E79289>可ndex.html銝剔<E98A9D><EFBFBD><E99F8F>頝臬<E9A09D>
   curl https://your-domain.com/ | grep assets
   
   甇<>蝷箔<E89DB7>:
   <script src="/assets/index-xxxxx.js"></script>
   
   <20>躰秤蝷箔<E89DB7>:
   <script src="./assets/index-xxxxx.js"></script>  # <20>詨笆頝臬<E9A09D>
   <script src="/app/assets/index-xxxxx.js"></script>  # <20>躰秤base

3. 璉<><E79289>冬ite<74>滨蔭
   <20><EFBFBD>frontend-v2/vite.config.ts:
   
   甇<><EFBFBD>滨蔭:
   export default defineConfig({
     base: '/',  // <20>?暺䁅恕<E48185>?
   })
   
   <20>躰秤<E8BAB0>滨蔭:
   export default defineConfig({
     base: '/app/',  // <20>?<3F><EFBFBD>蝖桀<E89D96><E6A180><EFBFBD>閬?
   })

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. 靽格㺿 vite.config.ts嚗𣬚&靽?base: '/'
  2. <EFBFBD>齿鰵<EFBFBD><EFBFBD><EFBFBD>滨垢嚗䫤npm run build`
  3. <EFBFBD>齿鰵<EFBFBD><EFBFBD>遣Docker<EFBFBD>𨅯<EFBFBD>
  4. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ACR
  5. SAE<EFBFBD>齿鰵<EFBFBD>函蔡

<EFBFBD>?<EFBFBD><EFBFBD>5嚗𡁶㴓憓<EFBFBD><EFBFBD><EFBFBD>𤩺𧊋<EFBFBD><EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD>𠶖嚗?

<EFBFBD>滨蔭鈭<EFBFBD>㴓憓<EFBFBD><EFBFBD><EFBFBD>?
雿<><EFBFBD>典鍳<E585B8>冽𠯫敹埈遬蝷箏<E89DB7><E7AE8F>譍蛹蝛?

*<EFBFBD>埝䰻甇仿炊嚗?

1. <20><EFBFBD>摰孵膥<E5ADB5>臬𢆡<E887AC><EFBFBD>
   <20>𣂼<EFBFBD><F0A382BC>刻祕<E588BB><E7A595><EFBFBD><EFBFBD><E78897>鞉𠯫敹𨰜<E695B9><EFBFBD><E78897>𣂼<EFBFBD><F0A382BC>嗆𠯫敹𨰜<E695B9>?
   
   <20><EFBFBD>:
   Backend Service: ${BACKEND_SERVICE_HOST}:${BACKEND_SERVICE_PORT}
   
   <20>?餈躰秩<E8BAB0>𦱿nvsubst瘝⊥<E7989D><E28AA5>踵揢<E8B8B5><EFBFBD>

2. 餈𥕦<E9A488>摰孵膥Webshell璉<6C><E79289>?
   echo $BACKEND_SERVICE_HOST<><E68692>銝箇征 <20>?SAE<41><EFBFBD><E887AC><EFBFBD><E3979B><EFBFBD><E88AAF>?
   憒<><E68692><EFBFBD><EFBFBD>?<3F>?envsubst<73><EFBFBD>憭梯揖

3. 璉<><E79289>卡ocker-entrypoint.sh
   cat /docker-entrypoint.sh
   
   蝖株恕<E6A0AA>?
   envsubst '${BACKEND_SERVICE_HOST} ${BACKEND_SERVICE_PORT}' \
     < /etc/nginx/templates/nginx.conf.template \
     > /etc/nginx/nginx.conf

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. <EFBFBD>沒AE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵桃㴓憓<EFBFBD><EFBFBD><EFBFBD>?
  2. 蝖桐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>齿𣄽<EFBFBD>蹱迤蝖殷<EFBFBD><EFBFBD><EFBFBD>憭批<EFBFBD><EFBFBD><EFBFBD>
  3. <EFBFBD>滚鍳摨𠉛鍂雿輸<EFBFBD>蝵桃<EFBFBD><EFBFBD>?

10. <20>亙虜餈鞟輕

<EFBFBD><EFBFBD> <EFBFBD>烐綉<EFBFBD><EFBFBD><EFBFBD>

摰墧𧒄<EFBFBD>烐綉

<EFBFBD><EFBFBD>雿滨蔭: <EFBFBD>𣂼<EFBFBD><EFBFBD>刻祕<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD>喲睸<EFBFBD><EFBFBD><EFBFBD>:
  CPU雿輻鍂<EFBFBD>?
    <EFBFBD>亙熒<EFBFBD><EFBFBD>: < 30%
    <EFBFBD>𡃏郎<EFBFBD><EFBFBD><EFBFBD>? > 60%
    霂湔<EFBFBD>: Nginx<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>30%
  
  <EFBFBD><EFBFBD><EFBFBD>雿輻鍂<EFBFBD>?
    <EFBFBD>亙熒<EFBFBD><EFBFBD>: < 50%
    <EFBFBD>𡃏郎<EFBFBD><EFBFBD><EFBFBD>? > 80%
    霂湔<EFBFBD>: Nginx<EFBFBD><EFBFBD><EFBFBD><EFBFBD>删鍂敺<EFBFBD><EFBFBD>
  
  霂瑟<EFBFBD>QPS:
    <EFBFBD><EFBFBD>霈輸䔮<EFBFBD><EFBFBD><EFBFBD>?
  
  撟喳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>園𡢿:
    <EFBFBD>亙熒<EFBFBD><EFBFBD>: < 50ms
    <EFBFBD>𡃏郎<EFBFBD><EFBFBD><EFBFBD>? > 200ms
    霂湔<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞嗅<EFBFBD>摨娍<EFBFBD>敹?
  
  <EFBFBD>躰秤<EFBFBD>?
    <EFBFBD>亙熒<EFBFBD><EFBFBD>: < 0.1%
    <EFBFBD>𡃏郎<EFBFBD><EFBFBD><EFBFBD>? > 1%

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

摰墧𧒄<EFBFBD><EFBFBD>:
  雿滨蔭: <EFBFBD>𣂼<EFBFBD><EFBFBD>刻祕<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉𠯫敹𨰜<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>嗆𠯫敹𨰜<EFBFBD>?
  
  <EFBFBD><EFBFBD><EFBFBD>蝷箔<EFBFBD>:
  172.17.0.10 - - [23/Dec/2025:10:30:00 +0800] "GET / HTTP/1.1" 200 1234
  172.17.0.10 - - [23/Dec/2025:10:30:01 +0800] "GET /assets/index.js HTTP/1.1" 200 567890
  
  API隞<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  172.17.0.10 - - [23/Dec/2025:10:30:02 +0800] "GET /api/v1/projects HTTP/1.1" 200 8765
  
  <EFBFBD>躰秤<EFBFBD><EFBFBD>:
  2025/12/23 10:30:04 [error] connect() failed (111: Connection refused)
  <EFBFBD>?<3F>𡒊垢<F0A1928A>滚𦛚餈墧𦻖憭梯揖

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  雿滨蔭: <EFBFBD>𣂼<EFBFBD><EFBFBD>刻祕<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉𠯫敹𨰜<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>脫𠯫敹𨰜<EFBFBD>?
  靽萘<EFBFBD><EFBFBD>園𡢿: 7憭?

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>𧋦<EFBFBD>湔鰵瘚<EFBFBD><EFBFBD>

敶枏<EFBFBD>蝡臭誨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>湔鰵<EFBFBD><EFBFBD><EFBFBD>劐誑銝𧢲<EFBFBD>蝔钅<EFBFBD>蝵脫鰵<EFBFBD><EFBFBD>𧋦嚗?

甇仿炊1嚗𡁏𧋦<EFBFBD><EFBFBD>撱箸鰵<EFBFBD><EFBFBD>𧋦

# <20>狄rontend-v2<76><EFBFBD>
cd AIclinicalresearch/frontend-v2

# 瘚贝<E7989A><E8B49D><EFBFBD>
npm run build

# <20><>遣Docker<65>𨅯<EFBFBD><EFBFBD><E59A97><EFBFBD>砍噡+1嚗?
docker build -t frontend-service:v1.0.1 .

# 撉諹<E69289><E8ABB9>𨅯<EFBFBD>憭批<E686AD>
docker images frontend-service:v1.0.1

甇仿炊2嚗𡁏綫<EFBFBD><EFBFBD><EFBFBD>ACR

# <20><EFBFBD>ACR
echo fengzhibo117 | docker login --username=gofeng117@163.com --password-stdin crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com

# <20>𤘪<EFBFBD>蝑?
docker tag frontend-service:v1.0.1 crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.1

docker tag frontend-service:v1.0.1 crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:latest

# <20><EFBFBD><E588B8><EFBFBD><EFBFBD>?
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0.1

docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:latest

甇仿炊3嚗锭AE<EFBFBD>啣漲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>湔鰵憌𡡞埯嚗<EFBFBD><EFBFBD><EFBFBD>湔鰵<EFBFBD><EFBFBD>摰硺<EFBFBD>撉諹<EFBFBD>

<EFBFBD><EFBFBD>甇仿炊:
  1. <20><EFBFBD>SAE<41><EFBFBD><E689B9>?<3F>?餈𥕦<E9A488>摨𠉛鍂霂行<E99C82>
  
  2. <20>孵稬<E5ADB5><EFBFBD>蝵脯<E89DB5><EFBFBD><E78897><EFBFBD>摨血<E691A8><EFBFBD><E692A3>?
  
  3. <20>滨蔭<E6BBA8>啣漲蝑𣇉裦:
     <EFBFBD>啣漲摰硺<EFBFBD><EFBFBD>? 1
     <EFBFBD>啣漲<EFBFBD>園鵭: 5<EFBFBD><EFBFBD><EFBFBD>
     <EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0.1
  
  4. <20>孵稬<E5ADB5>摰𠾼<E691B0>?
  
  5. 閫<><E996AB><EFBFBD>啣漲摰硺<E691B0>:
     - <EFBFBD><EFBFBD>摰硺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>亙熒嚗?
     - <EFBFBD><EFBFBD><EFBFBD>躰秤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>躰秤嚗?
     - 霈輸䔮瘚贝<EFBFBD><EFBFBD><EFBFBD><EFBFBD>賣迤撣賂<EFBFBD>
  
  6. 蝖株恕<E6A0AA>𣳇䔮憸睃<E686B8>嚗𣬚<E59A97><F0A3AC9A><EFBFBD>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><E692A3>?
  
  7. 憒<><E68692><EFBFBD>𤑳緵<F0A491B3><EFBFBD>嚗𣬚<E59A97><F0A3AC9A><EFBFBD>𣂼<EFBFBD>皛𠾼<E79A9B>?
     - <EFBFBD>芸𢆡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝芰<EFBFBD><EFBFBD>?
     - <EFBFBD>𣳇<EFBFBD><EFBFBD>见𢆡<EFBFBD><EFBFBD>

*甇仿炊4嚗𡁜<EFBFBD><EFBFBD><EFBFBD>撣?

<EFBFBD><EFBFBD>銝滢蝙<EFBFBD><EFBFBD>摨血<EFBFBD><EFBFBD><EFBFBD><EFBFBD>湔𦻖<EFBFBD><EFBFBD><EFBFBD>湔鰵嚗?

<EFBFBD><EFBFBD>甇仿炊:
  1. <20><EFBFBD>SAE<41><EFBFBD><E689B9>?<3F>?餈𥕦<E9A488>摨𠉛鍂霂行<E99C82>
  
  2. <20>孵稬<E5ADB5><EFBFBD>蝵脯<E89DB5>?
  
  3. 靽格㺿<E6A0BC>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦:
     隞? v1.0.0
     <EFBFBD>? v1.0.1
  
  4. <20>孵稬<E5ADB5>摰𠾼<E691B0>?
  
  5. 蝑匧<E89D91><E58CA7>函蔡摰峕<E691B0>嚗?-3<><33><EFBFBD>嚗?
  
  6. 撉諹<E69289><E8ABB9><EFBFBD><E59581>?
     - <EFBFBD><EFBFBD>摰硺<EFBFBD><EFBFBD><EFBFBD>?
     - 霈輸䔮<EFBFBD>滨垢憿菟𢒰
     - 瘚贝<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>砍枂<EFBFBD>圈䔮憸矋<EFBFBD><EFBFBD>臭誑敹恍<EFBFBD><EFBFBD>皛𡄯<EFBFBD>

<EFBFBD><EFBFBD>甇仿炊:
  1. <20><EFBFBD>SAE<41><EFBFBD><E689B9>?<3F>?餈𥕦<E9A488>摨𠉛鍂霂行<E99C82>
  
  2. <20>孵稬<E5ADB5>𣂼<EFBFBD><F0A382BC>渲扇敶𨰻<E695B6>?
  
  3. <20><EFBFBD>銝𠹺<E98A9D>銝芰迅摰𡁶<E691B0><F0A181B6>穿<EFBFBD><EFBFBD>1.0.0嚗?
  
  4. <20>孵稬<E5ADB5>𣂼<EFBFBD>皛𠾼<E79A9B>?
  
  5. 蝖株恕<E6A0AA><EFBFBD>
  
  6. 蝑匧<E89D91><E58CA7><EFBFBD>摰峕<E691B0>嚗?-2<><32><EFBFBD>嚗?

<EFBFBD><EFBFBD><EFBFBD>園𡢿:
  - <EFBFBD>𨅯<EFBFBD>撌脩<EFBFBD>摮? 1-2<><32><EFBFBD>
  - <EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>摮? 2-3<><33><EFBFBD>

<EFBFBD><EFBFBD>儭?*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

摰𡁏<EFBFBD><EFBFBD><EFBFBD>ACR銝剔<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧶏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摮睃<EFBFBD>蝛粹𡢿嚗?

<EFBFBD><EFBFBD>蝑𣇉裦:
  - 靽萘<EFBFBD><EFBFBD><EFBFBD>餈?銝芰<E98A9D><E88AB0>?
  - <EFBFBD>𣳇膄30憭拙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦
  - 靽萘<EFBFBD>撣行<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>穿<EFBFBD><EFBFBD>table<EFBFBD><EFBFBD>rod嚗?

<EFBFBD><EFBFBD>甇仿炊:
  1. <20><EFBFBD>ACR<43><EFBFBD><E689B9>?
  
  2. 餈𥕦<E9A488><F0A595A6>𨅯<EFBFBD>隞枏<E99A9E> <20>?ai-clinical_frontend-nginx
  
  3. <20><EFBFBD><E4BAA6><EFBFBD><EFBFBD><EFBFBD><E58EA9>?
  
  4. <20>㗇𥋘閬<F0A58B98><E996AC><EFBFBD><EFBFBD><E696A4><EFBFBD>𧋦嚗<F0A78BA6><EFBFBD><EFBFBD>
  
  5. <20>孵稬<E5ADB5>𣂼<EFBFBD><F0A382BC><EFBFBD>?
  
  6. 蝖株恕<E6A0AA>𣳇膄

<EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>:
  - 銝滩<EFBFBD><EFBFBD>𣳇膄甇<EFBFBD>銁雿輻鍂<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  - <EFBFBD>𣳇膄<EFBFBD>霈又AE摨𠉛鍂撌脫凒<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  - 撱箄悅<EFBFBD><EFBFBD>靽萘<EFBFBD>2銝芰<EFBFBD><EFBFBD>砌誑靘踹<EFBFBD>皛?

<EFBFBD><EFBFBD> *撘寞<EFBFBD>找撓蝻拚<EFBFBD>蝵?

<EFBFBD>滨垢Nginx<EFBFBD>滚𦛚<EFBFBD>𡁜虜銝漤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝻拙捆嚗䔶<EFBFBD><EFBFBD>臭誑<EFBFBD>滨蔭<EFBFBD>芸𢆡隡貊憬嚗?

<EFBFBD>滨蔭雿滨蔭: <EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD>蝵柴<EFBFBD><EFBFBD><EFBFBD>𣂼撕<EFBFBD>找撓蝻押<EFBFBD>?

<EFBFBD><EFBFBD>撠誩<EFBFBD>靘𧢲㺭: 2
  霂湔<EFBFBD>: 靽肽<EFBFBD>擃睃虾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2銝芸<EFBFBD>靘?

<EFBFBD><EFBFBD>憭批<EFBFBD>靘𧢲㺭: 5
  霂湔<EFBFBD>: <EFBFBD>滨垢瘚<EFBFBD><EFBFBD>𢆡<EFBFBD>𡁜虜銝滚之嚗?銝芸<E98A9D>靘贝雲憭?

<EFBFBD>拙捆蝑𣇉裦:
  <EFBFBD><EFBFBD><EFBFBD>: CPU雿輻鍂<EFBFBD>?
  <EFBFBD><EFBFBD><EFBFBD>? > 60% <20><>賒 3<><33><EFBFBD>
  瘥𤩺活<EFBFBD>拙捆: +1銝芸<E98A9D>靘?
  <EFBFBD>瑕㭂<EFBFBD>園𡢿: 3<EFBFBD><EFBFBD><EFBFBD>
  
  霂湔<EFBFBD>: Nginx敺<EFBFBD><EFBFBD>颲曉<EFBFBD>60% CPU

蝻拙捆蝑𣇉裦:
  <EFBFBD><EFBFBD><EFBFBD>: CPU雿輻鍂<EFBFBD>?
  <EFBFBD><EFBFBD><EFBFBD>? < 20% <20><>賒 5<><35><EFBFBD>
  瘥𤩺活蝻拙捆: -1銝芸<EFBFBD>靘?
  <EFBFBD>瑕㭂<EFBFBD>園𡢿: 5<EFBFBD><EFBFBD><EFBFBD>
  <EFBFBD><EFBFBD>撠譍<EFBFBD><EFBFBD>? 2銝芸<E98A9D>靘?

<EFBFBD>𩤃<EFBFBD> 摰鮋<E691B0><E9AE8B><EFBFBD><EFBFBD>:
  <EFBFBD>滨垢Nginx<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?銝?.5<EFBFBD><EFBFBD>靘见虾隞交𣈲<EFBFBD>?
  - 1000+ QPS嚗<53><E59A97><EFBFBD><EFBFBD><EFBFBD>隞塚<E99A9E>
  - 100+ QPS嚗㇁PI隞<49><E99A9E>嚗?
  - <EFBFBD><EFBFBD>銝漤<EFBFBD><EFBFBD><EFBFBD>摰?

<EFBFBD><EFBFBD>𡃏郎<EFBFBD>滨蔭

<EFBFBD>滨蔭<EFBFBD>喲睸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𡃏郎嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>圈䔮憸矋<EFBFBD>

<EFBFBD>滨蔭雿滨蔭: <EFBFBD>𣂷<EFBFBD><EFBFBD>烐綉<EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD>撱箏<EFBFBD>霅西<EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD><EFBFBD>𡃏郎閫<EFBFBD><EFBFBD>:

1. 摰硺<E691B0><E7A1BA>亙熒璉<E78692><E79289>亙仃韐?
   - <EFBFBD>∩辣: <EFBFBD>亙熒璉<EFBFBD><EFBFBD>亙仃韐?> 3甈?
   - 蝥批<EFBFBD>: 蝝扳<EFBFBD>?
   - <EFBFBD>𡁶䰻: <EFBFBD>凋縑 + <20><EFBFBD>

2. CPU雿輻鍂<E8BCBB><E98D82><EFBFBD>擃?
   - <EFBFBD>∩辣: CPU > 60% <20><>賒 5<><35><EFBFBD>
   - 蝥批<EFBFBD>: 霅血<EFBFBD>
   - <EFBFBD>𡁶䰻: <EFBFBD><EFBFBD> + <20>桐辣

3. <20><><EFBFBD>雿輻鍂<E8BCBB><E98D82><EFBFBD>擃?
   - <EFBFBD>∩辣: <EFBFBD><EFBFBD><EFBFBD> > 80% <20><>賒 5<><35><EFBFBD>
   - 蝥批<EFBFBD>: 霅血<EFBFBD>
   - <EFBFBD>𡁶䰻: <EFBFBD><EFBFBD> + <20>桐辣

4. <20>躰秤<E8BAB0><E7A7A4><EFBFBD>擃?
   - <EFBFBD>∩辣: <EFBFBD>躰秤<EFBFBD>?> 1% <20><>賒 3<><33><EFBFBD>
   - 蝥批<EFBFBD>: 蝝扳<EFBFBD>?
   - <EFBFBD>𡁶䰻: <EFBFBD>凋縑 + <20><EFBFBD>

5. 撟喳<E6929F><E596B3><EFBFBD><E6BB9A>園𡢿餈<F0A1A2BF>
   - <EFBFBD>∩辣: <EFBFBD><EFBFBD><EFBFBD>園𡢿 > 500ms <20><>賒 5<><35><EFBFBD>
   - 蝥批<EFBFBD>: 霅血<EFBFBD>
   - <EFBFBD>𡁶䰻: <EFBFBD><EFBFBD> + <20>桐辣

<EFBFBD>𡁶䰻<EFBFBD><EFBFBD><EFBFBD>滨蔭:
  - <EFBFBD><EFBFBD><EFBFBD>箏膥鈭? <20>𥕦遣蝢方<E89DA2><E696B9>箏膥鈭綽<E988AD><E7B6BD><EFBFBD>Webhook
  - <EFBFBD>桐辣: <EFBFBD>滨蔭<EFBFBD>𡃏郎<EFBFBD>𠉛頂鈭粹<EFBFBD>蝞?
  - <EFBFBD>凋縑: <EFBFBD>滨蔭<EFBFBD>𧢲㦤<EFBFBD><EFBFBD>撱箄悅隞<EFBFBD>鍂鈭𡒊揮<EFBFBD><EFBFBD>霅佗<EFBFBD>

<EFBFBD><EFBFBD> <20><><EFBFBD>

<EFBFBD><EFBFBD> <EFBFBD>滨蔭<EFBFBD><EFBFBD>辣皜<EFBFBD><EFBFBD>

<EFBFBD>函蔡餈<EFBFBD><EFBFBD>銝剜<EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭<EFBFBD><EFBFBD>辣嚗?

<EFBFBD>砍𧑐<EFBFBD><EFBFBD>辣 (AIclinicalresearch/frontend-v2/):
  - Dockerfile (憭𡁻𧫴畾菜<E795BE>撱粹<E692B1>蝵?
  - nginx.conf (Nginx<6E>滚𦛚<E6BB9A><EFBFBD>蝵?
  - docker-entrypoint.sh (摰孵膥<E5ADB5>臬𢆡<E887AC>𡁏𧋦)
  - .dockerignore (<28><><EFBFBD>㘾膄<E398BE><E88684>辣)

SAE<EFBFBD>滨蔭 (<28>冽綉<E586BD>嗅蝱<E59785>滨蔭):
  - 摨𠉛鍂<EFBFBD>箸𧋦靽⊥<EFBFBD>
  - 摰硺<EFBFBD><EFBFBD><EFBFBD>峕㺭<EFBFBD>?
  - VPC蝵𤑳<EFBFBD><EFBFBD>滨蔭
  - <EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣬚<EFBFBD><EFBFBD>?
  - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  - <EFBFBD>亙熒璉<EFBFBD><EFBFBD>?
  - <EFBFBD><EFBFBD>霈輸䔮<EFBFBD>滨蔭

<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>暹𦻖

<EFBFBD><EFBFBD>鈭穃<EFBFBD><EFBFBD><EFBFBD>獢?
  - SAE鈭批<EFBFBD><EFBFBD><EFBFBD>: https://help.aliyun.com/product/1172298.html
  - ACR鈭批<EFBFBD><EFBFBD><EFBFBD>: https://help.aliyun.com/product/60716.html
  - VPC鈭批<EFBFBD><EFBFBD><EFBFBD>: https://help.aliyun.com/product/27706.html

憿寧𤌍<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
  - <EFBFBD>滨垢Nginx<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>: docs/05-<2D>函蔡<E587BD><E894A1>﹝/06-<2D>滨垢Nginx-SAE摰孵膥<E5ADB5>函蔡<E587BD><E894A1><EFBFBD>.md
  - 敹恍<EFBFBD><EFBFBD>蝵淞OP: docs/05-<2D>函蔡<E587BD><E894A1>﹝/01-敹恍<E695B9><EFBFBD>蝵淞OP-<2D>嗅抅蝖<E68A85><E89D96>?md
  - <EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: docs/05-<2D>函蔡<E587BD><E894A1>﹝/00-<2D>函蔡<E587BD><EFBFBD><E59786><EFBFBD>.md

<EFBFBD><EFBFBD><EFBFBD>雿喳<EFBFBD>頝菜<EFBFBD><EFBFBD>

摰匧<EFBFBD><EFBFBD>?
  <EFBFBD>?雿輻鍂銝𤘪<E98A9D>蝵𤑳<E89DB5>嚗ĀPC嚗厰<E59A97>蝳?
  <EFBFBD>?<3F><EFBFBD><E887AC><EFBFBD>摮睃<E691AE><E79D83>𤩺<EFBFBD>靽⊥<E99DBD>
  <EFBFBD>?<3F>舐鍂HTTPS嚗<53><E59A97>鈭抒㴓憓<E3B493><E68693>
  <EFBFBD>?<3F>滨蔭摰匧<E691B0><EFBFBD><E89D8F><EFBFBD>?
  <EFBFBD>?<3F><EFBFBD>Nginx<6E><78>𧋦<EFBFBD>?

<EFBFBD><EFBFBD>:
  <EFBFBD>?<3F>舐鍂Gzip<69>讠憬嚗<E686AC><E59A97>撠?0%隡㰘<E99AA1>嚗?
  <EFBFBD>?<3F>滨蔭<E6BBA8><E894AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摮条<E691AE><E69DA1>?
  <EFBFBD>?雿輻鍂CDN<44>𣳇<EFBFBD><F0A3B387><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  <EFBFBD>?隡睃<E99AA1>Docker<65>𨅯<EFBFBD>憭批<E686AD>

<EFBFBD><EFBFBD><EFBFBD>?
  <EFBFBD>?<3F><EFBFBD>2銝芸<E98A9D>靘页<E99D98>擃睃虾<E79D83><EFBFBD>
  <EFBFBD>?<3F>滨蔭<E6BBA8>亙熒璉<E78692><E79289>?
  <EFBFBD>?<3F>舐鍂<E88890>芸𢆡隡貊憬
  <EFBFBD>?<3F>滨蔭<E6BBA8>𡃏郎<F0A1838F>烐綉
  <EFBFBD>?<3F>啣漲<E595A3><EFBFBD><E7A983><EFBFBD>憌𡡞埯

<EFBFBD>舐輕<EFBFBD><EFBFBD>?
  <EFBFBD>?雿輻鍂霂凋<E99C82><E5878B>𣇉<EFBFBD><F0A38789>砍噡
  <EFBFBD>?靽萘<E99DBD><E89098><EFBFBD>餈?銝芰<E98A9D><E88AB0>砌誑靘踹<E99D98>皛?
  <EFBFBD>?摰𡁏<E691B0><EFBFBD><E79A9C><EFBFBD><EFBFBD><E68A92><EFBFBD><E7A587>?
  <EFBFBD>?霈啣<E99C88><E595A3>䀹凒<E480B9><EFBFBD>
  <EFBFBD>?<3F><><EFBFBD>𦠜𧒄<F0A6A09C>湔鰵

<EFBFBD>?撣貉<EFBFBD><EFBFBD><EFBFBD>FAQ

*Q1: <20>滨垢<E6BBA8>滚𦛚<E6BB9A><F0A69B9A><EFBFBD><E996AC>憭抒<E686AD><EFBFBD>聢嚗?

A: 0.5<EFBFBD>?GB頞喳<E9A09E><E596B3>?
   - Nginx<6E><78><EFBFBD>擃䀹<E69383><EFBFBD><E59A97><EFBFBD><EFBFBD>皞𣂼<E79A9E>撠?
   - 0.5<EFBFBD>詨虾隞交𣈲<EFBFBD>?000+ QPS
   - 銝滩<E98A9D><EFBFBD><EFBFBD>滨蔭瘚芾晶韏<E699B6><E99F8F>

*Q2: <20><><EFBFBD><E996AC>蝵桀<E89DB5>撠睲葵摰硺<E691B0>嚗?

A: <20>煺漣<E785BA><EFBFBD>撱箄悅2銝芸<E98A9D>靘卝<E99D98>?
   - 靽肽<E99DBD>擃睃虾<E79D83><EFBFBD>1銝芣<E98A9D><E88AA3>𨀣𧒄<F0A880A3>?銝芰誧蝏剜<E89D8F><E5899C><EFBFBD>
   - <20>滨垢敺<E59EA2><E695BA><EFBFBD><EFBFBD>閬?銝芯誑銝𠰴<E98A9D>靘?
   - 瘚<><E7989A><EFBFBD><EFBFBD>憭扳𧒄<E689B3>臭誑<E887AD>滨蔭CDN

*Q3: 憒<><E68692><EFBFBD>仿<EFBFBD><E4BBBF>𡒊垢<F0A1928A>滚𦛚<E6BB9A><F0A69B9A><EFBFBD>蝵穃𧑐<E7A983><F0A79190>嚗?

A: 隞𤾸<E99A9E>蝡特AE摨𠉛鍂<F0A0899B><EFBFBD>嚗?
   1. <20><EFBFBD>SAE<41><EFBFBD><E689B9>?
   2. 餈𥕦<E9A488><F0A595A6>𡒊垢摨𠉛鍂霂行<E99C82>
   3. <20><EFBFBD><E4BAA6>𣂼<EFBFBD><F0A382BC>刻挪<E588BB><EFBFBD>蝵柴<E89DB5><EFBFBD><E78897>𨧞PC<50><43><EFBFBD>霈輸䔮<E8BCB8><EFBFBD><E595A3>?
   4. 憭滚<E686AD>IP<49><EFBFBD><EFBFBD>聢撘𧶏<E69298>172.17.x.x嚗?

Q4: <20><EFBFBD><E887AC><EFBFBD><E3979B>滨蔭<E6BBA8>擧瓷<E693A7><E793B7><EFBFBD><EFBFBD>𦒘<EFBFBD><F0A69298><EFBFBD>

A: <20><><EFBFBD><E996AC><EFBFBD><EFBFBD><E887AC><EFBFBD>
   1. 靽格㺿<E6A0BC><EFBFBD><E887AC><EFBFBD>
   2. <20>孵稬<E5ADB5><EFBFBD><E99EBE><EFBFBD><EFBFBD><E78390><EFBFBD><E99EBE><EFBFBD>蝵脯<E89DB5>?
   3. 蝑匧<E89D91>摰硺<E691B0><E7A1BA>滚鍳摰峕<E691B0>
   4. <20><EFBFBD><E4BAA6>臬𢆡<E887AC><EFBFBD>蝖株恕<E6A0AA><EFBFBD><E3979B>?

Q5: <20>函蔡<E587BD><EFBFBD><E59581><EFBFBD><EFBFBD><E68692>敹恍<E695B9><EFBFBD>皛𡄯<E79A9B>

A: SAE<41><EFBFBD><EFBFBD><E98A9D><EFBFBD>皛𡄯<E79A9B>
   1. 餈𥕦<E9A488><F0A595A6>𣂼<EFBFBD><F0A382BC>渲扇敶𨰻<E695B6>?
   2. <20><EFBFBD>銝𠹺<E98A9D>銝芰迅摰𡁶<E691B0><F0A181B6>?
   3. <20>孵稬<E5ADB5>𣂼<EFBFBD>皛𠾼<E79A9B>?
   4. 蝑匧<E89D91>1-2<><32><EFBFBD>摰峕<E691B0><E5B395><EFBFBD>

*Q6: 憒<><E68692><EFBFBD>滨蔭HTTPS嚗?

A: 銝斤<E98A9D><E696A4><EFBFBD>嚗?
   1. 雿輻鍂SAE<41>𣂷<EFBFBD><F0A382B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B5AA>芸𢆡HTTPS嚗?
   2. 蝏穃<E89D8F><E7A983><EFBFBD>銋匧<E98A8B><E58CA7>滚僎銝𠹺<E98A9D>SSL霂<4C><20>煺漣<E785BA><EFBFBD>撘箇<E69298>撱箄悅雿輻鍂HTTPS

Q7: <20>滨垢<E6BBA8><E59EA2><EFBFBD><E996AC><EFBFBD>交㺭<E4BAA4><EFBFBD><E6A180><EFBFBD>

A: 銝漤<E98A9D><EFBFBD><E996AC>?
   - <20>滨垢<E6BBA8>舐滲<E88890><EFBFBD><E8B9B1><EFBFBD>皞琜<E79A9E>HTML/JS/CSS嚗?
   - <20><EFBFBD><EFBFBD><E996AC><EFBFBD>Nginx隞<78><E99A9E>霈輸䔮<E8BCB8>𡒊垢API
   - <20>唳旿摨栞<E691A8><E6A09E>亦眏<E4BAA6>𡒊垢<F0A1928A>滚𦛚憭<F0A69B9A><E686AD>

Q8: 瘥𤩺活<F0A4A9BA>湔鰵<E6B994><EFBFBD><E8B3AA>齿鰵<E9BDBF><E9B0B5>遣Docker<65>𨅯<EFBFBD><F0A885AF><EFBFBD>

A: <20><EFBFBD><E88890>?
   1. 靽格㺿<E6A0BC>滨垢隞<E59EA2><E99A9E>
   2. npm run build嚗<64><E59A97><EFBFBD>鞉鰵<E99E89><E9B0B5>ist/嚗?
   3. docker build嚗<64><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>嚗?
   4. docker push嚗<68><EFBFBD><E7B6AB><EFBFBD>ACR嚗?
   5. SAE<41>齿鰵<E9BDBF>函蔡嚗<E894A1><E59A97><EFBFBD>𡝗鰵<F0A19D97>𨅯<EFBFBD>嚗?
   
   餈蹱糓<E8B9B1><E7B393><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E585B8>函蔡瘚<E894A1><E7989A>

Q9: Docker<65>𨅯<EFBFBD>憭芸之<E88AB8>𦒘<EFBFBD><F0A69298><EFBFBD>

A: 敶枏<E695B6><E69E8F>𨅯<EFBFBD><F0A885AF><EFBFBD>92MB嚗<42>歇蝏誩<E89D8F>撠譍<E692A0><E8AD8D>?
   - 憭𡁻𧫴畾菜<E795BE>撱綽<E692B1><E7B6BD><EFBFBD><E88AAF><EFBFBD>銵峕𧒄<E5B395><F0A79284>辣嚗?
   - Alpine<6E><EFBFBD><E7AE87>𨅯<EFBFBD><EFBFBD><E59A97>撠𦶣inux<75>𤏸<EFBFBD><F0A48FB8><EFBFBD><EFBFBD>
   - 撌脩<E6928C><E884A9><EFBFBD>隡睃<E99AA1><E79D83><EFBFBD>𠶖<EFBFBD>?

*Q10: 憒<><E68692><EFBFBD><EFBFBD>摰墧𧒄霈輸䔮<E8BCB8><EFBFBD>嚗?

A: SAE<41><EFBFBD><E689B9>唳䰻<E594B3><EFBFBD>
   <20>𣂼<EFBFBD><F0A382BC>刻祕<E588BB><E7A595><EFBFBD><EFBFBD><E78897>鞉𠯫敹𨰜<E695B9><EFBFBD><E78897>𣂼<EFBFBD><F0A382BC>嗆𠯫敹𨰜<E695B9>?
   
   <20>臭誑<E887AD><EFBFBD>嚗?
   - <20><><EFBFBD>鵎TTP霂瑟<E99C82>嚗㇎RL<52><4C>𠶖<EFBFBD><F0A0B696><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摨娍𧒄<E5A88D><EFBFBD>
   - Nginx<6E>躰秤<E8BAB0><EFBFBD>
   - 摰孵膥<E5ADB5>臬𢆡<E887AC><EFBFBD>

<EFBFBD>㴓 *<EFBFBD>函蔡璉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD>銝芣<EFBFBD><EFBFBD>霈日<EFBFBD>蝵脣<EFBFBD><EFBFBD><EFBFBD>

<EFBFBD>函蔡<EFBFBD><EFBFBD>憭?
  <EFBFBD>𡢅<EFBFBD> ACR<43>𨅯<EFBFBD>撌脫綫<E884AB><E7B6AB><EFBFBD>v1.0.0嚗?
  <EFBFBD>𡢅<EFBFBD> <20>𡒊垢<F0A1928A>滚𦛚撌脤<E6928C>蝵莎<E89DB5><E88E8E><EFBFBD><E79195><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
  <EFBFBD>𡢅<EFBFBD> VPC<50>䔶漱<E494B6>㦤撌脣<E6928C>撱?
  <EFBFBD>𡢅<EFBFBD> 摰匧<E691B0><EFBFBD><EFBFBD>滨蔭

SAE摨𠉛鍂<EFBFBD>滨蔭:
  <EFBFBD>𡢅<EFBFBD> 摨𠉛鍂<F0A0899B>滨妍嚗餎rontend-nginx-service
  <EFBFBD>𡢅<EFBFBD> 摰硺<E691B0><EFBFBD>聢嚗?.5<EFBFBD>?GB
  <EFBFBD>𡢅<EFBFBD> 摰硺<E691B0><E7A1BA><EFBFBD>嚗?
  <EFBFBD>𡢅<EFBFBD> <20>𨅯<EFBFBD><F0A885AF><EFBFBD>嚗帋<E59A97><E5B88B><EFBFBD>蝏𨅯<E89D8F><F0A885AF><EFBFBD>撣?vpc嚗?
  <EFBFBD>𡢅<EFBFBD> <20>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦嚗鯝1.0.0

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭:
  <EFBFBD>𡢅<EFBFBD> BACKEND_SERVICE_HOST嚗𡁜歇<F0A1819C>滨蔭嚗?72.17.x.x嚗?
  <EFBFBD>𡢅<EFBFBD> BACKEND_SERVICE_PORT嚗𡁜歇<F0A1819C>滨蔭嚗?001嚗?

<EFBFBD>亙熒璉<EFBFBD><EFBFBD>仿<EFBFBD>蝵?
  <EFBFBD>𡢅<EFBFBD><><E79289>亥楝敺<E6A59D><E695BA>/health
  <EFBFBD>𡢅<EFBFBD><><E79289>亦垢<E4BAA6><E59EA2><EFBFBD>80
  <EFBFBD>𡢅<EFBFBD><><E79289><EFBFBD>霈殷<E99C88>HTTP

<EFBFBD>函蔡撉諹<EFBFBD>:
  <EFBFBD>𡢅<EFBFBD> 摰硺<E691B0><E7A1BA><EFBFBD><E59786><EFBFBD><EFBFBD>亙熒
  <EFBFBD>𡢅<EFBFBD> <20>亙熒璉<E78692><E79289><EFBFBD><E4BC90><EFBFBD>
  <EFBFBD>𡢅<EFBFBD> 銝駁△霈輸䔮嚗𡁏迤撣?
  <EFBFBD>𡢅<EFBFBD> SPA頝舐眏嚗𡁏迤撣賂<E692A3><E8B382>瑟鰵銝?04嚗?
  <EFBFBD>𡢅<EFBFBD> API隞<49><E99A9E>嚗𡁏迤撣賂<E692A3><E8B382>蟖ORS<52>躰秤嚗?
  <EFBFBD>𡢅<EFBFBD> <20><EFBFBD><E8B9B1><EFBFBD>皞琜<E79A9E><EFBFBD>虜嚗<E8999C><E59A97>摮条<E691AE><E69DA1><EFBFBD><EFBFBD>
  <EFBFBD>𡢅<EFBFBD> Gzip<69>讠憬嚗𡁜歇<F0A1819C>舐鍂

<EFBFBD>烐綉<EFBFBD><EFBFBD><EFBFBD>霅?
  <EFBFBD>𡢅<EFBFBD> 摰墧𧒄<E5A2A7>烐綉嚗𡁜歇<F0A1819C>滨蔭
  <EFBFBD>𡢅<EFBFBD> <20><EFBFBD><E4BA99><EFBFBD>嚗𡁜虾霈輸䔮
  <EFBFBD>𡢅<EFBFBD> <20>𡃏郎閫<E9838E><E996AB>嚗𡁜歇<F0A1819C>滨蔭

<EFBFBD><EFBFBD>摰峕<EFBFBD>嚗屸<EFBFBD>蝵脫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD>﹝蝏𤘪<EFBFBD>

<EFBFBD><EFBFBD><EFBFBD>煾䔮嚗諹窈<EFBFBD>仿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤥁<EFBFBD>蝟餅<EFBFBD><EFBFBD>舀𣈲<EFBFBD><EFBFBD><EFBFBD>?

蟡嗪<EFBFBD>蝵脤◇<EFBFBD><EFBFBD><EFBFBD><EFBFBD>