در فیلد upstreams میتوانید اطلاعات مربوط به سرورهایی را که پشت CDN قرار میگیرند، وارد کنید. هر upstream نیاز به یک نام غیرتکراری دارد تا بتوان به آن در تنظیمات فیلد location ارجاع داد.
Value | Type | Upstream |
---|---|---|
Max Length: 64 characters | string | name |
http | https | string enum | scheme |
object | hc | |
object | hc2 | |
1 | 2 | int | preferredHealthCheckVersion |
host header for requests to upstream | string | hostHeader |
immutable | string | quickcdnIntegrity |
array of objects | servers | |
True | False | bool | smartRouting |
int | passiveThreshold | |
object | loadBalancer |
نکته
مقدار فیلد quickcdnIntegrity توسط کاربر قابل تغییر نیست و در صورتی که مقدار داشته باشد تغییر آدرس آپستریم از طریق CDN ممکن نخواهد بود. برای تغییر سرورهای آپستریم رکوردهای DNS را آپدیت کنید.
برای هر سروری که پشت CDN قرار میگیرد لازم است مقادیر host و port آن سرور برای ایجاد ارتباط سرورهای لبه با آن وارد شود. همچنین میتوانید برای یک Upstream چند سرور تعریف کنید و با استفاده از weight ترافیک را با وزن مشخص بین سرورها تقسیم کنید.
Value | Type | upstream.servers |
---|---|---|
RFC 1123 | string | host |
1-65535 | int32 | port |
>= 0 | int32 | weight |
True | False | bool | passive |
نکته
سرورهایی که مقدار passive آنها True باشد تنها در حالتی ترافیک دریافت میکنند که تعداد سرورهای آپستریم غیرقابل دسترس از passiveThreshold (تعیین شده در جدول اول) بیشتر باشد.
Value | Type | upstream.hc |
---|---|---|
Max Length: 128 characters | string | path |
Value | Type | upstream.hc2 |
---|---|---|
http | tcp | string | protocol |
Max: 10 | int | downThreshold |
Max: 120 | int | timeoutSeconds |
Max Length: 2048 characters | string | http.uri |
host header set in health check requests | string | http.hostHeader |
در فیلد loadBalancer می توانید الگوریتم توزیع بار را پیکربندی کنید. |
Value | Type | upstream.loadBalancer |
---|---|---|
hash | wrr | string | strategy |
ip | header | string | hashType |
lower_snake_case header names | []string | headers |
مثال از پیکربندی loadBalancer برای فعال سازی الگوریتم Consistent Hashing بر اساس ریموت آی پی کاربر:
loadBalancer: hashType: ip strategy: hash
مثال از پیکربندی loadBalancer برای فعال سازی الگوریتم Consistent Hashing بر اساس هدر های ارسالی از سمت کاربر:
loadBalancer: hashType: header strategy: hash headers: - user_agent - host