Ters Proxy ile DNS Yayılımıyla Mücadele


Sunucuları taşımak, başlı başına bir dizi blog gönderisidir, ancak burada sunucu geçişinizin bir ters proxy kullanılarak büyük ölçüde iyileştirilebilecek bir yönü vardır.

Ters proxy nedir?

Çoğumuz bir proxy sunucusu fikrine aşinayız. Tarifi kutuda: İnternet üzerinde istekleriniz için proxy görevi gören bir sunucu.

Ters proxy benzerdir, ancak tahmin edebileceğiniz gibi tersine çevrilir. Bir ters proxy, internetten istekleri alır, istenen kaynağı vekil olarak hareket ettiği sunucudan alır ve ardından bu kaynağı istekte bulunana geri gönderir.

Apache'nin güçlü özelliklerini kullanmanın bir yolu olarak Nginx'i Apache'nin önüne bile kurmuş olabilirsiniz, ancak yine de Nginx'in hızından yararlanabilirsiniz. Bu senaryoda, Nginx, Apache için bir ters proxy görevi görür.

Bir ters proxy, DNS yayılımına nasıl yardımcı olabilir?

Bir ters proxy, DNS yayılımını gerçekten hızlandıramaz, ancak bunun olmasını beklemekle ilgili birçok baş ağrısını azaltabilir.

Bir müşterinin e-ticaret sitesini bir ana bilgisayardan diğerine taşıdığınızı varsayalım. NixNode'daki VPS'leri ayak uyduramıyor, bu yüzden onları SmigitalSmocean'daki parlak yeni bir bulut sunucusuna taşıyorsunuz. Yeni sunucuda her şeyi ayarladınız ve DNS'yi değiştirmeye hazırsınız, ancak yeni bölge dosyasını bir kez kaydettiğinizde, bazı kullanıcıların yerel DNS önbellekleri güncellenene kadar NixNode sunucunuza ulaşmaya devam edeceğini fark ediyorsunuz. .

Bu senaryoda, eski sunucudan alınan tüm siparişlerin manuel olarak yeni sunucuya taşınması gerekecektir. Bu nispeten yüksek trafikli bir sitedir ve DNS'nin yayılması birkaç saat sürebileceğinden, düzinelerce hatta yüzlerce siparişi yeni sunucuya taşıyabilirsiniz.

Bariz çözüm, güvenli olması için eski sunucuda sipariş vermeyi devre dışı bırakmak olabilir, ancak müşteriniz için bu geliri kaybetme riskiyle karşı karşıya kalırsınız. Alternatif olarak, eski NixNode sunucunuzu SmigitalSmocean kutunuz için bir ters proxy'ye dönüştürerek geçişin anında gerçekleşmesini sağlayabilirsiniz.

Ters proxy'yi ayarlama

Eski NixNode sunucusunun Ubuntu 14.04'te modern bir LAMP yığını çalıştırdığını varsayalım. NixNode sunucunuzda SSH aracılığıyla oturum açtıktan sonra, öncelikle proxy_http Apache modülünün etkinleştirildiğinden emin olmanız gerekir:

 $ sudo a2enmod proxy_http

Bu aslında temel proxy modülünü de etkinleştirecek, eğer proxy_http dayandığından beri değilse.

Ardından, seçtiğiniz metin düzenleyicide, sites_available klasörünüzde yeni bir yapılandırma dosyası oluşturmanız gerekir. Vim'i severim, bu yüzden komut şöyle görünür:

 $ sudo vim /etc/apache2/sites-available/my-proxy.conf

Ardından VirtualHost yapılandırmasına yapıştırabilirsiniz:

 <VirtualHost *:80> ServerName mydomain.com ServerAlias www.mydomain.com ErrorLog ${APACHE_LOG_DIR}/proxy-error.log CustomLog ${APACHE_LOG_DIR}/proxy-access.log combined ProxyRequests Off ProxyPass / http://555.867.530.9/ ProxyPassReverse / http://555.867.530.9/ </VirtualHost>

Kendi ters proxy'nizi kurmak için bu kılavuzu izliyorsanız, mydomain.com sitenizin alan adıyla ve 555.867.530.9 yeni sunucunuzun IP adresiyle değiştirdiğinizden emin olun.

