Coğrafi Bilgi Sistemleri Servislerinde GetCapabilities Routing Sorunu
Problem
Coğrafi Bilgi Sistemleri servislerinde GetCapabilities ile dönmekte olan WSDL içerisindeki adreslerin Apinizer’a taşınması gerekmektedir.Çözüm
- bölgeye eklenecek bir Business Rule veya Script poliçesi ile url’de query param olarak ‘request’ anahtarında ‘GetCapabilities’ değeri geliyorsa string replace ile buradaki adres Apinizer’da ilgili proxy’e yönlenecek şekilde değiştirilmelidir.
Client IP Adresinin 10.244.x.x Şeklinde Görülmesi
Problem
Client IP adresi Kubernetes ortamında 10.244.x.x şeklinde görülmektedir.Sebep/Neden
Kubernetes NodePort yapısında eğer client’dan X-Forwarded-For değer gelmiyorsa default olarak arka taraftaki uygulamaya pod’un IP adresini yönlendiriyor. Çözüm olarak externalTrafficPolicy değer Local yaparak çözebiliyoruz ancak bu defa NodePort gelen isteği Cluster’daki diğer sunuculara yönlendirmediğinden erişim sıkıntısı oluşuyor. İlgili Node’u bilip ona gitmek gerekiyor.Çözüm
Apinizer Worker’ları Nginx veya F5 gibi bir yapının arkasına konacağı için, ilgili loadbalancer’ın konfigürasyon dosyasına aşağıdaki gibi header’a xff bilgisinin eklenmesi gerekiyor.
API Trafik Loglarında Alt Çizgi İçeren Header’ların Görünmemesi
Problem
API Trafik Loglarında alt çizgi içeren Header’ların görünmemesi/aktarılmaması.Sebep/Neden
Nginx, web sunucusu ve ters proxy sunucusu olarak yaygın bir şekilde kullanılmaktadır. Ancak, Nginx’in varsayılan konfigürasyonunda, isimlerinde alt çizgi (_) karakteri bulunan HTTP header’ları işlenmez ve geçirilmez. Bu, alt çizgilerin HTTP RFC’sinde standart olmamasından kaynaklanmaktadır.
Çözüm
Bu sorunu çözmek için Nginx konfigürasyon dosyasındaunderscores_in_headers direktifini on olarak ayarlamalısınız. Bu, Nginx’in alt çizgi içeren header’ları doğru bir şekilde işlemesini sağlar.
Türkçe Karakterler Bozularak İletiliyor
Problem
Türkçe karakterler bozularak iletiliyor.Sebep/Neden
Client tarafından veri gönderimi sırasında Content-Type header’ına karakter set bilgisi set edilmelidir.Çözüm
Client örnek olarak gönderdiği Content-Type: application/xml ikilisinde value kısmını application/xml; charset=UTF-8 olacak şekilde ayarlayarak göndermelidir.
PKIX Path Building Failed Hatası
Problem
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetÇözüm
1
Sertifikayı Apinizer'a Ekle
İlgili adresin public sertifikası Sertifika Yönetimi sayfasından Apinizer’a eklenmelidir.
2
Sertifikayı İndir (Opsiyonel)
Adrese erişebilen bir tarayıcı yok ise openssl uygulaması yüklü ve adrese erişebilen bir sunucuda aşağıdaki komut ile indirilebilir:
Apinizer 2024.05.4+ Versiyonunda Login Sorunu
Problem
Apinizer’ı 2024.05.4 veya sonrası bir versiyonuna güncelledim ancak arayüze login olamıyorum.Sebep/Neden
Bu sebeple arayüze “Kubernetes Ingress Controller” kullanarak bağlanan kurumların X-Forwarded-For header’ı ile client ip bilgisini gönderecek ayarları yapması gerekmektedir.Çözüm
1
ConfigMap Ayarlarını Yapılandır
Config Maps tanımındaki data bölümüne “use-forwarded-headers” anahtarı “true” değeri ile eklenmelidir:
2
Ingress Annotation Ekleyin
Ingress kaynak tanımındaki anotasyon bölümüne “nginx.ingress.kubernetes.io/use-forwarded-headers” anahtarı “true” değeri ile eklenmelidir:
Load balancer tarafında aşağıdaki header’lardan birinin mutlaka gelmesi gerekiyor:
- X-Forwarded-For
- Proxy-Client-IP
- WL-Proxy-Client-IP
- HTTP_X_FORWARDED_FOR
- HTTP_X_FORWARDED
- HTTP_X_CLUSTER_CLIENT_IP
- HTTP_CLIENT_IP
- HTTP_FORWARDED_FOR
- HTTP_FORWARDED
- HTTP_VIA
- REMOTE_ADDR
Alt Çizgi İçeren Header Key’leri İletilmiyor
Problem
_ (alt çizgi) karakteri içeren header key’leri Apinizer Gateway’e gelirken log’lara ve backend’e iletilmiyor.
Sebep/Neden
Varsayılan olarak Nginx ve Ingress-Nginx Controller,_ (alt çizgi) karakteri bulunan header’ları kabul etmez. Bu nedenle header gateway’e ulaşmadan engellenmektedir.
Çözüm
1
Ingress Nginx ConfigMap Ayarları
Config Maps tanımındaki data bölümüne “enable-underscores-in-headers” anahtarı “true” değeri ile eklenmelidir:
2
Nginx Konfigürasyonu
Nginx’in bu header’ı gönderebilmesi için ise
underscores_in_headers on; konfigürasyonu yapılmalıdır:SOAP Servislerde WS-S/WS-STS Token Alma Sertifika Sorunu
Problem
SOAP servislerde kullanılan WS-S ya da WS-STS politikaları “PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target” hatası nedeniyle token alamıyor.Sebep/Neden
SOAP servis çağrımında Apinizer’a yüklenmiş sertifikayı görememesi nedeniyle bu servisin token alımının reverse proxy üzerinden yapılması gerekiyor.Çözüm
İlgili token alma adresi ile routing yapan bir reverse proxy oluşturulur ve token kullanan servisteki wss/wssts politikasının token alma adresi bu servis olarak verilir. Nadir durumlarda reverse proxy üzerinden script ile xml mesajındaki adresin değiştirilmesi gerekebilir.LDAP Login Ayarı Sırasında ERR_13611_VALUE_MISSING_ON_RDN Hatası
Problem
LDAP login ayarı sırasında ERR_13611_VALUE_MISSING_ON_RDN hatası.Sebep/Neden
Bu hata genelde eksik bir değeri ifade eder.Çözüm
DNS Çözümleme Performans Sorunu
Problem
Yoğun environment kullanımı veya yüksek sayıda rate limit tanımı olan sistemlerde, bazı servis adreslerinin anlık olarak çözülememesi.Sebep/Neden
Bu durum, DNS çözümleme performansının yetersiz kalmasından kaynaklanmaktadır.Çözüm
1
CoreDNS Kaynak Limitlerini Artır
CPU ve RAM kaynakları yükseltilerek daha fazla sorgunun aynı anda işlenebilmesi sağlanmalıdır.
2
CoreDNS Node'lar Üzerine Dağıt
Her worker node üzerinde bir adet CoreDNS podu olacak şekilde deployment yeniden yapılandırılmalıdır. Bu sayede DNS sorguları merkezi bir noktaya yığılmadan dağıtık şekilde işlenebilmektedir.
MSSQL Bağlantılarında SSL Sertifika Sorunu
Problem
Apinizer’ı 2025.07.4 veya sonrası bir versiyonuna güncelledim ancak Sql Server (MSSQL) bağlantılarımda hata alıyorum: Failed to initialize pool: “encrypt” property is set to “true” and “trustServerCertificate” property is set to “false” but the driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption: Error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.Sebep/Neden
Bu kütüphane ile jdbc bağlantılarında tls 1.2 ve üstü zorunlu tutulmaktadır. Encrypt default değeri true’dur ve bu da doğru bir sertifika ile bağlantı ister. Self sign, doğru yapılandırılmamış sertifika kullanan ya da sertifika kullanmayan veritabanlarında bu hata ile karşılaşılmaktadır.Çözüm
1
Sertifikayı Yapılandır
Veritabanınıza olan bağlantıda ssl sertifikası doğru şekilde yapılandırılmalıdır. İlgili sertifika Apinizer’da Secret Manager > Certificates altına eklenmelidir.
Not: İç sistemlerinizde ve development ya da test ortamlarınızda, bu hata jdbc url’sine alttaki parametrelerden biri eklenerek atlatılabilinir:
;encrypt=false(önerilmez);trustServerCertificate=true(dikkatle eklenmeli, güvenlik açısından olası sonuçları göz önünde tutulmalıdır)
100 MB’dan Büyük Dosya Yüklemelerinde Servis Hatası
Problem
Büyük boyutlu dosya yüklemelerinde servis hata veriyor ve istekler başarısız oluyor.Sebep/Neden
Dosya yükleme ile ilgili parametrelerin varsayılan değerinin 100 MB olması, mevcut büyük dosya yükleme ihtiyaçları için yetersiz kalmaktadır.Çözüm
Bu limiti artırmak için Kubernetes ortamında worker isimli deployment üzerinde, ilgili parametrelerin byte cinsinden uygun değerlerle güncellenmesi gerekmektedir.multipartConfigMaxFileSize
multipartConfigMaxRequestSize
multipartConfigFileSizeThreshold
Değerler byte cinsinden tanımlanmalı ve worker deployment’ının spec -> containers -> env alanı altında aşağıdaki resimdeki gibi eklenmelidir.


