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
Ne iletilmesi gerektiğini anlamak için İngilizce metni okuyun
Türkçe metni SIFIRDAN yazın — İngilizce cümle yapısını unutun
Tüm markdown biçimlendirmesini, kod bloklarını, bağlantıları ve görselleri olduğu gibi koruyun
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 çevirinDile özel kuralları sıkı bir şekilde uygulayın
Durdurulan sözcük (stopword) kurallarını taviz vermeden uygulayın
Numaralı adımlarda ve prosedürel madde listelerinde emir kipini kullanın
Terminoloji tutarlılığını sağlayın — aynı terim her yerde aynı şekilde çevrilmelidir
Listelerde/tablolarda cümle başlangıçlarını çeşitlendirin — hiçbir başlangıç ifadesi 3 kezden fazla tekrarlanmamalıdır
-
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üksekKarmaşı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_rekullanın. İsteğe izin vermek içinreturn truekullanın ve isteği reddetmek içinexit(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:
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.
URL Parametrelerini Yoksay özelliğinin
auth_keygibi 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.Ö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
andveor'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-aiçerdiğinde or URI/path-biç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ğerlerandveor'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.
EvetKoş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
?vejoker 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ğin240e:95c:3004:2:3:0:0:XXX) ve CIDR blokları (örneğin20.209.XXX.XXX/31) desteklenir.POP bağlantı IP'si
XFF IP'si
NotPOP 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
NotPOP 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
NotPOP 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
NotPOP 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/25gibi 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=valueisteği için gerçekten eşleşen URI değeri/path/file.htmlolur. 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,.txtdosyalarını eşleştirmek içintxtyerine.txtgirin; 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 yoldadataiçeren/api/yollarıyla eşleşir..??:.jsve.tsgibi 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.10ve proxy IP adresinin192.168.0.1olduğ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ındaa,avea*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.
NotKuralları 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/?.pngdosya adı tek karakterden oluşan kaynaklarla eşleşir; örneğin/img/a.pngve/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/usersve/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
Önbellek ayarları
Kaynak ayarları
Erişim kontrolü
User-Agent engelleme listesi veya izin listesini yapılandırma
Performans optimizasyonu
Video ayarları
Trafik 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
CDN konsolu oturumunu açın.
Sol gezinme bölmesinde Domain Names öğesine tıklayın.
Domain Names sayfasında hedef etki alanını bulun ve Actions sütunundaki Manage seçeneğine tıklayın.
Belirtilen etki alanının sol gezinme çubuğunda Rules Engine öğesine tıklayın.
Add Rule seçeneğine tıklayın.
Add Rule sayfasında Rule Name ve Rule Content değerlerini belirtin.
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ı:
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.
"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ı:
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."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ı:
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,.jspdeğerlerini eşleşme değerleri olarak girin.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.
"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
PostObjectAPI'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. OSSPutObjectAPI'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?
Rules engine yapılandırıldıktan sonra çalıştırma eylemleri nerede bulunur?
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?
Belirtilen bir yolla eşleştikten sonra önbelleğe almamayı sağlamak için rules engine nasıl yapılandırılır?
Yol eşleşmesi etki adından sonraki ilk / işaretinden itibaren mi başlar?
Dosya adı eşleştirmeyi ilk kez yapılandırdığımda yanıt üst bilgisi neden etkili olmaz?