static and media url fix 2
This commit is contained in:
1 parent
372f962f0f
commit
5e16dee19e
4 files changed
+16
-26
No files matched your search
@@ -24,9 +24,17 @@ customer_ticket_seed
|
||||
|
||||
## 2. دامنهها و Traefik خود Coolify
|
||||
|
||||
دامنه اصلی HTTPS را در Coolify مستقیماً به سرویس `web` و پورت `8000` متصل کنید. مقدار Domain سرویس web باید دقیقاً یک URL و بدون فاصله یا کامای انتهایی باشد. Traefik خود Coolify TLS، reverse proxy و هدر `X-Forwarded-Proto` را مدیریت میکند؛ Nginx جلوی Django قرار نمیگیرد.
|
||||
این راهنما برای حالت عادی **Git-based Docker Compose Application** است، نه گزینه `Raw Compose Deployment`. در این حالت Coolify باید routeهای Traefik را از فیلدهای Domains بسازد؛ routerهای کامل Traefik را بهصورت دستی داخل Compose تعریف نکنید.
|
||||
|
||||
فیلد Domain سرویسهای `nginx` و `notification-worker` را در UI کاملاً خالی بگذارید. Compose برای Nginx routerهای صریح HTTP/HTTPS با priority برابر 1000 میسازد و `/static/`، `/media/branding/` و `/protected-media/` را بدون StripPrefix به پورت 80 میفرستد. hostname این ruleها از `ASSET_HOST` خوانده میشود. معماری containerها همچنان بدون `proxy_pass` بین Nginx و Django است.
|
||||
در `Configuration > General` مقدارها را دقیقاً به شکل زیر وارد کنید:
|
||||
|
||||
- `Domains for web`: `https://connect.loolegostar.com:8000`
|
||||
- `Domains for notification-worker`: خالی
|
||||
- `Domains for nginx`: `cc`
|
||||
|
||||
در `Configuration > Advanced` گزینه `Strip Prefixes` را **خاموش** کنید. در غیر این صورت Coolify پیشوند `/static` یا `/media/branding` را قبل از تحویل درخواست حذف میکند، در حالی که `docker/nginx.conf` عمداً همان مسیرهای کامل را match میکند. بعد از Save، گزینه `Reload Compose File` و سپس Redeploy را اجرا کنید.
|
||||
|
||||
Traefik خود Coolify TLS، reverse proxy و اولویت routeهای path-based را مدیریت میکند؛ Nginx جلوی Django قرار نمیگیرد و فقط فایلهای static و media را سرو میکند.
|
||||
|
||||
فایلهای آپلودی تیکت عمومی نیستند: Django ابتدا مجوز را بررسی میکند و سپس کاربر را با یک URL امضاشده پنجدقیقهای به `/protected-media/` روی Nginx میفرستد. branding عمومی زیر `/media/branding/` مستقیماً از Nginx سرو میشود.
|
||||
|
||||
@@ -122,7 +130,7 @@ SECURE_HSTS_PRELOAD=false
|
||||
1. volumeها و database خالی را ایجاد کنید.
|
||||
2. طبق `docs/PRODUCTION_SEED.md` سه فایل seed را داخل volume `customer_ticket_seed` قرار دهید.
|
||||
3. Environment Variables را در Coolify وارد کنید.
|
||||
4. `ASSET_HOST` را روی hostname عمومی بگذارید، Domain سرویس web را بدون کامای انتهایی تنظیم کنید و Domainهای nginx/worker را خالی نگه دارید؛ سپس Compose را deploy کنید.
|
||||
4. Domain سرویس web و سه Domain مسیرمحور nginx را مطابق بخش ۲ وارد، `Strip Prefixes` را خاموش و Domain سرویس worker را خالی نگه دارید؛ سپس Compose را deploy کنید.
|
||||
5. log سرویس `web` را برای موفقیت migrate، import production seed، collectstatic و Gunicorn بررسی کنید. وقتی seed موجود است، bootstrap عمداً اجرا نمیشود تا snapshot تغییر نکند.
|
||||
6. log سرویس `notification-worker` را بررسی کنید؛ container باید Running بماند.
|
||||
7. با superuser منتقلشده از SQLite وارد شوید و با گیرنده آزمایشی مجاز یک SMS و یک پیام Bale واقعی بفرستید.
|
||||
|
||||
Reference in new issue
Block a user