{"id":38309,"date":"2026-01-28T13:40:52","date_gmt":"2026-01-28T10:40:52","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38309"},"modified":"2026-01-28T13:40:52","modified_gmt":"2026-01-28T10:40:52","slug":"apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/","title":{"rendered":"Apache&#8217;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma"},"content":{"rendered":"<p><body><\/p>\n<h2>Apache&#8217;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131 mimarilerinde, bir ters vekil sunucu (reverse proxy), sistemlerin verimli, g\u00fcvenli ve \u00f6l\u00e7eklenebilir bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in hayati bir rol oynamaktad\u0131r. Temel olarak, bir ters vekil sunucu, istemcilerden gelen istekleri al\u0131r ve bu istekleri bir veya daha fazla arka u\u00e7 sunucusuna (backend server) ileterek yan\u0131tlar\u0131 istemciye geri g\u00f6nderir. Bu s\u00fcre\u00e7, istemcilerin do\u011frudan arka u\u00e7 sunucular\u0131yla etkile\u015fim kurmas\u0131n\u0131 engeller, b\u00f6ylece bir\u00e7ok avantaj sa\u011flar.<\/p>\n<p>Apache HTTP Sunucusu, mod_proxy mod\u00fcl\u00fc ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, g\u00fc\u00e7l\u00fc ve esnek bir ters vekil sunucu \u00e7\u00f6z\u00fcm\u00fc sunar. Ubuntu 16.04, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcm\u00fc olmas\u0131 nedeniyle bir\u00e7ok kurumsal ortamda hala kullan\u0131lmaktad\u0131r ve Apache&#8217;yi bu platformda bir ters vekil olarak yap\u0131land\u0131rmak, mevcut altyap\u0131lar i\u00e7in \u00f6nemli bir de\u011fer katabilir. Bu makalede, Apache&#8217;yi Ubuntu 16.04 \u00fczerinde mod_proxy kullanarak bir ters vekil sunucu olarak nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde ele alaca\u011f\u0131z. G\u00fcvenlikten y\u00fck dengelemeye, SSL sonland\u0131rmadan performansa kadar \u00e7e\u015fitli y\u00f6nleri inceleyerek kapsaml\u0131 bir rehber sunmay\u0131 hedefliyoruz.<\/p>\n<p>Ters vekil sunucular\u0131n ba\u015fl\u0131ca faydalar\u0131 \u015funlard\u0131r:<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Arka u\u00e7 sunucular\u0131n\u0131n IP adreslerini ve i\u00e7 a\u011f yap\u0131lar\u0131n\u0131 gizleyerek do\u011frudan eri\u015fimi engeller. Sald\u0131r\u0131lara kar\u015f\u0131 bir ilk savunma hatt\u0131 g\u00f6revi g\u00f6r\u00fcr.<br \/>\n*   <strong>Y\u00fck Dengeleme (Load Balancing):<\/strong> Gelen istekleri birden fazla arka u\u00e7 sunucusuna da\u011f\u0131tarak performans\u0131 art\u0131r\u0131r ve sunucular\u0131n a\u015f\u0131r\u0131 y\u00fcklenmesini \u00f6nler.<br \/>\n*   <strong>SSL\/TLS Sonland\u0131rma:<\/strong> SSL\/TLS \u015fifrelemesini ters vekil sunucuda sonland\u0131rarak arka u\u00e7 sunucular\u0131n\u0131n bu y\u00fckten kurtulmas\u0131n\u0131 sa\u011flar. Bu, arka u\u00e7 sunucular\u0131n\u0131n daha az kaynak t\u00fcketerek uygulama mant\u0131\u011f\u0131na odaklanmas\u0131na olanak tan\u0131r.<br \/>\n*   <strong>\u00d6nbellekleme (Caching):<\/strong> S\u0131k eri\u015filen i\u00e7eri\u011fi \u00f6nbelle\u011fe alarak yan\u0131t s\u00fcrelerini h\u0131zland\u0131r\u0131r ve arka u\u00e7 sunucular\u0131ndaki y\u00fck\u00fc azalt\u0131r.<br \/>\n*   <strong>Tek Bir Eri\u015fim Noktas\u0131:<\/strong> Farkl\u0131 hizmetleri veya uygulamalar\u0131 tek bir alan ad\u0131 veya IP adresi \u00fczerinden eri\u015filebilir k\u0131lar.<br \/>\n*   <strong>URL Yeniden Yazma ve Y\u00f6nlendirme:<\/strong> \u0130stemciye g\u00f6sterilen URL&#8217;leri de\u011fi\u015ftirmeden istekleri farkl\u0131 arka u\u00e7lara y\u00f6nlendirme yetene\u011fi sunar.<\/p>\n<p>Bu makale, Ubuntu 16.04 \u00fczerinde Apache&#8217;nin nas\u0131l kuruldu\u011funu varsayarak, \u00f6ncelikle mod_proxy&#8217;nin etkinle\u015ftirilmesine, ard\u0131ndan temel ve geli\u015fmi\u015f ters vekil yap\u0131land\u0131rmalar\u0131na odaklanacakt\u0131r.<\/p>\n<h2>\u00d6n Ko\u015fullar<\/h2>\n<p>Bu rehberi takip etmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6n ko\u015fullara sahip olman\u0131z gerekmektedir:<br \/>\n*   <strong>Ubuntu 16.04 Sunucusu:<\/strong> Temiz bir Ubuntu 16.04 kurulumuna sahip bir sanal veya fiziksel sunucu.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Root eri\u015fimi veya <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131.<br \/>\n*   <strong>Apache HTTP Sunucusu:<\/strong> Sunucunuzda Apache&#8217;nin kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131. E\u011fer kurulu de\u011filse, sonraki b\u00f6l\u00fcmde kurulum ad\u0131mlar\u0131 g\u00f6sterilecektir.<br \/>\n*   <strong>Arka U\u00e7 Sunucusu:<\/strong> Ters vekilin y\u00f6nlendirece\u011fi en az bir adet \u00e7al\u0131\u015fan arka u\u00e7 web uygulamas\u0131 veya sunucusu (\u00f6rne\u011fin, Nginx, Node.js uygulamas\u0131, ba\u015fka bir Apache sunucusu vb.). Bu sunucunun IP adresi ve port numaras\u0131 (\u00f6rne\u011fin, <code>http:\/\/192.168.1.100:8080<\/code>) biliniyor olmal\u0131d\u0131r.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 kullan\u0131m\u0131 ve dosya d\u00fczenleme konular\u0131nda temel bilgi.<\/p>\n<h2>Apache Kurulumu ve Temel Yap\u0131land\u0131rma<\/h2>\n<p>E\u011fer sunucunuzda Apache y\u00fckl\u00fc de\u011filse, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek kurabilirsiniz.<\/p>\n<h3>Sistem G\u00fcncellemesi<\/h3>\n<p>\u00d6ncelikle paket listelerinizi g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade<\/code><\/pre>\n<h3>Apache2 Kurulumu<\/h3>\n<p>Apache HTTP Sunucusunu kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install apache2<\/code><\/pre>\n<h3>Apache Servisinin Durumunu Kontrol Etme<\/h3>\n<p>Kurulumdan sonra Apache servisi otomatik olarak ba\u015flamal\u0131d\u0131r. Durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status apache2<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz.<\/p>\n<h3>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h3>\n<p>Ubuntu 16.04&#8217;te varsay\u0131lan g\u00fcvenlik duvar\u0131 olan UFW (Uncomplicated Firewall) etkinse, Apache&#8217;nin d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in HTTP (80) ve HTTPS (443) portlar\u0131n\u0131 a\u00e7man\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list<\/code><\/pre>\n<p>Bu komut, UFW taraf\u0131ndan tan\u0131nan uygulama profillerini listeler. <code>Apache Full<\/code>, <code>Apache<\/code> ve <code>Apache Secure<\/code> gibi se\u00e7enekleri g\u00f6rmelisiniz.<br \/>\n*   <code>Apache<\/code>: Sadece port 80 (HTTP) a\u00e7ar.<br \/>\n*   <code>Apache Secure<\/code>: Sadece port 443 (HTTPS) a\u00e7ar.<br \/>\n*   <code>Apache Full<\/code>: Hem port 80 hem de port 443&#8217;\u00fc a\u00e7ar.<\/p>\n<p>Genellikle <code>Apache Full<\/code> profilini etkinle\u015ftirmek en iyisidir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Apache Full'\nsudo ufw enable # E\u011fer UFW etkin de\u011filse\nsudo ufw status<\/code><\/pre>\n<p>Art\u0131k taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresine giderek varsay\u0131lan Apache kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h2>mod_proxy Mod\u00fcllerini Etkinle\u015ftirme<\/h2>\n<p>Apache&#8217;yi bir ters vekil sunucu olarak kullanmak i\u00e7in <code>mod_proxy<\/code> ve ilgili alt mod\u00fcllerini etkinle\u015ftirmemiz gerekir.<\/p>\n<h3>Gerekli mod_proxy Mod\u00fclleri<\/h3>\n<p>*   <strong><code>mod_proxy<\/code><\/strong>: Apache&#8217;nin temel vekil sunucu mod\u00fcl\u00fcd\u00fcr ve vekil i\u015flevselli\u011finin \u00e7ekirde\u011fini sa\u011flar.<br \/>\n*   <strong><code>mod_proxy_http<\/code><\/strong>: HTTP ve HTTPS protokolleri \u00fczerinden vekil istekleri i\u015flemek i\u00e7in gereklidir. Bu, en yayg\u0131n kullan\u0131lan vekil t\u00fcr\u00fcd\u00fcr.<br \/>\n*   <strong><code>mod_proxy_balancer<\/code><\/strong>: Y\u00fck dengeleme i\u015flevselli\u011fi sa\u011flamak i\u00e7in kullan\u0131l\u0131r. Birden fazla arka u\u00e7 sunucusuna istekleri da\u011f\u0131tmak istedi\u011finizde bu mod\u00fcl gereklidir.<br \/>\n*   <strong><code>mod_proxy_ajp<\/code><\/strong>: Apache JServ Protocol (AJP) \u00fczerinden vekil istekleri i\u015flemek i\u00e7in kullan\u0131l\u0131r, genellikle Tomcat gibi Java uygulama sunucular\u0131 i\u00e7in faydal\u0131d\u0131r.<br \/>\n*   <strong><code>mod_ssl<\/code><\/strong>: E\u011fer SSL\/TLS sonland\u0131rma yapacaksan\u0131z (yani istemci ile ters vekil sunucu aras\u0131ndaki ba\u011flant\u0131y\u0131 \u015fifreleyecekseniz) bu mod\u00fcl gereklidir.<\/p>\n<h3>Mod\u00fclleri Etkinle\u015ftirme<\/h3>\n<p>Mod\u00fclleri etkinle\u015ftirmek i\u00e7in <code>a2enmod<\/code> komutunu kullan\u0131r\u0131z. Temel bir ters vekil i\u00e7in <code>mod_proxy<\/code> ve <code>mod_proxy_http<\/code> yeterlidir:<\/p>\n<pre><code class=\"language-bash\">sudo a2enmod proxy\nsudo a2enmod proxy_http<\/code><\/pre>\n<p>E\u011fer y\u00fck dengeleme yapmay\u0131 planl\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo a2enmod proxy_balancer<\/code><\/pre>\n<p>E\u011fer SSL\/TLS sonland\u0131rma yapacaksan\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo a2enmod ssl<\/code><\/pre>\n<p>T\u00fcm gerekli mod\u00fclleri etkinle\u015ftirdikten sonra, de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in Apache&#8217;yi yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<h2>Ters Vekil Sunucu Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>\u015eimdi s\u0131ra ters vekil sunucuyu yap\u0131land\u0131rmaya geldi. Bu genellikle Apache&#8217;nin sanal ana bilgisayar (VirtualHost) yap\u0131land\u0131rma dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r.<\/p>\n<h3>Temel Ters Vekil Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Yeni bir sanal ana bilgisayar yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m. \u00d6rne\u011fin, alan ad\u0131n\u0131z <code>example.com<\/code> ise, <code>\/etc\/apache2\/sites-available\/example.com.conf<\/code> ad\u0131nda bir dosya olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/apache2\/sites-available\/example.com.conf<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 ekleyin. <code>ServerName<\/code> ve <code>ProxyPass<\/code> y\u00f6nergelerindeki de\u011ferleri kendi ortam\u0131n\u0131za g\u00f6re de\u011fi\u015ftirmeyi unutmay\u0131n.<\/p>\n<pre><code class=\"language-apacheconf\"><VirtualHost *:80>\n    ServerAdmin webmaster@localhost\n    ServerName example.com\n    ServerAlias www.example.com\n\n    # ProxyRequests Off, Apache'nin a\u00e7\u0131k bir vekil sunucu olarak \u00e7al\u0131\u015fmas\u0131n\u0131 engeller.\n    # Bu, g\u00fcvenlik i\u00e7in kritik \u00f6neme sahiptir ve ters vekil sunucular i\u00e7in her zaman Off olmal\u0131d\u0131r.\n    ProxyRequests Off\n\n    # ProxyPreserveHost On, gelen iste\u011fin Host ba\u015fl\u0131\u011f\u0131n\u0131 arka u\u00e7 sunucusuna iletilmesini sa\u011flar.\n    # Bu, arka u\u00e7 uygulamas\u0131n\u0131n do\u011fru ana bilgisayar ad\u0131n\u0131 g\u00f6rmesi i\u00e7in \u00f6nemlidir.\n    ProxyPreserveHost On\n\n    # ProxyPass: Belirli bir URL yolunu (ilk arg\u00fcman) bir arka u\u00e7 sunucusuna (ikinci arg\u00fcman) y\u00f6nlendirir.\n    # Bu \u00f6rnekte, t\u00fcm gelen istekler (\/) http:\/\/192.168.1.100:8080 adresindeki arka uca y\u00f6nlendirilir.\n    ProxyPass \/ http:\/\/192.168.1.100:8080\/\n\n    # ProxyPassReverse: Arka u\u00e7 sunucusundan gelen HTTP y\u00f6nlendirme (redirect) ba\u015fl\u0131klar\u0131n\u0131 yeniden yazar.\n    # Bu, arka ucun istemciyi do\u011frudan kendi adresine y\u00f6nlendirmesini engeller ve\n    # y\u00f6nlendirmelerin ters vekil sunucu \u00fczerinden yap\u0131lmas\u0131n\u0131 sa\u011flar.\n    ProxyPassReverse \/ http:\/\/192.168.1.100:8080\/\n\n    ErrorLog ${APACHE_LOG_DIR}\/example.com_error.log\n    CustomLog ${APACHE_LOG_DIR}\/example.com_access.log combined\n<\/VirtualHost><\/code><\/pre>\n<p>Yap\u0131land\u0131rmay\u0131 kaydettikten sonra, bu sanal ana bilgisayar dosyas\u0131n\u0131 etkinle\u015ftirmemiz ve varsay\u0131lan siteyi devre d\u0131\u015f\u0131 b\u0131rakmam\u0131z (iste\u011fe ba\u011fl\u0131 ama iyi bir uygulama) gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo a2ensite example.com.conf\nsudo a2dissite 000-default.conf # Varsay\u0131lan siteyi devre d\u0131\u015f\u0131 b\u0131rak<\/code><\/pre>\n<p>Yap\u0131land\u0131rman\u0131n s\u00f6zdizimini kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo apache2ctl configtest<\/code><\/pre>\n<p>E\u011fer <code>Syntax OK<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 al\u0131rsan\u0131z, Apache&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<p>\u015eimdi, taray\u0131c\u0131n\u0131zdan <code>example.com<\/code> adresine eri\u015fti\u011finizde, Apache&#8217;nin arka u\u00e7 sunucunuzdaki i\u00e7eri\u011fi size sunmas\u0131 gerekir.<\/p>\n<h3>Yol Tabanl\u0131 Ters Vekil Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Bazen farkl\u0131 URL yollar\u0131n\u0131 farkl\u0131 arka u\u00e7 sunucular\u0131na y\u00f6nlendirmek isteyebilirsiniz. \u00d6rne\u011fin, <code>\/app1<\/code> yolunu bir sunucuya, <code>\/app2<\/code> yolunu ba\u015fka bir sunucuya y\u00f6nlendirmek gibi.<\/p>\n<pre><code class=\"language-apacheconf\"><VirtualHost *:80>\n    ServerAdmin webmaster@localhost\n    ServerName example.com\n\n    ProxyRequests Off\n    ProxyPreserveHost On\n\n    # \/app1 ile ba\u015flayan t\u00fcm istekleri backend1'e y\u00f6nlendir\n    ProxyPass \/app1\/ http:\/\/192.168.1.101:8081\/\n    ProxyPassReverse \/app1\/ http:\/\/192.168.1.101:8081\/\n\n    # \/app2 ile ba\u015flayan t\u00fcm istekleri backend2'ye y\u00f6nlendir\n    ProxyPass \/app2\/ http:\/\/192.168.1.102:8082\/\n    ProxyPassReverse \/app2\/ http:\/\/192.168.1.102:8082\/\n\n    # Di\u011fer t\u00fcm istekleri ana backend'e y\u00f6nlendir (iste\u011fe ba\u011fl\u0131)\n    ProxyPass \/ http:\/\/192.168.1.100:8080\/\n    ProxyPassReverse \/ http:\/\/192.168.1.100:8080\/\n\n    ErrorLog ${APACHE_LOG_DIR}\/example.com_error.log\n    CustomLog ${APACHE_LOG_DIR}\/example.com_access.log combined\n<\/VirtualHost><\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmada, <code>ProxyPass<\/code> direktiflerinin s\u0131ras\u0131 \u00f6nemlidir. Daha spesifik yollar (\u00f6rn. <code>\/app1\/<\/code>) genel yollardan (\u00f6rn. <code>\/<\/code>) \u00f6nce listelenmelidir. Aksi takdirde, genel kural daha spesifik olan\u0131 yakalayabilir.<\/p>\n<h3>SSL\/TLS Sonland\u0131rma ile Ters Vekil<\/h3>\n<p>G\u00fcvenli bir web deneyimi i\u00e7in HTTPS kullanmak zorunludur. Ters vekil sunucuda SSL\/TLS sonland\u0131rma yapmak, arka u\u00e7 sunucular\u0131n\u0131z\u0131n \u015fifreleme y\u00fck\u00fcnden kurtulmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>mod_ssl Mod\u00fcl\u00fcn\u00fc Etkinle\u015ftirme<\/h4>\n<p>E\u011fer daha \u00f6nce etkinle\u015ftirmediyseniz, <code>mod_ssl<\/code> mod\u00fcl\u00fcn\u00fc etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo a2enmod ssl\nsudo systemctl restart apache2<\/code><\/pre>\n<h4>SSL Sertifikas\u0131 Edinme<\/h4>\n<p>Bir SSL sertifikas\u0131na ihtiyac\u0131n\u0131z olacak. \u00dccretsiz olarak Let&#8217;s Encrypt kullanabilir veya kendi imzal\u0131 (self-signed) bir sertifika olu\u015fturabilirsiniz. \u00dcretim ortamlar\u0131 i\u00e7in Let&#8217;s Encrypt veya ticari bir sertifika \u00f6nerilir.<br \/>\nLet&#8217;s Encrypt ile sertifika almak i\u00e7in Certbot arac\u0131n\u0131 kullanabilirsiniz. Ubuntu 16.04 i\u00e7in kurulum ve kullan\u0131m biraz farkl\u0131 olabilir, ancak genel ad\u0131mlar \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-bash\">sudo apt install software-properties-common\nsudo add-apt-repository ppa:certbot\/certbot\nsudo apt update\nsudo apt install python-certbot-apache\nsudo certbot --apache -d example.com -d www.example.com<\/code><\/pre>\n<p>Certbot, Apache yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak g\u00fcncelleyerek SSL&#8217;yi etkinle\u015ftirecektir. E\u011fer manuel yap\u0131land\u0131rma yap\u0131yorsan\u0131z, sertifika dosyalar\u0131n\u0131z\u0131n yollar\u0131n\u0131 bilmeniz gerekir.<\/p>\n<h4>HTTPS VirtualHost Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Yeni bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturun veya mevcut <code>example.com.conf<\/code> dosyan\u0131za 443 portu i\u00e7in bir <code><VirtualHost><\/code> blo\u011fu ekleyin:<\/p>\n<pre><code class=\"language-apacheconf\"><VirtualHost *:443>\n    ServerAdmin webmaster@localhost\n    ServerName example.com\n    ServerAlias www.example.com\n\n    ProxyRequests Off\n    ProxyPreserveHost On\n\n    # SSL\/TLS ayarlar\u0131\n    SSLEngine On\n    SSLCertificateFile \/etc\/letsencrypt\/live\/example.com\/fullchain.pem\n    SSLCertificateKeyFile \/etc\/letsencrypt\/live\/example.com\/privkey.pem\n    # E\u011fer bir ara sertifika (chain) dosyan\u0131z varsa, onu da ekleyin\n    # SSLCertificateChainFile \/etc\/letsencrypt\/live\/example.com\/chain.pem\n\n    # ProxyPass ve ProxyPassReverse y\u00f6nergeleri\n    ProxyPass \/ http:\/\/192.168.1.100:8080\/\n    ProxyPassReverse \/ http:\/\/192.168.1.100:8080\/\n\n    # \u00d6nemli: \u0130stemcinin ger\u00e7ek IP adresini arka uca iletmek i\u00e7in\n    RequestHeader set X-Forwarded-Proto \"https\"\n    RequestHeader set X-Forwarded-SSL \"on\"\n    RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s\n\n    ErrorLog ${APACHE_LOG_DIR}\/example.com_ssl_error.log\n    CustomLog ${APACHE_LOG_DIR}\/example.com_ssl_access.log combined\n<\/VirtualHost>\n\n<h2>HTTP'den HTTPS'ye y\u00f6nlendirme (iste\u011fe ba\u011fl\u0131 ama \u00f6nerilir)<\/h2>\n<VirtualHost *:80>\n    ServerName example.com\n    ServerAlias www.example.com\n    Redirect permanent \/ https:\/\/example.com\/\n<\/VirtualHost><\/code><\/pre>\n<p>Sertifika yollar\u0131n\u0131 kendi sertifika dosyalar\u0131n\u0131z\u0131n yollar\u0131yla de\u011fi\u015ftirmeyi unutmay\u0131n. Let&#8217;s Encrypt genellikle <code>\/etc\/letsencrypt\/live\/yourdomain\/<\/code> alt\u0131nda depolar.<br \/>\nYap\u0131land\u0131rmay\u0131 kaydedin, etkinle\u015ftirin, test edin ve Apache&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo a2ensite example.com.conf\nsudo apache2ctl configtest\nsudo systemctl restart apache2<\/code><\/pre>\n<p>Art\u0131k <code>https:\/\/example.com<\/code> adresine eri\u015fti\u011finizde, Apache SSL&#8217;i sonland\u0131racak ve istekleri arka u\u00e7 sunucunuza g\u00fcvenli bir \u015fekilde iletecektir.<\/p>\n<h3>Y\u00fck Dengeleme (Load Balancing) Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Birden fazla arka u\u00e7 sunucusu aras\u0131nda y\u00fck\u00fc dengelemek, uygulaman\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini ve kullan\u0131labilirli\u011fini art\u0131r\u0131r. <code>mod_proxy_balancer<\/code> bu ama\u00e7la kullan\u0131l\u0131r.<\/p>\n<h4>mod_proxy_balancer Mod\u00fcl\u00fcn\u00fc Etkinle\u015ftirme<\/h4>\n<p>E\u011fer daha \u00f6nce etkinle\u015ftirmediyseniz:<\/p>\n<pre><code class=\"language-bash\">sudo a2enmod proxy_balancer\nsudo systemctl restart apache2<\/code><\/pre>\n<h4>Y\u00fck Dengeleme Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Sanal ana bilgisayar dosyan\u0131zda a\u015fa\u011f\u0131daki gibi bir yap\u0131land\u0131rma kullanabilirsiniz:<\/p>\n<pre><code class=\"language-apacheconf\"><VirtualHost *:80>\n    ServerAdmin webmaster@localhost\n    ServerName example.com\n\n    ProxyRequests Off\n    ProxyPreserveHost On\n\n    # Y\u00fck dengeleyici k\u00fcmesini tan\u0131mlay\u0131n\n    <Proxy balancer:\/\/mycluster>\n        # BalancerMember: K\u00fcmedeki her bir arka u\u00e7 sunucusunu tan\u0131mlar\n        # weight: Bu \u00fcyenin alaca\u011f\u0131 y\u00fck\u00fcn oran\u0131n\u0131 belirler\n        # status: Arka ucun durumunu (\u00f6rn. 'hot' - aktif, 'drain' - bo\u015faltma, 'fail' - ba\u015far\u0131s\u0131z)\n        BalancerMember http:\/\/192.168.1.101:8080 loadfactor=100 route=app1\n        BalancerMember http:\/\/192.168.1.102:8080 loadfactor=100 route=app2\n        BalancerMember http:\/\/192.168.1.103:8080 loadfactor=100 route=app3\n\n        # Y\u00fck dengeleme algoritmas\u0131:\n        # byrequests: \u0130stek say\u0131s\u0131na g\u00f6re da\u011f\u0131t\u0131r (varsay\u0131lan)\n        # bytraffic: Trafik hacmine g\u00f6re da\u011f\u0131t\u0131r\n        # bybusyness: Arka u\u00e7 sunucular\u0131n\u0131n mevcut ba\u011flant\u0131 say\u0131s\u0131na g\u00f6re da\u011f\u0131t\u0131r\n        # lbmethod=byrequests\n        # lbmethod=bytraffic\n        # lbmethod=bybusyness\n        ProxySet lbmethod=byrequests\n\n        # stickysession: Oturum s\u00fcreklili\u011fi i\u00e7in kullan\u0131l\u0131r.\n        # \u00d6rne\u011fin, JSESSIONID \u00e7erezini kullanarak ayn\u0131 istemcinin her zaman ayn\u0131 arka uca gitmesini sa\u011flar.\n        # stickysession=JSESSIONID|jsessionid\n    <\/Proxy>\n\n    # T\u00fcm gelen istekleri mycluster y\u00fck dengeleyicisine y\u00f6nlendir\n    ProxyPass \/ balancer:\/\/mycluster\/\n    ProxyPassReverse \/ balancer:\/\/mycluster\/\n\n    ErrorLog ${APACHE_LOG_DIR}\/example.com_error.log\n    CustomLog ${APACHE_LOG_DIR}\/example.com_access.log combined\n<\/VirtualHost><\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmada, <code>balancer:\/\/mycluster<\/code> ad\u0131nda bir k\u00fcme tan\u0131mlad\u0131k ve \u00fc\u00e7 farkl\u0131 arka u\u00e7 sunucusu ekledik. <code>ProxySet lbmethod<\/code> y\u00f6nergesi ile y\u00fck dengeleme algoritmas\u0131n\u0131 belirleyebilirsiniz. <code>stickysession<\/code> y\u00f6nergesi, bir kullan\u0131c\u0131n\u0131n oturum s\u00fcresince ayn\u0131 arka u\u00e7 sunucusuna y\u00f6nlendirilmesini sa\u011flar, bu da oturum tabanl\u0131 uygulamalar i\u00e7in \u00f6nemlidir.<\/p>\n<p>Yap\u0131land\u0131rmay\u0131 kaydedin, test edin ve Apache&#8217;yi yeniden ba\u015flat\u0131n. Art\u0131k gelen istekler tan\u0131mlad\u0131\u011f\u0131n\u0131z arka u\u00e7 sunucular\u0131na dengeleme algoritmas\u0131na g\u00f6re da\u011f\u0131t\u0131lacakt\u0131r.<\/p>\n<h2>\u00d6nemli Yap\u0131land\u0131rma Direktifleri ve \u0130pu\u00e7lar\u0131<\/h2>\n<p>Apache&#8217;yi ters vekil olarak kullan\u0131rken performans\u0131, g\u00fcvenli\u011fi ve i\u015flevselli\u011fi art\u0131rmak i\u00e7in dikkate alman\u0131z gereken baz\u0131 ek direktifler ve ipu\u00e7lar\u0131 bulunmaktad\u0131r.<\/p>\n<h3>\u0130stek Ba\u015fl\u0131klar\u0131n\u0131 Y\u00f6netme<\/h3>\n<p>Arka u\u00e7 uygulamalar\u0131n\u0131n do\u011fru bilgiyi almas\u0131 i\u00e7in baz\u0131 HTTP ba\u015fl\u0131klar\u0131n\u0131 iletmek \u00f6nemlidir.<br \/>\n*   <strong><code>X-Forwarded-For<\/code><\/strong>: Orijinal istemcinin IP adresini arka uca iletir. Arka u\u00e7 uygulamalar\u0131 i\u00e7in g\u00fcnl\u00fck kayd\u0131 ve g\u00fcvenlik a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir.<\/p>\n<pre><code class=\"language-apacheconf\">RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s<\/code><\/pre>\n<p>*   <strong><code>X-Forwarded-Proto<\/code><\/strong>: Orijinal iste\u011fin hangi protokol (HTTP veya HTTPS) ile yap\u0131ld\u0131\u011f\u0131n\u0131 arka uca iletir. Bu, uygulaman\u0131n HTTPS ba\u011flant\u0131s\u0131n\u0131 alg\u0131lamas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<pre><code class=\"language-apacheconf\">RequestHeader set X-Forwarded-Proto \"https\"<\/code><\/pre>\n<p>*   <strong><code>X-Forwarded-Host<\/code><\/strong>: Orijinal iste\u011fin <code>Host<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 iletir. <code>ProxyPreserveHost On<\/code> ile benzer bir i\u015flevi vard\u0131r ancak bazen a\u00e7\u0131k\u00e7a belirtmek gerekebilir.<\/p>\n<h3>Hata Y\u00f6netimi ve G\u00fcnl\u00fck Kayd\u0131<\/h3>\n<p>Sorun giderme ve izleme i\u00e7in Apache&#8217;nin g\u00fcnl\u00fck kay\u0131tlar\u0131n\u0131 do\u011fru yap\u0131land\u0131rmak \u00f6nemlidir.<br \/>\n*   <strong><code>ErrorLog<\/code><\/strong>: Hata g\u00fcnl\u00fcklerinin kaydedilece\u011fi dosyay\u0131 belirtir.<br \/>\n*   <strong><code>CustomLog<\/code><\/strong>: Eri\u015fim g\u00fcnl\u00fcklerinin format\u0131n\u0131 ve kaydedilece\u011fi dosyay\u0131 belirtir. <code>combined<\/code> format\u0131 yayg\u0131n olarak kullan\u0131l\u0131r.<br \/>\n*   <strong><code>LogLevel<\/code><\/strong>: G\u00fcnl\u00fck kayd\u0131n\u0131n ayr\u0131nt\u0131 seviyesini ayarlar. Sorun giderme s\u0131ras\u0131nda <code>debug<\/code> seviyesine ayarlamak faydal\u0131 olabilir, ancak \u00fcretimde <code>warn<\/code> veya <code>error<\/code> gibi daha d\u00fc\u015f\u00fck seviyelerde tutulmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-apacheconf\">LogLevel warn proxy:debug<\/code><\/pre>\n<p>    Bu, yaln\u0131zca <code>mod_proxy<\/code> i\u00e7in hata ay\u0131klama g\u00fcnl\u00fcklerini etkinle\u015ftirirken genel hata g\u00fcnl\u00fc\u011f\u00fcn\u00fc <code>warn<\/code> seviyesinde tutar.<\/p>\n<h3>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>*   <strong><code>ProxyRequests Off<\/code><\/strong>: Daha \u00f6nce belirtildi\u011fi gibi, Apache&#8217;nin a\u00e7\u0131k bir vekil sunucu olarak \u00e7al\u0131\u015fmas\u0131n\u0131 engellemek i\u00e7in bu y\u00f6nergeyi her zaman <code>Off<\/code> olarak ayarlay\u0131n.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131<\/strong>: Ters vekil sunucunuzu g\u00fcvenlik duvar\u0131 (UFW) ile koruyun. Sadece gerekli portlar\u0131 (80, 443) a\u00e7\u0131n.<br \/>\n*   <strong>G\u00fcncel Kal\u0131n<\/strong>: Apache ve Ubuntu i\u015fletim sisteminizi d\u00fczenli olarak g\u00fcncelleyerek bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131ndan korunun.<br \/>\n*   <strong>Minimum Yetki Prensibi<\/strong>: Arka u\u00e7 sunucular\u0131n\u0131z\u0131n ters vekil sunucuya sadece gerekli portlardan eri\u015febildi\u011finden emin olun.<br \/>\n*   <strong>Header Filtreleme<\/strong>: Hassas bilgilerin (\u00f6rn. sunucu versiyonu) istemcilere a\u00e7\u0131klanmas\u0131n\u0131 engellemek i\u00e7in <code>Header unset<\/code> y\u00f6nergelerini kullan\u0131n.<\/p>\n<pre><code class=\"language-apacheconf\">Header unset Server\n    Header unset X-Powered-By<\/code><\/pre>\n<h3>Performans \u0130pu\u00e7lar\u0131<\/h3>\n<p>*   <strong><code>mod_cache<\/code><\/strong>: Apache&#8217;nin \u00f6nbellekleme mod\u00fclleri (<code>mod_cache<\/code>, <code>mod_cache_disk<\/code>, <code>mod_cache_socache<\/code>) ile s\u0131k eri\u015filen i\u00e7erikleri \u00f6nbelle\u011fe alarak arka u\u00e7 sunucular\u0131ndaki y\u00fck\u00fc azaltabilir ve yan\u0131t s\u00fcrelerini iyile\u015ftirebilirsiniz. Bu, ayr\u0131 ve kapsaml\u0131 bir konudur ancak ters vekilin performans\u0131n\u0131 ciddi \u015fekilde art\u0131rabilir.<br \/>\n*   <strong><code>KeepAlive<\/code><\/strong>: Arka u\u00e7 sunucular\u0131yla kal\u0131c\u0131 ba\u011flant\u0131lar kurarak ba\u011flant\u0131 a\u00e7ma\/kapama overhead&#8217;ini azaltabilirsiniz. Bu, genellikle <code>ProxyPass<\/code> blo\u011funda <code>ProxyPassReverse<\/code> ile birlikte yap\u0131land\u0131r\u0131l\u0131r.<br \/>\n*   <strong>MPM (Multi-Processing Module) Ayarlar\u0131<\/strong>: Apache&#8217;nin \u00e7al\u0131\u015fma \u015feklini belirleyen MPM ayarlar\u0131n\u0131 (\u00f6rn. <code>mpm_prefork<\/code>, <code>mpm_worker<\/code>, <code>mpm_event<\/code>) sunucunuzun kaynaklar\u0131na ve trafik desenine g\u00f6re optimize edin. Ubuntu 16.04&#8217;te varsay\u0131lan olarak <code>mpm_prefork<\/code> etkindir.<\/p>\n<h2>Yayg\u0131n Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Ters vekil sunucu yap\u0131land\u0131r\u0131rken kar\u015f\u0131la\u015f\u0131labilecek baz\u0131 yayg\u0131n sorunlar ve potansiyel \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>Arka U\u00e7 Sunucusu Ula\u015f\u0131lam\u0131yor<\/strong>:<br \/>\n    *   <strong>Sorun<\/strong>: Apache, arka u\u00e7 sunucusuna ba\u011flanam\u0131yor (\u00f6rn. &#8220;Service Unavailable&#8221; hatas\u0131).<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   Arka u\u00e7 sunucusunun IP adresini ve portunu do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n        *   Arka u\u00e7 sunucusunun \u00e7al\u0131\u015f\u0131r durumda oldu\u011funu kontrol edin.<br \/>\n        *   Arka u\u00e7 sunucusunun g\u00fcvenlik duvar\u0131nda (\u00f6rn. UFW, iptables) Apache sunucusunun IP adresinden gelen ba\u011flant\u0131lara izin verildi\u011finden emin olun.<br \/>\n        *   Apache sunucusundan <code>telnet backend_ip port<\/code> veya <code>curl backend_ip:port<\/code> komutlar\u0131yla arka uca eri\u015fmeyi deneyin.<\/p>\n<p>*   <strong>Y\u00f6nlendirme D\u00f6ng\u00fcleri veya Yanl\u0131\u015f Y\u00f6nlendirmeler<\/strong>:<br \/>\n    *   <strong>Sorun<\/strong>: \u0130stemci, arka u\u00e7 sunucusunun i\u00e7 IP adresine y\u00f6nlendiriliyor veya s\u00fcrekli bir y\u00f6nlendirme d\u00f6ng\u00fcs\u00fcne giriyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   <code>ProxyPassReverse<\/code> y\u00f6nergesini do\u011fru bir \u015fekilde kulland\u0131\u011f\u0131n\u0131zdan emin olun. Bu y\u00f6nerge, arka u\u00e7tan gelen <code>Location<\/code> ba\u015fl\u0131klar\u0131n\u0131 yeniden yazarak istemcinin ters vekil \u00fczerinden kalmas\u0131n\u0131 sa\u011flar.<br \/>\n        *   Arka u\u00e7 uygulamas\u0131n\u0131n kendisinin HTTPS&#8217;yi veya ters vekili do\u011fru alg\u0131lad\u0131\u011f\u0131ndan emin olun. Gerekirse <code>X-Forwarded-Proto<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 kullan\u0131n.<\/p>\n<p>*   <strong>\u0130stemci IP Adresi Arka Uca Ula\u015fm\u0131yor<\/strong>:<br \/>\n    *   <strong>Sorun<\/strong>: Arka u\u00e7 sunucusu veya uygulamas\u0131, t\u00fcm isteklerin ters vekil sunucunun IP adresinden geldi\u011fini g\u00f6r\u00fcyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   <code>RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s<\/code> y\u00f6nergesini kulland\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n        *   Arka u\u00e7 uygulamas\u0131n\u0131n bu ba\u015fl\u0131\u011f\u0131 okuyacak \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun (\u00f6rn. Nginx&#8217;te <code>real_ip_header X-Forwarded-For;<\/code> veya Node.js Express&#8217;te <code>app.set('trust proxy', true);<\/code>).<\/p>\n<p>*   <strong>SSL\/TLS Hatalar\u0131<\/strong>:<br \/>\n    *   <strong>Sorun<\/strong>: Taray\u0131c\u0131da SSL sertifikas\u0131 hatas\u0131 veya HTTPS ba\u011flant\u0131s\u0131 kurulam\u0131yor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   <code>mod_ssl<\/code>&#8216;nin etkin oldu\u011fundan emin olun.<br \/>\n        *   Sertifika dosyas\u0131 (<code>SSLCertificateFile<\/code>), anahtar dosyas\u0131 (<code>SSLCertificateKeyFile<\/code>) ve varsa zincir dosyas\u0131 (<code>SSLCertificateChainFile<\/code>) yollar\u0131n\u0131n do\u011fru oldu\u011fundan ve dosyalara Apache kullan\u0131c\u0131s\u0131n\u0131n okuma izni oldu\u011fundan emin olun.<br \/>\n        *   Sertifikan\u0131n ge\u00e7erlilik s\u00fcresini kontrol edin.<br \/>\n        *   <code>sudo apache2ctl configtest<\/code> ile yap\u0131land\u0131rmada s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<p>*   <strong><code>ProxyRequests On<\/code> Hatas\u0131<\/strong>:<br \/>\n    *   <strong>Sorun<\/strong>: Apache, a\u00e7\u0131k bir vekil sunucu gibi davran\u0131yor ve istenmeyen d\u0131\u015f kaynaklara eri\u015fime izin veriyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>: <code>ProxyRequests Off<\/code> y\u00f6nergesinin sanal ana bilgisayar yap\u0131land\u0131rman\u0131zda mevcut ve do\u011fru oldu\u011fundan kesinlikle emin olun. Bu, ciddi bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131n\u0131 \u00f6nler.<\/p>\n<p>*   <strong>Performans D\u00fc\u015f\u00fc\u015f\u00fc<\/strong>:<br \/>\n    *   <strong>Sorun<\/strong>: Ters vekil sunucu \u00fczerinden eri\u015fim, do\u011frudan eri\u015fime g\u00f6re daha yava\u015f.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   Apache&#8217;nin hata g\u00fcnl\u00fcklerini kontrol edin, herhangi bir hatan\u0131n performans\u0131 etkileyip etkilemedi\u011fini g\u00f6r\u00fcn.<br \/>\n        *   <code>LogLevel<\/code>&#8216;\u0131 <code>debug<\/code> seviyesine \u00e7ekerek daha ayr\u0131nt\u0131l\u0131 bilgi toplay\u0131n.<br \/>\n        *   A\u011f gecikmesini kontrol edin (ters vekil ile arka u\u00e7 aras\u0131nda).<br \/>\n        *   Arka u\u00e7 sunucusunun performans\u0131n\u0131 izleyin.<br \/>\n        *   Apache&#8217;nin MPM ayarlar\u0131n\u0131 ve <code>KeepAlive<\/code> gibi performans direktiflerini g\u00f6zden ge\u00e7irin.<br \/>\n        *   <code>mod_cache<\/code> gibi \u00f6nbellekleme \u00e7\u00f6z\u00fcmlerini de\u011ferlendirin.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Apache HTTP Sunucusu, mod_proxy mod\u00fcl\u00fc ile birle\u015fti\u011finde, Ubuntu 16.04 \u00fczerinde g\u00fc\u00e7l\u00fc, esnek ve g\u00fcvenilir bir ters vekil sunucu \u00e7\u00f6z\u00fcm\u00fc sunar. Bu makalede, Apache&#8217;yi nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, mod_proxy ve ilgili alt mod\u00fcllerini nas\u0131l etkinle\u015ftirece\u011finizi, temel ve yol tabanl\u0131 vekil yap\u0131land\u0131rmalar\u0131n\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131, SSL\/TLS sonland\u0131rmay\u0131 nas\u0131l uygulayaca\u011f\u0131n\u0131z\u0131 ve y\u00fck dengelemeyi nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ayr\u0131nt\u0131l\u0131 olarak inceledik. Ayr\u0131ca, istek ba\u015fl\u0131klar\u0131n\u0131n y\u00f6netimi, g\u00fcnl\u00fck kayd\u0131, g\u00fcvenlik ve performans ipu\u00e7lar\u0131 gibi \u00f6nemli yap\u0131land\u0131rma direktiflerine ve yayg\u0131n sorun giderme y\u00f6ntemlerine de de\u011findik.<\/p>\n<p>Bir ters vekil sunucunun do\u011fru yap\u0131land\u0131r\u0131lmas\u0131, web uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini art\u0131rmakla kalmaz, ayn\u0131 zamanda \u00f6l\u00e7eklenebilirlik, performans ve bak\u0131m kolayl\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan da \u00f6nemli faydalar sa\u011flar. Ubuntu 16.04 gibi sa\u011flam bir temel \u00fczerinde Apache&#8217;nin bu yeteneklerinden yararlanmak, mevcut altyap\u0131lar\u0131n\u0131z i\u00e7in kritik bir de\u011fer yaratabilir. Bu rehberdeki bilgileri kullanarak, kendi ortam\u0131n\u0131zda g\u00fc\u00e7l\u00fc ve g\u00fcvenli bir ters vekil sunucu kurulumu ger\u00e7ekle\u015ftirebilirsiniz. Unutmay\u0131n, her zaman g\u00fcvenlik en iyi uygulama y\u00f6nergelerine uymak ve sisteminizi g\u00fcncel tutmak \u00f6nemlidir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Apache&#8217;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131 mimarilerinde, bir","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-38309","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Apache&#039;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache&#039;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma\" \/>\n<meta property=\"og:description\" content=\"Apache&#039;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131 mimarilerinde, bir\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-28T10:40:52+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Apache&#8217;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma\",\"datePublished\":\"2026-01-28T10:40:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/\"},\"wordCount\":2663,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/\",\"name\":\"Apache'yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-28T10:40:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache&#8217;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apache'yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/","og_locale":"tr_TR","og_type":"article","og_title":"Apache'yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma","og_description":"Apache'yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k web uygulamalar\u0131 mimarilerinde, bir","og_url":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-28T10:40:52+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Apache&#8217;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma","datePublished":"2026-01-28T10:40:52+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/"},"wordCount":2663,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/","url":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/","name":"Apache'yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-28T10:40:52+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/apacheyi-ubuntu-16-04-uzerinde-mod_proxy-ile-ters-vekil-sunucu-olarak-kullanma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apache&#8217;yi Ubuntu 16.04 \u00dczerinde mod_proxy ile Ters Vekil Sunucu Olarak Kullanma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38309"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38309\/revisions"}],"predecessor-version":[{"id":38310,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38309\/revisions\/38310"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}