Giden yanıt üstbilgilerini veya istek üstbilgilerini değiştirmek gibi belirli CDN özelliklerini yapılandırırken, geçerli isteğin veya yanıtın bağlamını almak için değişkenleri kullanabilirsiniz. Değişkenler; istek yöntemi, URL ve istemci IP adresi gibi değerler döndürerek ayrıntılı kontrol sağlar. Bu konuda, her bir değişken için örnek değerler ve kullanım notlarıyla birlikte CDN'in desteklediği tüm değişkenler açıklanmaktadır.
Değişkenlere genel bakış
CDN değişkenleri, etkili oldukları alana göre erişim alanı değişkenleri, kaynaktan çekme alanı değişkenleri ve yanıt değişkenleri olarak gruplandırılır:
Erişim alanı değişkenleri: CDN düğümünün istemci isteklerini işlediği ve önbellek anahtarını oluşturduğu erişim alanında etkili olan değişkenlerdir.
Kaynaktan çekme alanı değişkenleri: Kaynaktan çekme sırasında etkili olan değişkenlerdir. Bazı özellikler kaynaktan çekme alanı modülünde dağıtılır. Bu durumda, erişim alanı değişkenleri etkili olmaz ve bunların yerine kaynaktan çekme alanı değişkenlerinin kullanılması gerekir.
Yanıt değişkenleri: Bu değişkenleri kullanarak kaynak sunucunun CDN düğümüne döndürdüğü yanıt üstbilgilerini elde edebilirsiniz.
Aşağıdaki tabloda, her bir etkili alandaki değişken grupları ve değişkenler listelenmiştir:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Değişkenleri destekleyen özellikler
Erişim alanındaki özellikler
Kaynaktan çekme alanındaki özellikler
Sınırlamalar
Bir değişkene başvurmadan önce, değişkenler genelinde geçerli olan aşağıdaki koşulları ve sınırlamaları kontrol edin:
SSL/TLS değişkenleri yalnızca HTTPS istekleri için geçerlidir. Bu değişkenlere HTTP isteklerinde başvurulduğunda değerleri boş olur.
$ssl_client_*değişkenleri, yalnızca istemci sertifikası doğrulaması (karşılıklı kimlik doğrulama veya mTLS) yapılandırıldığında değer alır. Standart HTTPS isteklerinde bu değişkenlerin değerleri boştur.GeoIP çözümlemesinin doğruluk sınırları vardır. Şehir düzeyindeki ve enlem/boylam alanları genellikle şehir merkezini tanımlar ve hassas coğrafi engelleme gerektiren kullanım durumları için uygun değildir. Bir istemci IP adresi tanımlanamadığında, ilgili alanlar varsayılan değerler döndürür (örneğin, ülke kodu
XXdöndürür ve sayısal kod değerleri0döndürür).$urideğeri, yönlendirme veya dahili yeniden yazma gibi dahili CDN istek yönlendirme mantığı tarafından değiştirilebilir. Bu değişkenin kullanılması önerilmez. Değişmemiş bir yol elde etmek için$raw_urikullanın.
Üstbilgi değişkeni adlandırma kuralları
CDN, HTTP istek üstbilgilerini ve yanıt üstbilgilerini işlerken bunları otomatik olarak dahili değişkenlerle eşler. Değişken adları aşağıdaki kurallara uymalıdır:
Sabit önek: Tüm istek üstbilgisi değişkenleri
$http_ile başlamalı, tüm yanıt üstbilgisi değişkenleri ise$sent_http_ile başlamalıdır.Küçük harfe dönüştürme: Bir üstbilgi adındaki tüm büyük harfler küçük harfe dönüştürülmelidir.
Tire değiştirme: Bir üstbilgi adındaki tüm tireler (
-) alt çizgilerle (_) değiştirilmelidir.
Dönüştürme örnekleri:
|
|
|
|
|
|
|
|
|
|
|
|
Erişim alanındaki değişkenler
İstek yöntemi
$request_method
Anlamı: Geçerli istekte kullanılan HTTP istek yöntemi.
Örnek değerler:
GET,POST,HEAD,PUT,DELETEve diğerleri.
HTTP sürümü
$server_protocol
Anlamı: Geçerli istekte kullanılan HTTP protokolü sürümü.
Örnek değerler:
HTTP/1.1veHTTP/2.0.
URI
$uri
Anlamı: Sorgu parametreleri hariç, geçerli isteğin URL yolu.
Örnek değer:
/1.txt.Not: Bu değer, yönlendirme veya dahili yeniden yazma gibi dahili CDN istek yönlendirme mantığı tarafından değiştirilebilir. Bu değişkenin kullanılması önerilmez. Değişmemiş bir yol elde etmek için
$raw_urikullanın.
$raw_uri
Anlamı: Orijinal isteğin sorgu parametreleri hariç URL yolu. Dahili CDN istek yönlendirme mantığı bu değeri değiştirmez.
Örnek değer:
/1.txt.
$request_uri
Anlamı: Sorgu parametreleri dahil, orijinal isteğin tam URL yolu.
Örnek değer:
/1.txt?chapter=1&flag=on.
İstek parametreleri
$args
Anlamı: URL'deki tam sorgu parametresi dizisi (
?hariç).Örnek değer:
chapter=1&flag=on.
$arg_<parameter-name>
Anlamı: URL sorgu parametrelerindeki belirli bir parametrenin değeri.
<parameter-name>ifadesini gerçek parametre adıyla değiştirin.Örnek değer:
$arg_flag,/1.txt?chapter=1&flag=onURL'sinden değerleri ayıklar.flagparametresinin değerionolur.
İstek üstbilgileri
$http_<request-header-name>
Anlamı: İstemci isteğindeki belirli bir HTTP istek üstbilgisinin değeri.
<request-header-name>ifadesini gerçek istek üstbilgisi adıyla değiştirin.Örnek değerler:
$http_user_agent, User-Agent istek üstbilgisinin değerini temsil eder;$http_refererise Referer istek üstbilgisinin değerini temsil eder.Not: İstek üstbilgisi değişken adları Üstbilgi değişkeni adlandırma kurallarına uymalıdır.
Alan adı
$host
Anlamı: İstemci isteğindeki orijinal alan adı, yani
Host: <domain-name>istek üstbilgisinin değeri.Örnek değer:
www.example.com.
İstek protokolü
$scheme
Anlamı: Geçerli istekte kullanılan protokol türü.
Örnek değerler:
httpveyahttps.
IP adresi ve bağlantı noktası
$remote_addr
Anlamı: İstemci IP adresi.
Örnek değer:
30.40.XX.XXX.
$remote_port
Anlamı: İstemci bağlantı noktası numarası.
Örnek değer:
63213.
$x_server_addr
Anlamı: Hedef IP adresi, yani CDN düğümünün dışa açtığı sanal IP adresi (VIP).
Örnek değer:
122.228.XX.XXX.
$x_server_port
Anlamı: Hedef bağlantı noktası, yani CDN düğümünün dışa açtığı hizmet bağlantı noktası.
Örnek değerler:
80veya443.
IP coğrafi konumu ve operatör
CDN, istemci IP adresini ($remote_addr) kullanarak coğrafi konum ve operatör bilgilerini çözümler. Bu değişkenlerin değerleri GeoIP çözümleme sonuçlarına dayanır. GeoIP çözümlemesinin doğruluk sınırları vardır. Şehir düzeyindeki ve enlem/boylam alanları genellikle şehir merkezini tanımlar ve hassas coğrafi engelleme gerektiren kullanım durumları için uygun değildir. Bir istemci IP adresi tanımlanamadığında, ilgili alanlar varsayılan değerler döndürür (örneğin, ülke kodu XX döndürür ve sayısal kod değerleri 0 döndürür). Her boyut iki değer formu sunar: bir kod (_id sonekiyle) ve bir İngilizce ad (_en sonekiyle).
$ip_isp_id
Anlamı: İstemci IP adresinin ait olduğu operatörün kodu.
Örnek değer: China Telecom için
100017.
$ip_isp_en
Anlamı: İstemci IP adresinin ait olduğu operatörün İngilizce adı.
Örnek değer: China Telecom için
ChinaTelecom.
$ip_country_id
Anlamı: İstemci IP adresinin ait olduğu ülkenin veya bölgenin kodu.
Örnek değer: Çin için
CN.
$ip_country_en
Anlamı: İstemci IP adresinin ait olduğu ülkenin veya bölgenin İngilizce adı.
Örnek değer: Çin için
China.
$ip_region_id
Anlamı: İstemci IP adresinin ait olduğu bölgenin veya eyaletin kodu.
Örnek değer: Guangdong Eyaleti için
440000.
$ip_region_en
Anlamı: İstemci IP adresinin ait olduğu bölgenin veya eyaletin İngilizce adı.
Örnek değer: Guangdong Eyaleti için
guangdong.
$ip_city_id
Anlamı: İstemci IP adresinin ait olduğu şehrin kodu.
Örnek değer: Shenzhen için
440300.
$ip_city_en
Anlamı: İstemci IP adresinin ait olduğu şehrin İngilizce adı.
Örnek değer: Shenzhen için
shenzhen.
$ip_longitude
Anlamı: İstemci IP adresinin ait olduğu şehrin boylamı.
Örnek değer: Shenzhen için
114.05787.
$ip_latitude
Anlamı: İstemci IP adresinin ait olduğu şehrin enlemi.
Örnek değer: Shenzhen için
22.54309.
SSL/TLS
SSL/TLS değişkenleri, HTTPS isteklerine ilişkin oturum bilgilerini sağlar.
Bu değişkenler yalnızca HTTPS istekleri için geçerlidir. HTTP isteklerinde bu değişkenlere başvurulduğunda değerleri boş olur.
$ssl_client_*değişkenleri ayrıca önceden istemci sertifikası doğrulamasının yapılandırılmasını gerektirir. Standart HTTPS isteklerinde bu değişkenlerin değerleri boştur.
$ssl_cipher
Anlamı: Geçerli istekte kullanılan şifre paketi (kriptografik algoritmaların bir kombinasyonu).
Örnek değer:
TLS_AES_256_GCM_SHA384.
$ssl_protocol
Anlamı: Geçerli istekte kullanılan SSL/TLS protokolü sürümü.
Örnek değer:
TLSv1.3.
$ssl_client_cert
Anlamı: İstemci sertifikası verileri (sertifika içeriği döndürülür).
$ssl_client_raw_cert
Anlamı: İstemci sertifikasının ham verileri (kullanımı
$ssl_client_certile aynıdır ve orijinal sertifika metni korunur).
$ssl_client_serial
Anlamı: İstemci sertifikasının seri numarası.
$ssl_verify
Anlamı: İstemci sertifikasının doğrulama sonucu. Doğrulama başarılı olduğunda değer
SUCCESSolur.Örnek değer:
SUCCESS.
$ssl_client_s_dn
Anlamı: İstemci sertifikasının konu ayırt edici adı (DN).
$ssl_client_i_dn
Anlamı: İstemci sertifikasının veren ayırt edici adı (DN).
Düğüm adı
$hostname
Anlamı: Geçerli isteği işleyen CDN düğümünün ana bilgisayar adı.
Örnek değer:
cn2522(gerçek düğüm adı esas alınır).
Kaynaktan çekme alanındaki değişkenler
$scheme, $http_x_client_scheme ve $proxy_scheme hepsi protokol türünü (http veya https) döndürür ancak etkili oldukları alan ve her birinin döndürdüğü değer açısından farklılık gösterirler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Protokol
$http_x_client_scheme
Anlamı: İstemcinin isteği başlatmak için kullandığı protokol türü (istemci şeması).
Örnek değerler:
httpveyahttps.
$proxy_scheme
Anlamı: CDN düğümünün kaynaktan çekme için kullandığı protokol türü (kaynaktan çekme şeması).
Örnek değerler:
httpveyahttps.
Kaynak sunucu
$proxy_source
Anlamı: Geçerli isteğin kaynaktan çekme için aslında gönderildiği kaynak sunucunun adresi.
Örnek değerler:
origin.example.comveya192.0.2.1.
Kaynak yanıt üstbilgileri
$sent_http_<response-header-name>
Anlamı: Kaynak yanıtındaki belirli bir HTTP yanıt üstbilgisinin değeri.
<response-header-name>ifadesini gerçek yanıt üstbilgisi adıyla değiştirin.Örnek değer:
$sent_http_content_type, kaynak sunucudan gelenContent-Typeyanıt üstbilgisinin değerini temsil eder (örneğin,text/html).Not: Yanıt üstbilgisi değişken adları Üstbilgi değişkeni adlandırma kurallarına uymalıdır.