Tüm Ürünler
Search
Belge Merkezi

CDN:Kurallar motoru

Son Güncelleme:Oct 01, 2026

Kurallar motoru, koşullu kuralları yapılandırmanızı sağlayan bir grafik kullanıcı arabirimi sunar. Bu kurallar, kullanıcı istek parametrelerini analiz ederek belirli bir yapılandırmanın geçerli olup olmadığını belirler ve size CDN DCDN yapılandırma ilkelerinin uygulanması üzerinde esnek ve hassas bir kontrol imkanı tanır.

Talimatlar

Arka Plan

Talimatlar

  1. Ne iletilmesi gerektiğini anlamak için İngilizce metni okuyun

  2. Türkçe metni SIFIRDAN yazın — İngilizce cümle yapısını unutun

  3. Tüm markdown biçimlendirmesini, kod bloklarını, bağlantıları ve görselleri olduğu gibi koruyun

  4. xref etiketlerini (<a data-tag="xref" ...>metin</a>) — tüm öznitelikleri orijinal sırası ve büyük/küçük harf kullanımıyla birlikte koruyun, yalnızca > ve arasındaki görünür metni çevirin

  5. Dile özel kuralları sıkı bir şekilde uygulayın

  6. Durdurulan sözcük (stopword) kurallarını taviz vermeden uygulayın

  7. Numaralı adımlarda ve prosedürel madde listelerinde emir kipini kullanın

  8. Terminoloji tutarlılığını sağlayın — aynı terim her yerde aynı şekilde çevrilmelidir

  9. Listelerde/tablolarda cümle başlangıçlarını çeşitlendirin — hiçbir başlangıç ifadesi 3 kezden fazla tekrarlanmamalıdır

  10. YALNIZCA Türkçe markdown belgesini döndürün, açıklama eklemeyin

    Alibaba Cloud CDN DCDN konsolu, önbellek süresi dolma yapılandırması ve kaynak sunucudan veri çekme parametrelerinin yeniden yazılması gibi temel özellikler sunar; bu özellikler çoğu genel gereksinimi karşılar. Ancak, yolu /example içeren isteklerin belirli bir kaynak adresinden alınması gibi özel gereksinimler için kurallar motorunu kullanarak özel yapılandırmalar uygulamanız gerekir. Ayrıca, Alibaba Cloud CDN DCDN son derece esnek özelleştirmeleri destekleyen EdgeScript özelliğini sağlar.


    Yetenekler


    Temel özellikler


    Temel özellikler ve kurallar motoru


    EdgeScript


    Özellik uygulaması


    Genel amaçlı yapılandırmalar


    Grafiksel bir arayüz kullanarak koşullu filtreleme kuralları oluşturmanıza olanak tanır. URI, Header, Cookie ve Query String gibi birden çok eşleşme türünü ve VE/VEYA mantıksal kombinasyonlarını destekler.


    Son derece esnek özelleştirmeyi destekler ve özel betik gerektiren gelişmiş senaryolar için uygundur.


    Senaryolar


    Genel amaçlı senaryolar


    Gelişmiş özel senaryolar


    Tamamen özel senaryolar


    Kullanım kolaylığı (gerekli teknik beceriler)


    Yüksek


    Orta


    Düşük


    Yapılandırma esnekliği


    Düşük


    Orta


    Yüksek

    Karmaşık mantık ve EdgeScript

    Kural motoru temel VE/VEYA mantıksal kombinasyonlarını destekler ve çoğu koşullu filtreleme senaryosu için uygundur. Ancak aşağıdaki senaryolar, EdgeScript kullanıp kullanmama konusunda karar vermenize yardımcı olabilir:

    • Karmaşık düzenli ifade eşleştirme: Kural motorundaki düzenli ifade operatörü varsayılan olarak devre dışıdır. Etkinleştirmek için destek talebi gönderin. Düzenli ifadeleri sıkça kullanmanız gerekiyorsa, EdgeScript düzenli ifade eşleştirmeyi yerel olarak desteklediğinden daha kullanışlıdır.

    • Hassas çok boyutlu kombinasyonlar: İstemci IP'si ve User-Agent'ın her ikisinin de düzenli ifadelerle eşleştirilmesi (örneğin, User-Agent'ında belirli bir anahtar kelime bulunan belirli bir IP aralığından gelen istekleri engelleme) gibi birden çok ölçütü birleştiren karmaşık değerlendirmelerin yapılandırılması kural motorunda zahmetlidir. EdgeScript, betik mantığını kullanarak birden çok koşulu esnek şekilde birleştirmenize olanak tanır.

    • Ayrıntılı çok dizinli IP erişim kontrolü: EdgeScript, farklı IP adresi aralıklarına farklı dizinlere erişim izni vermenizi sağlar. Örneğin, bir IP adresi aralığının tüm dizinlere erişmesine izin verebilir, belirli bir IP adresinin yalnızca bir dizine erişmesine izin verebilir ve diğer tüm IP adreslerini reddedebilirsiniz. IP adreslerini ve URI yollarını eşleştirmek için match_re kullanın. İsteğe izin vermek için return true kullanın ve isteği reddetmek için exit(403) kullanın.

    Sınırlamalar

    • Her etki alanı adı başına en fazla 50 kural koşulu oluşturabilirsiniz.

    • Her kural koşulu en fazla 20 alt kural içerebilir.

    • Konsolda veya OpenAPI kullanarak kural koşullarını yapılandırırken düzenli ifade eşleştirme veya düzenli ifade eşleşmeme operatörlerini kullanamazsınız. Ancak, bu operatörleri kullanan mevcut yapılandırmaları görüntüleyebilirsiniz. Bu operatörleri kullanmak için ESA hizmetini kullanın.

    • Bir kural koşulu, tek bir etki alanı adı içindeki tüm özelliklerde en fazla beş kez referans alınabilir.

    • Kural koşullarını en fazla üç düzey derinliğinde iç içe yerleştirebilirsiniz ve her düzey kendi bağımsız mantıksal ilişkilerine sahip olabilir.

    • Önbellek süresi dolma zamanını ayarlama veya giden istek üstbilgilerini değiştirme gibi bir özellik bir kural koşuluna referans veriyorsa, yürütme sırasını özelliğin yapılandırma sırası değil, koşulun önceliği belirler.

    • Yukarıdaki sınırlamalar arasında, 50 kural koşulu, 20 alt kural ve 3 düzey iç içe yerleştirme maksimumları, talep üzerine artırılamayan sabit sınırlardır. Tek bir hızlandırılmış etki alanı adı içindeki tüm özelliklerde kural koşullarına yapılan toplam referans sayısı varsayılan olarak 5'tir ve talep üzerine artırılabilir.

      • Tek bir etki alanı adı için kural koşullarının referans alınabileceği toplam sayıyı (varsayılan olarak beş) artırmak üzere destek talebi gönderin. Destek talebinde aşağıdaki bilgileri sağlayın: sınırı artırmak istediğiniz hızlandırılmış etki alanı adı, hedeflenen referans sayısı ve iş senaryonuzun açıklaması.

      • Başka bir hızlandırılmış etki alanı adı eklerken, o etki alanı için kural koşulu referans sayısını artırmak üzere ayrı bir destek talebi gönderin. Süreç ilk taleple aynıdır.

    • Her koşul, istemci IP'si, URI, dosya uzantısı, dosya adı ve User-Agent gibi eşleşme türleri için en fazla 32 eşleşme değerine sahip olabilir. Büyük bir istemci IP izin listeniz varsa, birden çok IP adresini CIDR bloklarında (örneğin, 120.209.XXX.X/24) birleştirerek IP adreslerini yapılandırın ve eşleşme değeri kapasitesinden tasarruf edin.

    • En fazla 32 User-Agent eşleşme değeri yapılandırabilirsiniz. Bu sınırın ötesindeki değerler yoksayılır. Çok sayıda User-Agent'ı eşleştirmek için benzer User-Agent değerlerini birleştirmek üzere joker karakter (*) kullanın. Örneğin, *Chrome* tüm Chrome tarayıcı sürümlerini eşleştirir) veya daha esnek eşleştirme mantığı için EdgeScript kullanın.

    Özellik önceliği ve yürütme mantığı

    Kural motorunu yapılandırırken aşağıdaki özellik önceliklerini ve yürütme mantığını göz önünde bulundurun:

    • Referer hotlink koruması kural motorundan önce gelir: Bir istek Referer üstbilgisi içerdiğinde, sistem önce bunu Referer kara listesine ve beyaz listesine göre değerlendirir. İstek beyaz listeyle eşleşirse, kural motorunu atlayarak devam etmesine izin verilir. İstek beyaz listeyle eşleşmezse, sistem isteği hemen engeller. Referer üstbilgisi boşsa, istek bu mantığı atlar ve kural motoru tarafından değerlendirilir.

    • Kural koşullarını kullanan özellikler için yürütme sırası: Önbellek Süresi Dolma veya Giden İstek Üstbilgisini Değiştir gibi özellikler kural koşullarını kullandığında, sistem bunları özelliklerin yapılandırma sırasına göre değil, ilişkili kural koşullarının önceliğine göre yürütür. Örneğin, Önbellek Süresi Dolma ve Kaynak Sunucuya Parametre Yeniden Yazma farklı önceliklere sahip kural koşulları kullanıyorsa, sistem bunları kural koşulu önceliğine göre en yüksekten en düşüğe doğru yürütür.

    • URL kimlik doğrulama ve önbellekleme arasındaki çakışmaları giderin: URL kimlik doğrulamayı yapılandırdıktan sonra, isteklerin kimlik doğrulama parametreleri olmadan erişilebilir olması veya geçerli bağlantıların yanlışlıkla engellenmesi gibi beklenmeyen davranışlarla karşılaşırsanız aşağıdakileri sırayla kontrol edin:

      1. WAF beyaz listesinin yapılandırılıp yapılandırılmadığını kontrol edin. WAF beyaz listesi, CDN DCDN kimlik doğrulama mantığını atlayabilir ve isteklere doğrudan izin verebilir.

      2. URL Parametrelerini Yoksay özelliğinin auth_key gibi kimlik doğrulama parametrelerini kaldırmadığından emin olun; bu parametreler URL parametrelerini yoksay ayarı tarafından filtrelendiğinde, önbellek isabetleri için kimlik doğrulama doğrulaması atlanır.

      3. Önbellek Anahtarı Kuralının kimlik doğrulama parametresini yoksaymadığını onaylayın. Eğer yoksayılırsa, farklı kimlik doğrulama parametrelerine sahip istekler aynı önbelleğe alınmış içeriği alabilir ve bu da kimlik doğrulamayı etkili bir şekilde atlar.

    Kural koşulu sözdizimi

    Bir kural koşulu, mantıksal operatörler kullanarak bir veya daha fazla koşullu ifadeyi birleştirir. Aşağıdaki bölümlerde sözdizimi açıklanmaktadır.

    Mantıksal operatörler

    Mantıksal operatörler, iç içe geçmiş koşul kümeleri dahil olmak üzere aynı düzeydeki koşulları değerlendirir. Desteklenen operatörler and ve or'dir.

    • and (VE): Mantıksal VE operatörü. Tüm koşullar doğru olduğunda eşleşme başarılı olur.

    • or (VEYA): Mantıksal VEYA operatörü. Herhangi bir koşul doğru olduğunda eşleşme başarılı olur. Örneğin, aynı yanıt üstbilgisi için birden çok kural koşulu yapılandırmak, farklı koşullar altında aynı yanıt üstbilgisini eklemenize olanak tanır. Örnek: URI /path-a içerdiğinde or URI /path-b içerdiğinde yanıt üstbilgisini ekleyin.

    Koşullu ifadenin parametreleri

    Bir kuralın en küçük birimi olan koşullu ifade aşağıdaki parametreleri içerir:


    Parametre


    Etki alanı adı yapılandırmasındaki koşul işlevine karşılık gelen yapılandırma parametresi


    Açıklama


    Gerekli


    Koşullu eşleşme


    match


    Koşullu eşleşme ifadesini belirtir.


    Evet


    Mantıksal operatör


    logic


    Koşullu eşleşme ifadesi için mantıksal operatörü belirtir. Geçerli değerler and ve or'dir.


    Evet


    Ölçütler


    criteria


    Değerlendirilecek koşullu ifade dizisini belirtir.


    Evet


    Eşleşme türü


    MatchType


    Eşleştirilecek istemci isteğindeki bilgi türünü belirtir.


    Evet


    Eşleşme nesnesi


    MatchObject


    Eşleşme türünü daha da hassaslaştırır. Örneğin, bir istemci IP adresi POP bağlantı IP'si veya XFF IP'si olarak belirtilebilir.


    Hayır


    Eşleşme operatörü


    MatchOperator


    Gerçekleştirilecek karşılaştırmayı belirtir.


    Evet


    Eşleşme değeri


    MatchValue


    İstemci isteğinden gelen verilere karşı karşılaştırılacak değer.


    Evet


    Koşulu tersine çevir


    negate


    Koşullu ifadenin sonucunun tersine çevrilip çevrilmeyeceğini belirtir. Geçerli değerler true ve false'dur.


    Evet


    Büyük/küçük harf duyarlılığı


    caseSensitive


    Eşleşme değerinin büyük/küçük harfe duyarlı olup olmadığını belirtir.


    Hayır


    Kural koşulu adı


    name


    Kural koşulunun adını belirtir.


    Evet


    Durum


    status


    Kural koşulunun durumunu belirtir.


    Evet

    Koşullu ifade yapılandırması

    Eşleşme türü

    Alan adı yapılandırmasındaki condition işlevindeki karşılık gelen yapılandırma parametresi

    Açıklama

    Eşleşen nesne

    Eşleşme işleci

    Eşleşen değer

    Büyük/küçük harf duyarlılığı

    Karşılık gelen nginx/tengine değişkeni

    Protokol

    scheme

    İstemci isteğinin kullandığı protokoldür (HTTP veya HTTPS gibi).

    Uygulanamaz

    • eşittir

    • eşit değildir

    • http

    • https

    Uygulanamaz

    $scheme

    İstek yöntemi

    method

    İstemci isteğinin kullandığı istek yöntemidir (GET veya PUT gibi).

    Uygulanamaz

    • eşittir

    • eşit değildir

    • get

    • put

    • post

    • delete

    • head

    Uygulanamaz

    $request_method

    URI (yol)

    uri

    İstek parametreleri hariç, istemci istek URL'sindeki yoldur. Örneğin: /favicon.ico.

    Uygulanamaz

    • herhangi birini içerir

    • herhangi birini içermez

    ? ve joker karakterleri desteklenir. Örneğin, //my_path/* girin. Birden çok değer desteklenir.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    $raw_uri veya $uri

    Dosya adı

    basename

    İstemcinin istediği dosyanın adıdır. Örneğin: name1.

    Uygulanamaz

    • herhangi birini içerir

    • herhangi birini içermez

    ? ve * joker karakterleri desteklenir. Birden çok değer girebilirsiniz.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    -

    Dosya uzantısı

    extension

    İstemcinin istediği dosyanın dosya uzantısıdır. Sistem, uzantıyı dosya adının son noktasından (.) dosya adının sonuna kadar olan alt dize olarak tanımlar. Örneğin: .mp4.

    Uygulanamaz

    • herhangi birini içerir

    • herhangi birini içermez

    ? ve * joker karakterleri desteklenir. Birden çok değer girebilirsiniz.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    -

    Ana bilgisayar adı

    hostname

    İstemci isteğindeki ana bilgisayar adıdır. Eşleşme sırası: istek URL'sindeki host > Host istek üst bilgisindeki host.

    Uygulanamaz

    • herhangi birini içerir

    • herhangi birini içermez

    İstemci isteğinden gelen ana bilgisayar adıdır. Birden çok değer girebilirsiniz.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    $host veya $http_host

    İstemci IP adresi

    clientip

    İstemcinin IP adresidir. IPv4 (örneğin 1.1.X.X), IPv6 (örneğin 240e:95c:3004:2:3:0:0:XXX) ve CIDR blokları (örneğin 20.209.XXX.XXX/31) desteklenir.

    • POP bağlantı IP'si

    • XFF IP'si

    Not

    POP bağlantı IP'si ve XFF IP'si hakkında daha fazla bilgi için bkz. .

    • herhangi birini içerir

    • herhangi birini içermez

    IPv6 adresleri (örneğin 240e:XXX:3004:2:3:0:0:3f7) ve CIDR blokları (örneğin 120.209.XXX.XXX/31) desteklenir. Birden çok değer girebilirsiniz.

    Uygulanamaz

    $remote_addr

    İstemci IP sürümü

    clientipVer

    İstemci adresinin IP sürümüdür: IPv4 veya IPv6.

    • POP bağlantı IP'si

    • XFF IP'si

    Not

    POP bağlantı IP'si ve XFF IP'si hakkında daha fazla bilgi için bkz. .

    • eşittir

    • eşit değildir

    • v4

    • v6

    Uygulanamaz

    -

    İnternet hizmet sağlayıcısı (ISP)

    geolocation

    İstemci IP adresinin ait olduğu internet hizmet sağlayıcısıdır.

    • POP bağlantı IP'si

    • XFF IP'si

    Not

    POP bağlantı IP'si ve XFF IP'si hakkında daha fazla bilgi için bkz. .

    • herhangi birini içerir

    • herhangi birini içermez

    Açılır listeden bir internet hizmet sağlayıcısı seçebilir veya seçenekleri filtrelemek için karakterler girebilirsiniz. ID veya ada göre bulanık arama desteklenir. Birden çok değer girebilirsiniz.

    Uygulanamaz

    $ip_isp_id

    IP coğrafi konumu

    geolocation

    İstemci IP adresinin coğrafi konumudur.

    • POP bağlantı IP'si

    • XFF IP'si

    Not

    POP bağlantı IP'si ve XFF IP'si hakkında daha fazla bilgi için bkz. .

    • herhangi birini içerir

    • herhangi birini içermez

    Açılır listeden bir konum seçebilir veya seçenekleri filtrelemek için karakterler girebilirsiniz. ID veya ada göre bulanık arama desteklenir. Birden çok değer girebilirsiniz.

    Uygulanamaz

    $ip_country_id

    İstek parametresi

    querystring

    İstek URL'sindeki bir parametredir.

    Parametre adını girin.

    • var

    • yok

    • herhangi birini içerir

    • herhangi birini içermez

    • büyüktür

    • büyük veya eşittir

    • küçüktür

    • küçük veya eşittir

    ? ve * joker karakterleri desteklenir. Birden çok değer girebilirsiniz.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    $arg_{name}

    İstek üst bilgisi

    header

    İstemci isteğindeki bir üst bilgidir.

    Bir parametre adı girebilir veya açılır listeden bir parametre seçebilirsiniz.

    • var

    • yok

    • herhangi birini içerir

    • herhangi birini içermez

    • büyüktür

    • büyük veya eşittir

    • küçüktür

    • küçük veya eşittir

    Birden çok değer girebilirsiniz.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    $http_{name}

    Cookie

    cookie

    İstemci isteğindeki cookie'dir.

    Cookie adını girin.

    • var

    • yok

    • herhangi birini içerir

    • herhangi birini içermez

    • büyüktür

    • büyük veya eşittir

    • küçüktür

    • küçük veya eşittir

    ? ve * joker karakterleri desteklenir. Birden çok değer girebilirsiniz.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    $cookie_{name}

    User-Agent

    useragent

    İstek üst bilgisindeki User-Agent'tır.

    Uygulanamaz

    • herhangi birini içerir

    • herhangi birini içermez

    Açılır listeden bir değer seçebilir veya Chrome/25 gibi bir User-Agent değeri girebilirsiniz. ? ve * joker karakterleri desteklenir. Birden çok değer girebilirsiniz. En fazla 32 User-Agent değeri yapılandırılabilir. Bu sınır aşılırsa yapılandırma etkili olmaz.

    • Büyük/küçük harfe duyarlı

    • Büyük/küçük harfe duyarsız

    $http_user_agent

    Aralık paketi

    range

    Belirtilen bir yüzde oranındaki istemci istekleriyle eşleşir.

    Uygulanamaz

    • eşittir

    • eşit değildir

    Bir yüzde değeri girin.

    Uygulanamaz

    -

    Zaman

    time

    İstemci isteğinin gerçekleştiği zamandır. Zaman UTC+8 cinsindendir. Örneğin: 09:10~14:22.

    Uygulanamaz

    • herhangi birini içerir

    • herhangi birini içermez

    09:10 ile 14:22 arasındaki dönemi temsil eden 09:10~14:22 gibi bir zaman aralığı girin.

    Uygulanamaz

    -

    Nginx var

    ngxvar

    Önceki değişkenler gereksinimlerinizi karşılamıyorsa Nginx değişkenlerini kullanın. Desteklenen değişkenlerin listesi için resmi Nginx belgelerine bakın.

    Açılır listeden bir değişken seçebilir veya bir değişken adı girebilirsiniz. Birleştirme desteklenir, örneğin $region:$isp.

    • var

    • yok

    • herhangi birini içerir

    • herhangi birini içermez

    • büyüktür

    • büyük veya eşittir

    • küçüktür

    • küçük veya eşittir

    Birden çok değer girebilirsiniz.

    Uygulanamaz

    ${name}

    Koşullu ifadeler için genel yapılandırma notları

    • URI (yol) eşleşme başlangıç noktası: URI eşleşmesi için değer, alan adından sonraki yoldaki ilk / ile başlayan ve alan adını ile istek parametrelerini dışlayan yol bölümüdür. Örneğin, https://example.com/path/file.html?key=value isteği için gerçekten eşleşen URI değeri /path/file.html olur. Eşleşen değer / ile başlamalıdır.

    • Dosya uzantısı eşleşme biçimi: Dosya uzantısı eşleşmesi yapılandırdığınızda eşleşen değer bir nokta (.) içermelidir. Örneğin, .txt dosyalarını eşleştirmek için txt yerine .txt girin; aksi takdirde eşleşme başarısız olabilir.

    • Joker karakter kullanım örnekleri: URI ve dosya uzantısı eşleşmeleri ? (tek bir karakterle eşleşir) ve * (herhangi bir sayıda karakterle eşleşir) joker karakterlerini destekler. Yaygın örnekler:

      • /*.pdf: kök dizindeki tüm PDF dosyalarıyla eşleşir.

      • /api/*/data: herhangi bir alt yolda data içeren /api/ yollarıyla eşleşir.

      • .??: .js ve .ts gibi iki karakterli tüm dosya uzantılarıyla eşleşir.

    IP adresi doğrulama modu

    Kural motoru iki IP adresi doğrulama modu sunar. Seçtiğiniz mod, CDN DCDN POP'larının istemci IP adresini nasıl belirlediğini etkiler:

    • POP bağlantı IP'si: Bu mod, istemcinin bir CDN DCDN POP'a bağlanmak için kullandığı IP adresini eşleştirir. İstemci ile CDN DCDN POP arasındaki trafik bir proxy sunucusundan geçiyorsa POP bağlantı IP'si, proxy sunucusunun IP adresidir.

    • XFF IP'si: Bu mod, x-forwarded-for istek üstbilgisindeki en soldaki IP adresini eşleştirir. İstemci ile CDN DCDN POP arasında proxy sunucusu kullanılıp kullanılmamasından bağımsız olarak XFF IP'si her zaman istemcinin gerçek IP adresidir.

    Doğrulama modunu seçerken istemci isteğinin bir CDN DCDN POP'a ulaşmadan önce proxy sunucusundan geçip geçmediğini göz önünde bulundurun.

    Bir kural koşuluna başvuran özelliğin etkin olduğu CDN DCDN POP konumu da hangi IP adresi doğrulama modunu seçmeniz gerektiğini etkiler. L2 POP'larda etkili olan kaynak çekme özellikleri için kullanıcı isteğinin geçtiği L1 POP, aracı bir proxy sunucusu olarak kabul edilir.

    Örnek: İstemcinin gerçek IP adresinin 10.10.10.10 ve proxy IP adresinin 192.168.0.1 olduğunu varsayalım.

    • Proxy sunucusu olmadan:

      • x-forwarded-for istek üstbilgisi değeri: 10.10.10.10.

      • İstemcinin gerçek IP adresi (x-forwarded-for istek üstbilgisindeki en soldaki IP) = istemci ile CDN DCDN POP arasında kurulan bağlantının IP adresi = 10.10.10.10.

    • Proxy sunucusuyla:

      • x-forwarded-for istek üstbilgisi değeri: 10.10.10.10,192.168.0.1.

      • İstemcinin gerçek IP adresi (x-forwarded-for istek üstbilgisindeki en soldaki IP): 10.10.10.10.

      • İstemci ile CDN DCDN POP arasında kurulan bağlantının IP adresi = proxy sunucusunun IP adresi = 192.168.0.1.

      • İstemcinin gerçek IP adresi (x-forwarded-for istek üstbilgisindeki en soldaki IP) ≠ istemci ile CDN DCDN POP arasında kurulan bağlantının IP adresi.

    Belirli bölgelerde bazı internet servis sağlayıcıları (ISS'ler) son kullanıcılara özel IP adresleri atayabilir. Bu durumda CDN DCDN düğümü kullanıcının özel IP adresini alır.

    Not

    Özel IP adresleri aşağıdaki üç aralıkta yer alır:

    • A Sınıfı özel IP adresleri: 10.0.0.0–10.255.255.255. Alt ağ maskesi: 10.0.0.0/8.

    • B Sınıfı özel IP adresleri: 172.16.0.0–172.31.255.255. Alt ağ maskesi: 172.16.0.0/12.

    • C Sınıfı özel IP adresleri: 192.168.0.0–192.168.255.255. Alt ağ maskesi: 192.168.0.0/16.

    Eşleşme işleçleri (matchOperator)

    İşleç

    Etki alanı adı yapılandırmasındaki koşul işlevine karşılık gelen yapılandırma parametresi

    Açıklama

    eşittir

    matchOperator equals olarak ayarlanır.

    Değişken belirtilen eşleşme değeriyle tam olarak eşit olduğunda veya eşit olmadığında koşul sağlanır.

    eşit değildir

    matchOperator equals ve negate parametresi true olarak ayarlanır.

    var

    matchOperator exists olarak ayarlanır.

    Belirtilen değişkenin istekte var olup olmamasına göre koşul sağlanır.

    yok

    matchOperator exists ve negate parametresi true olarak ayarlanır.

    herhangi birini içerir

    matchOperator contains olarak ayarlanır.

    Değişken belirtilen eşleşme değerlerinin herhangi birini içeriyorsa (veya içermiyorsa) koşul sağlanır. En fazla 32 eşleşme değeri desteklenir.

    İki tür içerik eşleme desteği bulunur:

    • Tam eşleşme: Eşleşme değerini doğrudan girin. Örneğin a ile eşleştirmek için değişkenin a'ya eşit olması gerekir.

    • Joker karakter eşleşmesi: Joker karakter olarak kullanabilirsiniz. Desteklenen desenler arasında a, a ve a* bulunur. Bunlar sırasıyla abc, bca ve bcabc ile eşleşir.

    hiçbirini içermez

    matchOperator contains ve negate parametresi true olarak ayarlanır.

    büyüktür

    matchOperator gt olarak ayarlanır.

    Yani >

    küçüktür

    matchOperator lt olarak ayarlanır.

    Yani <

    büyük veya eşit

    matchOperator ge olarak ayarlanır.

    Yani >=

    küçük veya eşit

    matchOperator le olarak ayarlanır.

    Yani <=

    düzenli ifade eşleşmesi

    matchOperator regex olarak ayarlanır.

    Değişkeni bir düzenli ifadeyle eşleştirir.

    Not

    Kuralları konsolda veya OpenAPI kullanarak yapılandırırsanız bu düzenli ifade işleçlerini kullanamazsınız. Ancak mevcut yapılandırmaları görüntüleyebilirsiniz. Düzenli ifadeyle ilgili eşleşme işleçlerini kullanmak için

    düzenli ifade eşleşmemesi

    matchOperator regex ve negate parametresi true olarak ayarlanır.

    Joker karakterler


    Joker karakter


    Açıklama


    Yol eşleştirme örneği


    ?


    Herhangi bir tek karakterle eşleşir.


    /img/?.png dosya adı tek karakterden oluşan kaynaklarla eşleşir; örneğin /img/a.png ve /img/b.png.


    *


    Sıfır veya daha fazla karakterle eşleşir.


    /api/* /api/ altındaki tüm yollarla eşleşir; örneğin /api/v1/users ve /api/v2/products. /static/*.css /static/ dizinindeki tüm CSS dosyalarıyla eşleşir.

    Kural koşullarını destekleyen özellikler

    Kategori

    Özellik

    Temel yapılandırma

    Koşullu kaynak

    Önbellek ayarları

    Önbellek süresi dolumu

    Giden yanıt üst bilgilerini değiştirme

    URL yeniden yazma

    Özel önbellek anahtarı

    Kaynak ayarları

    Giden istek üst bilgilerini değiştirme

    Gelen yanıt üst bilgilerini değiştirme

    Parametre yeniden yazma

    Kaynak sunucu için kaynak çekme HOST belirtme

    Erişim kontrolü

    Referer engelleme listesi veya izin listesini yapılandırma

    URL imzalama yapılandırma

    IP engelleme listesi veya izin listesini yapılandırma

    User-Agent engelleme listesi veya izin listesini yapılandırma

    Performans optimizasyonu

    Parametreleri yoksayma

    Video ayarları

    Aralık kaynak getirmeyi yapılandırma

    Trafik kısıtlama

    Tek istek kısıtlama

    Yapılandırma yönetimi

    • Çalıştırma eylemlerinin görüntüleneceği yer: Rules Engine sayfası yalnızca kural koşullarını tanımlar. Çalıştırma eylemlerini doğrudan yapılandırmaz. Önbellek süresi dolumu, URL yeniden yazma ve kısıtlama gibi belirli çalıştırma eylemlerini görüntülemek ve yönetmek için kurala başvuran özelliğin sayfasına gitmeniz gerekir. Örneğin, bir önbellek süresi dolumu yapılandırması bir kural koşuluna başvuruyorsa bunu Cache Settings > Cache Expiration bölümünde görüntülemeniz ve değiştirmeniz gerekir.

    • Remote Authentication kural koşullarını desteklemez: Uzaktan kimlik doğrulama özelliği kural koşullarına başvuramaz. Uzaktan kimlik doğrulamanın etkili olduğu kapsamı denetlemek için rules engine kullanamazsınız.

    • Kimlik doğrulama zaman aşımı sınırı: Remote Authentication özelliğindeki Timeout değeri en fazla 3000 milisaniye (3 saniye) olarak ayarlanabilir. Varsayılan değer 500 milisaniyedir. 3000 milisaniye sistemin desteklediği maksimum değerdir.

    Gelişmiş kullanım senaryoları

    Rule Engine ile aşağıdaki gelişmiş yapılandırmaları uygulayabilirsiniz:

    • Farklılaştırılmış hız sınırlama: Bazı isteklere hız sınırı uygularken diğerlerine uygulamamak (örneğin, kimlik doğrulama parametreleri içeren URL'lere hız sınırı uygulamak ancak diğer URL'leri hariç tutmak) veya bir geri dönüş hız sınırı yapılandırmak için Rules Engine modülünde istek özelliklerini ayırt eden kural koşulları oluşturun. Ardından Tek İstek İçin Hız Sınırlama bölümünde farklı kural koşullarına başvurun ve her biri için farklı bir hız sınırı belirleyin.

    • IP tabanlı kanarya kaynak yönlendirmesi: İstemci IP adreslerine dayalı bir kanarya sürümü uygulamak veya belirli IP'lerden gelen istekleri farklı kaynaklara yönlendirmek için rules engine içinde bir IP eşleştirme koşulu oluşturun. Ardından "Conditional origin" altında bu kural koşuluna başvurun ve farklı kaynak adresleri belirtin.

    • Karma kaynak mimarisi önerisi: Hem WAF hem de OSS'i kaynak olarak kullanmanız gerekiyorsa birden fazla birincil kaynağı doğrudan yapılandırmayın. Bunun yerine, rules engine kullanarak URL yollarına dayalı eşleştirme koşulları oluşturun ve ardından "Conditional origin" altında her yol için kaynak adresini dinamik olarak belirtin. Bu yaklaşım, birden fazla kaynak arasındaki kaynak çakışmalarını önler.

    Yordam

    1. CDN konsolu oturumunu açın.

    2. Sol gezinme bölmesinde Domain Names öğesine tıklayın.

    3. Domain Names sayfasında hedef etki alanını bulun ve Actions sütunundaki Manage seçeneğine tıklayın.

    4. Belirtilen etki alanının sol gezinme çubuğunda Rules Engine öğesine tıklayın.

    5. Add Rule seçeneğine tıklayın.

    6. Add Rule sayfasında Rule Name ve Rule Content değerlerini belirtin.

    7. Yapılandırmayı tamamlamak için Submit seçeneğine tıklayın.

    Tipik yapılandırma senaryoları

    Aşağıdaki bölümlerde üç yaygın yapılandırma senaryosunun nasıl uygulanacağı açıklanmaktadır.

    Senaryo 1: IP izin listesi erişim kontrolü ve izin listesi dışı yönlendirmeler

    Gereksinim: Web sitesine yalnızca belirtilen IP adreslerinin erişmesine izin verin ve diğer tüm IP adreslerini otomatik olarak bir bakım sayfasına yönlendirin.

    Yapılandırma yaklaşımı:

    1. Rules Engine modülünde bir kural koşulu oluşturun. Eşleşme türünü Client IP address olarak, eşleşme işlecini does not contain any olarak ayarlayın ve izin verilen IP adreslerini eşleşme değerleri olarak girin.

    2. "Cache configuration" > "Access URL rewrite" altında bu kural koşuluna başvurun ve eşleşen istekleri (yani izin listesinde olmayan IP adreslerinden gelen istekleri) belirtilen bakım sayfası URL'sine (örneğin OSS'te barındırılan bir HTML sayfasına) yönlendirin.

    Notlar:

    • İzin listesinde olmayan IP adreslerinden gelen istekler yönlendirilmek yerine 403 döndürüyorsa birden fazla OSS kaynağının kaynak çakışmasına neden olup olmadığını kontrol edin. Her CDN DCDN etki alanının yalnızca bir birincil OSS kaynağıyla eşlenmesi önerilir.

    • Bakım sayfası URL'sinin herkese açık olduğundan ve başka erişim kontrolü kuralları tarafından engellenmediğinden emin olun.

    • Varsayılan davranış: Bir IP izin listesi kuralı bir URI yolu eşleştirme koşuluyla ilişkilendirildiğinde IP izin listesi denetimi yalnızca o URI yoluyla eşleşen isteklere uygulanır; eşleşmeyen istekler varsayılan olarak kabul edilir. IP erişim kontrolünü tüm yollara uygulamak için EdgeScript kullanarak özel mantık yazın.

    Senaryo 2: Referer koruması ve dosya uzantısı kontrolü

    Gereksinim: Belirtilen uzantılara sahip dosyalar için Referer erişimini kısıtlayın ancak bu uzantılara sahip dosyalar için boş Referer içeren isteklere izin verin.

    Yapılandırma yaklaşımı:

    1. Rules Engine modülünde bir kural koşulu oluşturun. Eşleşme türünü File extension olarak, eşleşme işlecini does not contain any olarak ayarlayın ve muaf tutmak istediğiniz uzantıları (örneğin .pdf) eşleşme değerleri olarak girin.

    2. "Erişim kontrolü" > "Referer hotlink protection" altında bu kural koşuluna başvurun. Belirtilenler dışındaki uzantılara yönelik istekler Referer izin listesi veya engelleme listesi tarafından kısıtlanır; belirtilen uzantılar için boş Referer içeren istekler ise muaf tutulur.

    Senaryo 3: Görüntü ve video dışı dosyalara erişimi engelleme

    Gereksinim: Bir OSS paket CDN hızlandırma üzerinden sunulmaktadır. Hazırlanmış kötü amaçlı URL'ler aracılığıyla .html gibi medya dışı dosyalara erişimin engellenmesi gerekir.

    Yapılandırma yaklaşımı:

    1. Rules Engine modülünde bir kural koşulu oluşturun. Eşleşme türünü File extension olarak, eşleşme işlecini contains any olarak ayarlayın ve .html,.htm,.php,.asp,.jsp değerlerini eşleşme değerleri olarak girin.

    2. Bir kural koşulu ekleyin. Eşleşme Türünü "Client IP", Eşleşme İşlecini "Does not contain any" ve Eşleşme Değerini izin verilen IP adresleri olarak ayarlayın.

    3. "Erişim kontrolü" altında bu kural koşuluna başvurun ve eşleşen istekler için 403 döndürün: İzin listesinde olmayan IP adreslerinden gelen ve belirtilen görüntü veya video formatlarında olmayan dosyalara yönelik istekler.

    Not (yüklemeye ilişkin kısıtlamalar):

    CDN rules engine yalnızca erişimi sınırlar; yüklemeleri denetleyemez. Yükleme sırasında dosya türlerini sınırlamak için OSS PostObject API'sini kullanın ve dosya türlerini kısıtlamak için bir Policy yapılandırın. Örneğin, starts-with $Content-Type image/ ayarlamak .html gibi görüntü dışı dosyaların yüklenmesini reddeder. OSS PutObject API'si dosya türlerini kontrol etmez ve yükleme sırasında medya dışı dosyaları engelleyemez.

    SSS

    Belirtilen bir kaynaktan getirirken Host üst bilgisi için yapılandırılan kurallar gelişmiş koşullu kural sınırına dahil edilir mi?

    Evet. Bir etki alanına uygulanan her kural gelişmiş koşullu kural sınırına dahil edilir. Her etki alanı başına en fazla 50 kural koşulu oluşturabilir ve her koşul en fazla 20 alt koşul içerebilir.

    Rules engine yapılandırıldıktan sonra çalıştırma eylemleri nerede bulunur?

    Rules engine kendisi yalnızca koşulları tanımlar ve önbellek süresi dolumu, kaynak istek parametresi yeniden yazma ve URL yeniden yazma gibi diğer özelliklerle birleştirildiğinde etkili olur. Çalıştırma eylemleri, başvurulan kuralları görüntüleyebileceğiniz veya yönetebileceğiniz belirli ilgili özelliğin yapılandırmasında yansıtılır. Örneğin, önce eşleştirme mantığını tanımlamak için bir kural koşulu oluşturun, ardından önbellek politikasının yalnızca eşleşen isteklere uygulanması için bu kurala önbellek süresi dolumunda başvurun.

    URL kimlik doğrulaması etkinleştirildiğinde request parameters eşleştirmek ve video indirmelerini denetlemek için rules engine nasıl kullanılır?

    URL kimlik doğrulaması (A kimlik doğrulaması) etkinleştirildiğinde request parameters eşleştirmek ve davranışı denetlemek için rules engine kullanabilirsiniz. Belirli bir business parameter adı veya değerini (örneğin download=1) eşleştirmek için rules engine içinde bir "URL contains" koşulu yapılandırmanızı öneririz.

    Not

    Normal kimlik doğrulama doğrulamasını etkilememek için kimlik doğrulama parametrelerini eşleştirme ölçütü olarak kullanmayın. Ancak download gibi diğer business parameters normal şekilde eşleştirilebilir.

    Oluşturulan URL'nin kuralla tutarlı bir parametre içerdiğinden emin olun (örneğin http://.../video.mp4?auth_key=...&download=1). Bu sayede ilgili yanıt üst bilgisi yapılandırması tetiklenir ve indirmeler denetlenir.

    Belirtilen bir yolla eşleştikten sonra önbelleğe almamayı sağlamak için rules engine nasıl yapılandırılır?

    Farklı eşleştirme gereksinimleri için aşağıdaki yapılandırma yöntemlerinden birini kullanın:

    • Dosya uzantıları için: Önbelleğe alınmaması gereken uzantılar için cache expiration değerini 0 olarak ayarlayın. Önbelleğe alınması gereken uzantılar için 4 saat gibi uygun bir önbellek süresi belirleyin ve "Do not ignore origin", "Do not cache headers" ile "Do not follow origin cache-control" seçeneklerini seçin.

    • Yol eşleşmeleri için: CDN konsolu tam URL'lerin normal ifadeyle eşleştirilmesini desteklemediğinden URI yolu eşleştirmesini rules engine üzerinden yapılandırın. Match Type değerini "URI (path)", Match Operator değerini "Contains any" veya "Does not contain any" olarak ayarlayın ve Match Value içinde şu joker karakterleri kullanın: ? ve *. Örneğin, /*/no-cache/* girerek /api/no-cache/data ve benzeri yolları eşleştirin.

    Yol eşleşmesi etki adından sonraki ilk / işaretinden itibaren mi başlar?

    Evet. Rules engine içindeki normal ifade olmayan bir yol eşleşmesi için eşlenen içerik, etki adından sonraki ilk / işaretinden başlayan yol bölümüdür. https://example.com/a.html için gerçek eşleşen yol /a.html şeklindedir.

    CDN, protokol ve etki adı içeren tam URL'ler için normal ifade eşleşmelerini yerel olarak desteklemez (örneğin ^https?://([^/]+)/path).

    Dosya adı eşleştirmeyi ilk kez yapılandırdığımda yanıt üst bilgisi neden etkili olmaz?

    Rules engine içinde dosya adı eşleştirmeyi yapılandırırken "Filename (basename)" ve "File extension (extension)" olmak üzere iki farklı eşleşme türü bulunduğunu unutmayın:

    • Filename (basename): Dosya uzantısı hariç dosya adı bölümünü eşleştirir. Örneğin .js hariç script.

    • File extension (extension): Dosya adı son ekini eşleştirir. Örneğin .js ve .css.

    Dosya adı eşleşmesi dosya uzantısını içeriyorsa (örneğin script.js) doğru şekilde eşleştirilemez. Yapılandırmanın etkili olması için dosya uzantısını kaldırın ve yalnızca dosya adı bölümünü (örneğin script) girin.