Devam etmeden önce VirtualHost yapılandırmasını satır satır inceleyelim:

  1. <VirtualHost *:80> , 80 numaralı bağlantı noktasında bu sunucudaki tüm IP'ler için yeni bir sanal ana bilgisayar tanımladığımız anlamına gelir.
  2. ServerName proxy.otherdomain.com , bu sanal ana bilgisayarın işleyeceği etki alanını tanımlar.
  3. ServerAlias www.mydomain.com , istekleri www alt etki alanına da proxy yaptığımızdan emin olacaktır.
  4. ErrorLog ve CustomLog satırları, Apache'nin bu sanal ana bilgisayar için hata ve erişim günlüklerini nereye yazacağını bilmesini sağlar. Daha sonra herhangi bir şeye bakmak istersem, onları sunucudaki diğer ana bilgisayarlardan ayırmayı seviyorum.
  5. ProxyRequests Off , her ihtimale karşı ileri proxy'yi açıkça devre dışı bırakır.
  6. ProxyPass / http://555.867.530.9/ sihrin gerçekleştiği yerdir, çünkü bu satır proxy'nin ServerName adresine gönderilen istekleri nereye ileteceğini bilmesini sağlar. İstediğin buysa, bir alt dizin bile olabilir.
  7. ProxyPassReverse / http://555.867.530.9/ Apache'nin proxy olarak hareket ettiği sunucudan gelen yanıtları değiştirmesine izin verir. Örneğin, http://555.867.530.9/ adresine yapılan bir istek, sizi http://555.867.530.9/index.php adresine yönlendiren bir üstbilgi gönderirse, üstbilgi değiştirilir, böylece etkialanim.com'a yönlendiriliriz. /index.php yerine.

Artık dosyayı kaydedebilir ve metin düzenleyicinizden çıkabilirsiniz. Şu anki sitemiz için VirtualHost'u devre dışı bırakmamız, ters proxy için VirtualHost'u etkinleştirmemiz ve son olarak Apache'yi yeniden başlatmamız gerektiğinden henüz hiçbir şey değişmedi.

Hangi sitenin devre dışı bırakılacağını bulmak için hangi yapılandırmaların etkinleştirildiğini kontrol edebilirsiniz:

 $ ls /etc/apache2/sites-enabled > 000-default.conf

Bu sunucuyu hemen hemen kutudan çıkardığım için, etkinleştirilen tek 'site', varsayılan yapılandırma olan 000-default.conf . Bu yüzden, bunu devre dışı bıraktığımdan emin olmak, proxy'mi etkinleştirmek ve ardından yaptığım her şeyin yürürlüğe girdiğinden emin olmak için Apache'yi yeniden başlatmak isteyeceğim:

 $ sudo a2dissite 000-default $ sudo a2ensite my-proxy $ sudo service apache2 restart

Artık mydomain.com ziyaret eden herkese http://555.867.530.9 adresindeki sunucu tarafından oluşturulan bir site sunulacak ve henüz DNS'yi bile güncellemedik!

Artık etki alanınızı yeni sunucunuza yönlendirmek için DNS kayıtlarınızı güncellemeye devam edebilirsiniz. DNS yayılırken, bazı ziyaretçiler NixNode'daki sunucuya yönlendirilecek ve bazıları SmigitalSmocean'daki yeni sunucuya gönderilecek, ancak ters proxy'miz sayesinde tüm istekler aslında SmigitalSmocean'daki sunucu tarafından yerine getirilecek.

Hususlar

