Load Balancing & Multi-site IIS
Server roles, shared media và per-app config
Load Balancing & Multi-site IIS
Khi hosting một backoffice + nhiều site công khai trên IIS dùng chung database, mỗi site giữ thư mục TEMP riêng. Thay đổi nội dung được truyền qua DatabaseServerMessenger.
Cài đặt Cơ bản (mọi site)
Hosting:LocalTempStorageLocation: EnvironmentTemp— ghi vào %TEMP%/UmbracoData/Examine:LuceneDirectoryFactory: TempFileSystemDirectoryFactory— indexes dưới %TEMP%Global:MainDomLock: FileSystemMainDomLock— file-based lock cho multi-site
Server Roles
| Role | Trách nhiệm |
|---|---|
| SchedulingPublisher | Primary. Chạy scheduled tasks. Chỉ một app. |
| Subscriber | Xử lý requests, không chạy scheduled tasks, lấy cache từ DB. |
| Single | Một app làm tất cả (mặc định standalone). |
Cấu hình qua uTPro:Hosting:ServerRole trong appsettings. Subscriber tự động bỏ qua uSync import và schema migrations.
Shared Media
Trỏ tất cả app vào thư mục chung với uTPro:Hosting:MediaPath:
"uTPro": { "Hosting": { "MediaPath": "D:\\Shared\\uTPro\\media" } }Data Protection Keys
Chia sẻ keys giữa các instance với uTPro:DataProtection:KeysPath và ApplicationName.
Per-app Config Overlays
Sử dụng biến môi trường UTPRO_APP để chọn overlay:
UTPRO_APP=backoffice→ load appsettings.backoffice.jsonUTPRO_APP=website→ load appsettings.website.json- (không set) → standalone mode
Checklist Triển khai
| Mối quan tâm | Cài đặt |
|---|---|
| Database | Một DB dùng chung (bắt buộc) |
| Server role | Backoffice=SchedulingPublisher; websites=Subscriber |
| Media | Thư mục chung qua MediaPath |
| TEMP/NuCache | Riêng theo app (không chia sẻ) |
| Data Protection | Đường dẫn chung khi các app validate token lẫn nhau |