Giriş
Üçüncü taraf uzantılar son derece yararlı eklentilerdir. Bunlar, Apache HTTP gibi bir sunucuyu yapılandırma ve onunla çalışma deneyiminizi çok daha basit ve kolaylaştırıcı hale getirir. İhtiyaç anında, ters proxy çalıştırmak için Apache'deki bu modüllerden bazılarını bile kullanabilirsiniz. Sunucu kurulumunuzdan bir katmanı kaldırabilir veya bağlantıları yönlendirmek için bir modül kullanabilirsiniz.
Bu kılavuzda, Apache'yi ve mod_proxy gibi sunucu platformuyla ilişkili çeşitli modülleri ele alacağız. Ayrıca bunu nasıl bir ters proxy olarak kullanarak bağlantıları arka uç uygulama sunucularınıza yönlendirebileceğinizi göreceğiz.
Apache Nedir?
Apache, HTTP sunucusu olarak web ile ilgili amaçlar için çok yaygın olarak kullanılır. Ancak bunu çeşitli nedenlerle ve birkaç platformda kullanabilirsiniz. Adım adım eğitimimizi takip ederek Apache web sunucunuzu Ubuntu'ya kurabilirsiniz. Ayrıca, Apache sunucunuzu Let’s Encrypt ile nasıl güvenli hale getireceğinizi öğrenmek için bu eğitimi takip edin. Ayrıca Ubuntu 20.04 üzerinde Apache sanal ana bilgisayarlarının (virtual hosts) nasıl kurulacağına.
da göz atabilirsiniz. Harici modüllerin yardımıyla Apache'nin işlevlerini ve uygulamasını daha da keşfedebilirsiniz. Bunlar, bağlantılar ve yapılandırmalarla ilgili çeşitli görevleri gerçekleştirmek için kullanabileceğiniz üçüncü taraf modüllerdir. Örneğin, kural tabanlı URL yeniden yazma işlemi gerçekleştirmek için mod_rewrite modülünü kullanabilirsiniz. Bu modüllerden bir diğeri de mod_proxy'dir. İkinci modül, toplulukta büyük ölçüde yetersiz kullanılmaktadır. Bunun başlıca nedeni, birçok kişinin işlevselliğinin ve uygulamalarının kapsamından haberdar olmamasıdır. Mod_proxy, adından da anlaşılacağı gibi, arka uç sunucuları için bir ağ geçidi veya proxy kurmanıza yardımcı olabilir.
Gelin, mod_proxy modülünü ayrıntılı olarak ve onu nasıl bir ters proxy olarak kullanabileceğinizi inceleyelim.
Mod_proxy: Apache'yi Ters Proxy Olarak Kullanma
Muhtemelen tahmin edebileceğiniz gibi, mod_proxy bir modüldür. Apache'de çeşitli bağlantılar oluşturmak ve yönlendirmek için kullanabileceğiniz bir modüldür. Ayrıca sisteminizdeki diğer tüm modüller gibi etkinleştirebilir ve yapılandırabilirsiniz. Mod_proxy'nin benzersiz yanı, yalnızca tek bir modül olmamasıdır. Aslında, aşağıda bulacağınız farklı modüllerden oluşan bir koleksiyonu kapsar. Bunların her birinin gerçekleştireceği kendi işlevi vardır. Bu şekilde mod_proxy, işlevsellikte size büyük bir çeşitlilik sunar.
Aşağıdaki mod_proxy modüllerine bir göz atın:
mod_proxy
Bu ana proxy modülüdür. Apache'de, bu modülü çeşitli bağlantıları yapılandırmak ve yönetmek için kullanabilirsiniz. Ayrıca bağlantıları yönlendirmenize de yardımcı olabilir.
mod_proxy_http
Adından da anlaşılacağı gibi, bu modül HTTP ve HTTPS protokolleriyle ilgilenir. Bu protokollerin proxy özelliklerini uygulamak için bu modülü kullanabilirsiniz.
mod_proxy_ftp
Mod_proxy_ftp, FTP protokolüyle çalışırken işe yarar.
mod_proxy_connect
Bu modül, SSL tünelleme gerçekleştirirken yardımcı olur.
mod_proxy_ajp
AJP protokolüyle çalışırken mod_proxy_ajp kullanabilirsiniz.
mod_proxy_wstunnel
Bu, WS ve WSS gibi web soketleriyle çalışırken kullanışlıdır.
mod_proxy_balancer
Yük dengeleme ve kümeleme özelliklerine erişmek istiyorsanız bu modülü kullanabilirsiniz.
mod_cache
mod_cache modülü, beklendiği gibi, önbelleğe alma amaçları için yararlıdır.
mod_headers
HTTP protokolünü kullanarak oluşturduğunuz üstbilgileri (headers) yönetmek için bu modülü kullanabilirsiniz.
mod_deflate
Bu modül sıkıştırma amaçları için kullanılır.
Bu modüller hakkında daha da fazla ayrıntı öğrenmek isterseniz, resmi Apache web sitesini ziyaret edebilirsiniz. Resmi belgeler size mod_proxy ve Apache'nin kendisi hakkında da daha fazla bilgi verir.
Apache ve mod_proxy Nasıl Kurulur?
Sisteminize Apache ve mod_proxy kurmak için takip etmesi kolay bazı adımlar aşağıda verilmiştir:
- Sunucuyu Hazırlayın
Öncelikle bulut sunucunuzun hazırlandığından emin olmanız gerekir. Bunu yapmak için işletim sisteminizi ve ilgili yazılımları en son sürümlere güncellemeniz gerekir.
Uygulamalarınızı yükseltmek için aşağıdaki komutları kullanın:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Temel Paketi Kurun
Sunucunuzu hazırladıktan sonra, onu temel araçlarla donatmanız gerekir. Bu amaçla, build-essential paketini kurmanız gerekir. Bu paket, kaynak koddan kurulum yapmak için ihtiyacınız olan tüm temel araçları içerir. Bu komutla kurabilirsiniz:
|
1 |
aptitude install -y build-essential |
- Modülleri ve Bağımlılıkları Alın
Son olarak, modülleri ve bağımlılıkları kurmanız gerekir. Bunu aşağıdaki komutu çalıştırarak yapabilirsiniz:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Modülleri Etkinleştirme: Apache, Proxy Bağlantılarıyla Nasıl Yapılandırılır?
Apache'yi yapılandırmaya başlamadan önce bile modüllerinizi etkinleştirmeniz gerekir. Bu modüller, gerekli yapılandırmaları yapmanıza ve çeşitli görevleri gerçekleştirmenize yardımcı olacaktır.
Başlamak için, sisteminizde halihazırda hangi modüllerin çalıştığını kontrol etmeniz gerekir. Sadece bu da değil, aynı zamanda tüm modüllerin düzgün bir şekilde kurulduğundan ve etkinleştirilebildiğinden emin olmanız gerekir. Bu komutu çalıştırmak, Apache sunucunuzdaki tüm kullanılabilir modülleri gösterecektir:
|
1 |
a2enmod |