Ters proxy, yeni bir sunucunun tüm istekleri alanınıza sunmaya başladığı anın tam kontrolünü size geri verdiğinden, sunucuları taşıma sürecini basitleştirmede inanılmaz derecede yardımcı olabilir, ancak önceden bilmeniz gereken birkaç şey var. bu çözümü uygulamak:

  1. Ters proxy yalnızca HTTP bağlantıları için geçerlidir. MX kayıtları ve HTTP olmayan istekler gibi diğer tüm kayıtlar, DNS'nin belirttiği IP adresine yönlendirilmeye devam edecektir. Yeni ad sunucularına geçiyorsanız, geçiş yapmayı planlamadan birkaç gün önce TTL değerlerini düşürerek ve NS kayıtlarını güncellemeden önce A kayıtlarınızı yeni sunucunuzu gösterecek şekilde güncelleyerek yayılma süresini azaltabilirsiniz. Çoğu DNS sunucusu, önbelleklerini TTL değerlerine göre güncelleyecektir, ancak yayılma yine de biraz zaman alabilir ve 300 saniyelik bir TTL'ye sahip bir kaydın, dünyadaki arama isteği alan her DNS sunucusunda güncellenmesi birkaç saat sürebilir.

  2. HTTPS kullanıyorsanız, 80 numaralı bağlantı noktasında HTTP trafiği için ayarladığınız proxy'ye ek olarak 443 numaralı bağlantı noktası için bir ters proxy kurmanız gerekir.

  3. Ters proxy, bir MySQL veya başka bir veritabanını proxy yapmaz. Çoğu durumda, WordPress gibi bir web uygulaması, veritabanınıza localhost veya 127.0.0.1 gibi bir adres aracılığıyla erişir ve bu, ters proxy'nizle gayet iyi çalışmalıdır. Öte yandan, veritabanınıza sql.mydomain.com gibi bir alt etki alanı aracılığıyla bağlanırsanız, DNS sunucularının önbelleği olmayan yeni, benzersiz bir alt etki alanı kullandığınızdan ve güncellemeyi unutmayın. Orijinal sunucunuzdaki kayıtlar, taşınmanızdan çok önce.

  4. Taşıdığınız ana bilgisayar, bir ters proxy etkinleştirmek için sunucu yapılandırmanızı düzenlemenize izin vermiyorsa, bu mutlaka birinden yararlanamayacağınız anlamına gelmez. Bu durumda, karışıma üçüncü bir sunucu getirmeniz gerekir: Yalnızca ters proxy görevi görecek bir sunucuyu başlatmak için DigitalOcean gibi bir ana bilgisayar kullanırdım.

    İlk başta bu sunucuyu eski siteniz için bir ters proxy olacak şekilde ayarladınız. Ardından, alan adınızın A kaydını, orijinal ana makinenizden kaynak sunmaya devam edecek proxy'yi işaret edecek şekilde güncelleyebilirsiniz. Birkaç gün sonra, DNS'nin yayıldığından emin olduğunuzda, dosyalarınızı ve veritabanınızı yeni sunucunuza aktarabilir ve proxy sunucunuzu yeni ana makineniz için bir ters proxy olacak şekilde güncelleyebilirsiniz. Yeni ana bilgisayarı işaret etmek için DNS kayıtlarınızı tekrar güncelleyin ve birkaç gün sonra trafik proxy'niz üzerinden yönlendirmeyi bıraktığında kapatabilirsiniz.

TMTOWTDI

Yıllar önce bir Perl geliştiricisiyken, genellikle telaffuz edilemeyen bir kısaltmaya indirgenen bir mantra öğrenmiştim: Bunu Yapmanın Birden Fazla Yolu Var .

Bir ters proxy, trafiği zorlu durumlarda ve çevresinde yönlendirmek için inanılmaz derecede güçlü bir araç olabilir – ancak bunu yapmanın her zaman birden fazla yolu vardır. Sunucuları taşımak veya ters proxy'nin yaratıcı kullanımları için en iyi ipuçlarınız nelerdir? Yorumlarda bize bildirin!

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

Divi's Theme Builder ile Özel Global Başlık Nasıl Oluşturulur

Artık Tema Oluşturucu burada olduğuna göre, web sitenizi A'dan Z'ye kurmanıza yardımcı olacak yeni eğitimlere dalmak için sabırsızlanıyoruz. Buna Divi'nin yerleşik seçeneğini kullanarak özel başlıklar oluşturma da dahildir. Bu eğitimde Divi's Theme Builder'ı kullanarak global bir başlık oluşturmaya odaklanacağız. Bu sayfaya veya gönderiye farklı bir başlık atamadıysanız, web sitenizin her yerinde genel bir başlık görünecektir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir