GitLab Proxy: Paylaşımlı Erişim, API Sınırları ve Nesne Deposu Yolu
GitLab’da proxy kararı yalnızca tarayıcıyı değil, koşucuları ve artefakt indirmelerini de ilgilendirir. Aynı işin içinde hem ekip erişimi, hem oran sınırı, hem de başka bir ana bilgisayara düşen indirme trafiği vardır. Bu sayfa üçünü sırayla ele alıyor.
İki kurulum biçimiBulut örneği ile kendi sunucunuzdaki kurulumun farklı gereksinimleri.
02
Paylaşımlı erişimEkip ve dış ajans erişiminin çıkış bazında bölüştürülmesi.
03
Oran sınırıGenel uç noktalarda sayaçların nasıl tutulduğu ve bekleme yönergeleri.
04
Artefakt yoluİndirmelerin nesne deposuna yönlendirilmesi ve ikinci bağlantı.
GitLab’ı iki farklı biçimde kullanabilirsiniz: sağlayıcının işlettiği bulut örneğinde ya da kendi sunucunuza kurduğunuz bir kopyada. Bu ayrım proxy kararını baştan değiştirir, çünkü ikinci durumda hedef adres sizin denetiminizdedir ve trafiğin bir kısmı hiç dış ağa çıkmaz.
İkinci ayrım istemci tarafındadır. Tarayıcı, git istemcisi, sürekli tümleştirme koşucusu ve betikler farklı yapılandırmaları okur. Koşucular çoğu zaman ortam değişkenlerine bakar; bu da hangi adreslerin kapsam dışında tutulacağını belirleyen listenin doğru yazılmasını kritik hâle getirir.
Üçüncüsü ise indirme davranışıdır: artefakt ve büyük dosya içerikleri çoğu kurulumda ana uygulamadan değil bir nesne deposundan servis edilir. Aşağıdaki bölümler bu üç konuyu ayrı ayrı açıyor.
Bulut örneği ile kendi sunucunuzdaki kurulum aynı şeyi gerektirmez
Sağlayıcının işlettiği örnekte hedef adres dış ağdadır ve bütün istemcileriniz internete çıkarak konuşur. Burada proxy’nin işlevi çıkışı denetlemek, kurumsal ağdan sabit bir adresle konuşmak ya da bölgesel bir görünümü doğrulamaktır. Kural yazmak görece basittir çünkü hedef tek bir alan adı ailesidir.
Kendi sunucunuzdaki kurulumda tablo tersine döner. Uygulama iç ağda çalışıyorsa ona giden trafiğin proxy’ye uğraması çoğu zaman gereksizdir, hatta zararlıdır: iç adresleri dış çıkışa yönlendirmek bağlantıyı tamamen koparabilir. Bu yüzden kapsam dışı bırakılacak adreslerin listesi, proxy adresinin kendisi kadar önemlidir.
Karma senaryolar da sık görülür: uygulama iç ağda, ancak konteyner imajları ve paket bağımlılıkları dışarıdan çekiliyor olabilir. Böyle bir kurulumda kural şu şekilde kurulur: iç adresler doğrudan, dış adresler proxy üzerinden.
Bir başka fark yedeklilik tarafındadır. Bulut örneğinde erişilebilirlik sağlayıcının sorumluluğundadır; kendi sunucunuzdaki kurulumda ise proxy, istemci ile uygulama arasında yeni bir tek hata noktası yaratır. Bu katmanı eklemeden önce proxy düştüğünde hangi işlerin duracağını yazılı olarak listeleyin ve en azından dağıtım hattı için bir yedek yol tanımlayın.
Hangi kurulumda olursanız olun, ilk adım hedef listesini yazmaktır. Uygulamanın kendisi, paket kayıt defteri, konteyner kayıt defteri ve nesne deposu ayrı adreslerde olabilir; hepsini tek tek not edin. Forward ve reverse proxy farkı yazısı, hangi yönde çalıştığınızı netleştirmek için iyi bir başlangıçtır.
Ekip erişimini tek bir çıkış düzenine oturtmak
Bir depoya erişen herkes aynı yerden bağlanmaz: şirket içi geliştiriciler ofis ağından, uzaktan çalışanlar ev bağlantısından, dış ajanslar ise tamamen farklı bir ülkeden gelebilir. Erişimin belirli adreslerle sınırlandırıldığı kurulumlarda bu dağınıklık doğrudan bir erişim sorununa dönüşür.
Ortak bir çıkış tanımlamak bu tabloyu sadeleştirir: kim nereden bağlanırsa bağlansın uygulamaya tek bir tanınan adresten ulaşır. Ancak çıkışın tek olması, erişim bilgisinin de tek olması anlamına gelmemeli. Grup bazında ayrı kimlik bilgileri tanımlamak, bir kişi ayrıldığında yalnızca ilgili kaydı yenilemenizi sağlar.
Yaşam döngüsünü üç adımda düşünün: tanımlama sırasında kapsam ve yetkiler belirlenir, kullanım sırasında git, arayüz ve koşucu trafiği aynı düzenden geçer, yenileme sırasında hem erişim bilgisi hem de jetonlar tazelenir. Bu döngüyü takvime bağlamak, unutulmuş erişimlerin birikmesini engeller.
Erişimi bölüştürürken yetki derinliğini de gözden geçirin. Bir çıkışa bağlı kimlik bilgisinin hangi projeleri kapsadığı çoğu zaman kurulum sırasında verilip bir daha açılmaz; gerektiğinden geniş tutulan bir kapsam, küçük bir sızıntıyı geniş bir yüzeye dönüştürür.
Dış ekiplerle çalışırken ayrı bir çıkış ayırmak ek bir avantaj sağlar: sözleşme bittiğinde yalnızca o çıkışı kapatırsınız, iç ekip etkilenmez. Kimlik doğrulamanın hangi yöntemle yapılacağını ekip yapısına göre seçin; sabit adresli ofisler için adres yetkilendirmesi pratiktir.
ŞEMAEkip erişiminin üç aşamalı döngüsü
Şemayı yatay kaydırarak inceleyebilirsiniz
Erişimi bir kerelik kurulum değil, tekrar eden bir döngü olarak düşünmek unutulmuş yetkilerin birikmesini engeller. Merkezde tek bir tanınan çıkış durur.
Git istemcisi, koşucu ve ortam değişkeni kapsamı
Komut satırındaki git istemcisi kendi yapılandırmasını okur; tarayıcıya yazdığınız bir ayar onu etkilemez. Sürekli tümleştirme koşucusu ise başka bir makinede çalışır ve çoğu kurulumda ortam değişkenlerine bakar. Aynı depoda çalışan üç farklı bileşen, üç ayrı kapsam demektir.
Koşucu tarafında kritik nokta, kapsam dışı bırakılacak adreslerin listesidir. Bu liste eksikse iç ağdaki bir hizmete giden istek dış çıkışa yönlenir ve hiçbir zaman ulaşmaz; fazla genişse dış trafiğin bir kısmı proxy’yi atlar ve denetim boşluğu doğar. Liste yazarken ana bilgisayar adlarını ve varsa iç ağ bloklarını birlikte düşünün.
İkinci nokta, iş içinde başlatılan alt süreçlerdir. Bir betik konteyner imajı çekiyorsa, paket yöneticisi bağımlılık indiriyorsa veya bir test aracı dışarıya istek atıyorsa bunların her biri ayrı bir istemcidir. Değişkenleri iş düzeyinde tanımlamak çoğu durumda yeterlidir, ancak bazı araçlar kendi yapılandırmasını bekler.
Yapılandırmayı depoya işlerken de dikkatli olun. Kapsam listeleri çoğu zaman zararsızdır, ancak kimlik bilgisi içeren bir adres satırı bir kez işlendiğinde geçmişte kalır ve deponun kopyasını alan herkese gider. Bu değerleri korumalı değişkenlerde tutmak ve iş günlüklerinde maskelemek standart bir alışkanlık olmalıdır.
Yapılandırmayı bitirdikten sonra işin ilk adımında çıkış adresini yazdıran küçük bir kontrol ekleyin. Böyle bir adım, aylar sonra sessizce bozulan bir kapsamı erkenden yakalar. Protokol seçimini gözden geçirmek isterseniz protokol seçim rehberi iki taşıyıcıyı karşılaştırıyor.
Artefakt ve büyük dosya indirmeleri başka bir ana bilgisayara düşer
Bir işin ürettiği artefaktı ya da büyük bir dosya nesnesini indirmek istediğinizde istek önce uygulamaya gider, ancak yanıt çoğu zaman dosyanın kendisi değildir. Uygulama, içeriğin durduğu nesne deposu için geçici ve imzalı bir adres üretip istemciyi oraya yönlendirir. İstemci de bu yeni ana bilgisayara ikinci bir bağlantı açar.
Proxy açısından bunun iki sonucu vardır. Birincisi, kuralınız yalnızca uygulama alan adını kapsıyorsa asıl indirme trafiği kapsam dışında kalır ve doğrudan gider. İkincisi, erişimin belirli adreslerle sınırlandırıldığı bir ağda ikinci bağlantının hedefi izin listesinde yoksa indirme başarısız olur.
Aynı davranış konteyner kayıt defterinde de görülür: manifest isteği bir adrese, katman indirmeleri başka bir adrese gidebilir. Kural yazarken “uygulamaya erişebiliyorum, demek ki her şey çalışır” varsayımından kaçının; indirmeyi gerçekten deneyin.
Yönlendirmelerin kaydını tutmak teşhisi kolaylaştırır. İstemcinizin ayrıntılı çıktısını açıp yanıt kodlarını izleyin; ikinci bağlantının hangi ana bilgisayara açıldığını görmek çoğu sorunu tek başına çözer. Çıkışın gerçekten kullanıldığını sınamak için proxy kontrol aracını kullanabilirsiniz.
ŞEMAArtefakt indirmesinde yönlendirme sırası
Şemayı yatay kaydırarak inceleyebilirsiniz
Üçüncü adımda dönen yönlendirme, içeriğin uygulamada değil ayrı bir nesne deposunda durduğunu söyler. Dördüncü adımdaki ikinci tünel bu yüzden gereklidir.
GitLab ortamınız için çıkış planı
Koşucular ve erişim listeleri için sabit adres, dağıtık ekipler için bölgesel çıkış seçenekleri aynı panelde tanımlanır.
Residential proxyler, Datacenter Proxyleri, IPv6 ve ISP çözümlerimizden dilediğinizi seçin. Tüm planlar sınırsız seçenekler, %99,9 çalışma süresi, rotating proxyler, sticky oturumlar ve 7/24 destek sunar. Web scraping, reklam doğrulama, SEO izleme ve dijital veri toplama için idealdir.
ISP ProxyStatik ISP kayıtlı Türkiye IP'leri
ISP kayıtlı statik Türkiye IP'leri; veri merkezi hızını gerçek operatör itibarıyla birleştirir. Uzun oturumlu ve düşük pingli kullanım için idealdir.
Sunucu, kısa süre içinde çok sayıda istek aldığında yanıt vermeyi reddedebilir ve isteğin ne zaman tekrarlanabileceğini belirten bir yönerge döndürür. Doğru istemci davranışı bu yönergeye uymaktır: beklemek, sonra tek bir kez yeniden denemek. Sürekli yeniden deneyen bir betik durumu kötüleştirir.
Sayacın neye göre tutulduğu kurulumdan kuruluma değişir. Kimliklenmiş isteklerde ölçüt genellikle kullanıcı ya da jetondur; kimliklenmemiş isteklerde isteğin geldiği adres öne çıkar. Kendi sunucunuzdaki kurulumda bu eşikler yöneticinin belirlediği değerlerdir ve ihtiyaca göre ayarlanabilir.
Durum
Sayaç büyük ihtimalle neye bağlı
Doğru tepki
Jetonla kimliklenmiş betik
Kullanıcı veya jeton
İstek sıklığını azaltın, sonuçları önbelleğe alın
Kimliksiz genel okuma
İsteğin geldiği adres
İstekleri kimliklendirin ya da ekibe ayrı çıkış verin
Paylaşımlı ofis çıkışı
Ortak adres, herkes aynı sayacı tüketir
Yoğun işleri ayrı bir çıkışa taşıyın
Kendi sunucunuzdaki kurulum
Yöneticinin tanımladığı eşikler
Eşikleri ölçüp iş hacmine göre ayarlayın
Adres değiştirmenin sayacı sıfırlayacağı beklentisi, jetona bağlı sınırlarda karşılığı olmayan bir varsayımdır. Kalıcı çözüm her zaman istek desenini düzeltmektir. Havuz yönetiminin genel çerçevesi için rotating proxy sayfasına bakabilirsiniz.
Çıkış türü ve lokasyon seçimi
Geliştirme trafiği, sosyal platform trafiğinden farklı önceliklere sahiptir. Burada belirleyici olan şey adresin “gerçek bir eve ait görünmesi” değil, sabit, hızlı ve tanınabilir olmasıdır. Erişim listelerine yazılacak bir adresin her hafta değişmemesi gerekir.
Bu nedenle çoğu ekip için en uygun başlangıç, sabit adresli ve yüksek bant genişlikli bir datacenter proxy ya da sağlayıcı ağında barınan bir ISP proxy olur. Klonlama ve artefakt indirme hacimli işlerdir; ölçülebilir bir bant genişliği bu yüzden önemlidir.
Lokasyon seçiminde iki ölçüt vardır: hukuki ve coğrafi. Ekip hangi ülkede çalışıyorsa çıkışın da o bölgede olması mesafeyi kısaltır. Avrupa merkezli ekiplerde Almanya veya Hollanda çıkışı, Türkiye’deki ekiplerde Türkiye çıkışı yaygın tercihlerdir. Seçenekleri lokasyon listesinden karşılaştırabilirsiniz.
Bant genişliği kadar eşzamanlılık da belirleyicidir. Paralel çalışan işler aynı anda birden çok bağlantı açar; ürün karşılaştırırken yalnızca aylık hacme değil, aynı anda kaç bağlantıya izin verildiğine de bakın. Hacim tarafını planlamak için bant genişliği hesaplama yazısı pratik bir yöntem veriyor.
Proxy’nin araya bir durak eklediğini ve bunun ilk bağlantı süresine yansıdığını baştan kabul edin. Çıkışı ekibe coğrafi olarak yakın seçmek bu etkiyi sınırlar; ancak amaç bağlantıyı hızlandırmak değil, trafiği tek bir denetlenebilir kapıdan geçirmektir.
Sorun giderme: belirtiler ve kontrol noktaları
Geliştirme ortamlarında arızalar genellikle “bazı şeyler çalışıyor, bazıları çalışmıyor” biçiminde görünür. Bu, kapsamın kısmen kurulduğunun işaretidir. Aşağıdaki tablo en sık rastlanan durumları eşliyor.
Belirti
Olası neden
Kontrol noktası
Arayüz açılıyor, klonlama takılıyor
Git istemcisi ayrı yapılandırma okuyor
İstemcinin kendi proxy anahtarlarını gözden geçirin
Artefakt indirme yarıda kesiliyor
İkinci ana bilgisayar kapsam veya izin dışında
Yönlendirme hedefini kural ve izin listesine ekleyin
İş iç ağdaki hizmete ulaşamıyor
Kapsam dışı adres listesi eksik
İç ana bilgisayarları ve ağ bloklarını listeye yazın
Koşucu çalışıyor, alt süreç çıkamıyor
Araç ortam değişkenini okumuyor
Aracın kendi yapılandırmasını ayrıca tanımlayın
Sertifika doğrulaması başarısız
Araya giren bir denetim katmanı var
Kurum kök sertifikasının güven deposunda olduğunu doğrulayın
Sertifika kaynaklı hatalarda doğrulamayı kapatmak yerine kök sertifikayı doğru yere eklemek gerekir; nedenini TLS sertifika doğrulama yazısı açıklıyor.
Yayına almadan önce doğrulama listesi
Kurulumu bitirdiğinizde tek bir sayfa açıp “çalışıyor” demek yeterli değildir. Kapsamın gerçekten kapalı olduğunu göstermek için birbirinden bağımsız dört kontrol yapın: çıkış adresi, alan adı çözümü, kapsam dışı liste ve kimlik bilgisi ayrımı.
Çıkış adresi kontrolü en basitidir ve hem tarayıcıdan hem de koşucu içinden ayrı ayrı yapılmalıdır; ikisi farklı sonuç veriyorsa kapsamınız eksik demektir. Alan adı çözümü kontrolü, isteklerin proxy üzerinden gidip gitmediğini gösterir ve DNS leak testi ile yapılabilir.
Kapsam dışı liste kontrolü, iç ağdaki bir hizmete erişerek sınanır: erişim başarılıysa liste doğru yazılmış demektir. Kimlik bilgisi ayrımı ise operasyonel bir kontroldür; her ekip ve her otomasyon kendi bilgisini taşımalı, tek bir ortak kayıt kullanılmamalıdır.
Kontrolleri belgelemek de kurulumun bir parçasıdır. Hangi tarihte, hangi ortamda ve hangi sonuçla sınandığını kısa bir not hâlinde tutmak, aylar sonra ortaya çıkan bir arızada nereden başlanacağını söyler ve ekibe yeni katılan birinin kurulumu baştan çözmesini gerektirmez.
Not
Erişim bilgilerini iş günlüklerine yazdırmayın ve depoya işlemeyin. Proxy erişim bilgisi de en az bir erişim jetonu kadar hassastır; sızdığında yalnızca kotanız değil, ağ görünürlüğünüz de etkilenir. Sağlayıcının kayıt politikası için log kayıtları ve gizlilik yazısına bakın.
ŞEMAYayına almadan önce dört kontrol
Şemayı yatay kaydırarak inceleyebilirsiniz
Dört kontrol birbirinden bağımsızdır; biri geçtiği için diğerinin de geçtiğini varsaymayın. Hepsini hem tarayıcıdan hem de koşucu içinden tekrarlayın.
GitLab proxy hakkında sık sorulanlar
01Kendi sunucumdaki kuruluma da proxy gerekir mi?
Uygulamanın kendisi iç ağdaysa ona giden trafiğin proxy’ye uğraması genellikle gereksizdir ve bağlantıyı koparabilir. Ancak dışarıdan çekilen paketler, konteyner imajları ve üçüncü taraf hizmetler için proxy anlamlıdır. Bu durumda doğru kurgu, iç adresleri kapsam dışı bırakmaktır.
02Koşucuda proxy nasıl tanımlanır?
Çoğu koşucu ortam değişkenlerini okur; kapsam ve kapsam dışı liste bu değişkenlerle belirlenir. Ancak iş içinde başlatılan bazı araçlar kendi yapılandırmasını bekler. İşin ilk adımına çıkış adresini yazdıran küçük bir kontrol eklemek, kapsamın gerçekten kurulduğunu gösterir.
03Artefakt indirmesi neden ayrı bir adrese gidiyor?
İçerik çoğu kurulumda uygulamanın kendisinde değil bir nesne deposunda durur. Uygulama geçici ve imzalı bir adres üretip istemciyi oraya yönlendirir, istemci de bu yeni ana bilgisayara ikinci bir bağlantı açar. Kuralınız bu hedefi kapsamıyorsa indirme kapsam dışında kalır.
04Oran sınırına takılınca çıkış adresini değiştirmek işe yarar mı?
Kimliklenmiş isteklerde hayır; sayaç kullanıcıya ya da jetona bağlıdır. Kimliksiz okumalarda sayaç adrese bağlı olabilir, ancak kalıcı çözüm istek sıklığını azaltmak, sonuçları önbelleğe almak ve sunucunun döndürdüğü bekleme yönergesine uymaktır.
05Aynı çıkışı hem iç ekip hem dış ajans kullanabilir mi?
Kullanabilir ama ayırmak daha yönetilebilir. Dış ekibe ayrı bir çıkış vermek, sözleşme bittiğinde yalnızca o çıkışı kapatmanızı sağlar ve iç ekibi etkilemez. Erişim bilgilerini de grup bazında ayrı tutun.
Hayır. Hata genellikle araya giren bir denetim katmanının kendi sertifikasını sunmasından kaynaklanır. Doğru çözüm, kurum kök sertifikasını istemcinin güven deposuna eklemektir. Doğrulamayı kapatmak, bağlantıyı gerçekten güvenilmez hâle getirir.
07Bu iş için hangi çıkış türü uygundur?
Erişim listelerine yazılacak adresin sabit olması gerektiği için datacenter ya da ISP tabanlı sabit çıkışlar öne çıkar. Depo boyutu ve artefakt sayısı arttıkça aylık hacim hızla birikir; bu yüzden fiyat listesine bakarken taahhüt edilen veri miktarını ve paralel oturum tavanını birlikte değerlendirin.