Görebileceğiniz gibi, yanıt size mevcut tüm modülleri ayrıntılı bir liste halinde gösterir. Bu listeye göz atın ve hangi modülleri etkinleştirmek istediğinizi belirleyin. Apache'ye bildirmek için aşağıdaki komutu kullanabilir ve örneklerin yerine istediğiniz modülleri girebilirsiniz:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
Öte yandan, her bir modülü ayrı ayrı da etkinleştirebilirsiniz. Bunu yapmak için aşağıdaki komutları kullanırsınız:
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
Bazı modüller muhtemelen sunucunuzda varsayılan olarak etkinleştirilecektir. Bunların etkinleştirildiğini nasıl onaylayabileceğinizi merak edebilirsiniz. İstediğiniz modülün aktif olduğundan emin olmak için onu iki kez etkinleştirmeyi deneyebilirsiniz. Bu, modülün etkinleştirildiğini garanti edecektir.
- Varsayılan Yapılandırma Ayarlarını Değiştirin
İlk olarak, varsayılan yapılandırma ayarlarını değiştirmeniz gerekir. Bunu yapmak için, 000-default.conf olan varsayılan yapılandırma dosyasına erişmelisiniz. Bu dosya /etc/apache2/sites-enabled içinde yer alır. Proxy işlevini kazanması için dosyayı bu şekilde değiştirmemiz gerekir.
Varsayılan sanal ana bilgisayarı düzenlemek için nano metin düzenleyicisini açarak başlayacaksınız. Bunu şu komutu çalıştırarak yapabilirsiniz:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
mod_virtual host ve mod_proxy'yi toplu olarak proxy sanal ana bilgisayarı olarak adlandıracağız. Şimdi, aşağıdaki yapılandırma ayarlarını uygulayabilirsiniz. Sisteminiz ve gereksinimleriniz için uygun gördüğünüz şekilde gerekli değişiklikleri yapabilirsiniz:
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
Ctrl + X tuşlarına basıp Y ile onayladıktan sonra kaydedip çıkabilirsiniz.
- Yük Dengeleme Özelliğini Etkinleştirin
Yük dengeleme proxy'nizdeki bağlantıları etkili bir şekilde dağıtmanıza yardımcı olur. Bu, tek bir sunucu yerine birden fazla arka uç uygulama sunucusu kullandığınız durumlar için çok kullanışlı bir fikirdir. Yük dengeleme özelliği bağlantıyı veya 'yükü' dağıtacaktır.
Bu özelliği etkinleştirmek için, bu kılavuzda daha önce belirtilen adımları tekrarlamanız gerekir. Ancak, sanal ana bilgisayarı kurarken aşağıdaki yapılandırma ayarlarını kullanmanız gerekir:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Arka uç sunucularını tanımlayın: # Sunucu 1 BalancerMember http://0.0.0.0:8080/ # Sunucu 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # VH ayarlarını istediğiniz gibi uygulayın # Ancak, yükü dengelemek için ProxyPass bağımsız değişkenini # "mycluster" kullanacak şekilde yapılandırın ProxyPass / balancer://mycluster </VirtualHost> |
- Ters Proxy Desteğini Etkinleştir
Eğer SSL bağlantıları ve sertifikalarıyla çalışıyorsanız, sanal ana makinenizin ters proxy'nizi desteklemesini sağlamanız gerekir. Bu ikincil sanal ana makinenin aşağıdaki ayarlara sahip olması gerekir. Önceki adımlardaki talimatları uygulamanız gerekecektir. Tek yapmanız gereken yapılandırma seçeneklerini aşağıda belirtilenlerle değiştirmektir:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # SSL sertifikasının yolunu ayarlayın # Kullanım: SSLCertificateFile /path/to/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Bağlantıyı proxy'leyecek sunucular veya; # Uygulama sunucularının listesi: # Kullanım: # ProxyPass / http://[IP Addr.]:[port]/ # ProxyPassReverse / http://[IP Addr.]:[port]/ # Örnek: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Veya yükü dengeleyin: # ProxyPass / balancer://balancer_cluster_name </VirtualHost> |
Yukarıdaki yapılandırmanın çalışması için SSL modülünü de etkinleştirmeniz gerekir:
|
1 |
sudo a2enmod ssl |
- Apache'yi Yeniden Başlatın
Tüm yapılandırmalar tamamlandı. Son olarak, değişiklikleri uygulamak için Apache sunucunuzu yeniden başlatabilirsiniz. Aşağıdaki komutu çalıştırarak Apache'yi yeniden başlatabilirsiniz:
|
1 |
service apache2 restart |
Sonuç
İşte bu kadar! Apache sunucunuzda başarıyla bir ters proxy geçidi kurdunuz. Artık Apache, gelen bağlantıları arka uçtaki uygulama sunucularınıza yönlendirecektir.
Bunun en güzel yanı, yapılandırma işleminin çok az çaba gerektirmesi ve oldukça basit olmasıdır. Artık oraya nasıl ulaşacağınızın tam adımlarını bildiğinize göre, Apache'de ters proxy kurarken hiç zorluk yaşamamalısınız.
Keyifli Çalışmalar!

Yorumlar
Henüz yorum yapılmamış. İlk siz olun.