Nginx Reverse Proxy Konfigürasyonu

Nginx Reverse Proxy Server olarak konumlandırılmak istenebilir. Nginx aynı zamanda çok performanslı çalışan bir proxy server olarak hizmet verebilmektedir. Proxy Server?

Proxy Server

Nginx Reverse Proxy

Reverse proxy sunucuları, dışarıdan yada içeriden gelen istenci isteklerini yakalayan ve bunları uygun durumda olan backend server üzerine ileten bir ara iletişim sunucusudur diyebiliriz. Reverse Proxy sunucusu sayesinde web trafiği dağıtılarak ilgili trafik için hız kazandırılır, güvenlik hizmetlerinde hız sağlanır vb. bir çok konu hakkında fayda elde edilebilir.

Nginx kurulumu için buraya tıklayabilirsiniz. Ardından Nginx için Proxy Server rolü nasıl sağlanır ve konfigürasyon nasıl yapılır ona bakalım.

Nginx tarafında Reverse Proxy rolü için kullanılacak argüman “Proxy_pass” argümanıdır. “Proxy_pass yönergesi, isteği yönerge ile birlikte belirtilen Proxy Sunucularına iletir. Örnek Olarak;

Nginx.conf dosyasının konfigürasyonu için burayı tıklayabilirsiniz.

Nginx.conf dosyası içerisinde;

location /{

proxy_pass http://192.168.17.25;

}

Satırı gibi kullanılabilir. Buradaki ip adresi gelen isteklerin yönlendirileceği proxy server ip adresidir. Farklı bir örnek daha;

location /admin {

proxy_pass http://192.168.17.25;

}

location /login {

proxy_pass http://192.168.17.26;

}

Bu örnekte, mesela www.inancdelibalta.com.tr/admin sayfasına gelen istekleri proxy sunucusu 192.168.17.25 ip adresine, www.inacndelibalta.com.tr/login sayfasına gelen istekleri ise 192.168.17.26 ip adresli sunucu yönlendiriyor.

Bir tane de demo yapalım ve hemen terminalimizi açalım;

  1. Container Oluşturma
Docker container run d name backend p 8080:80 nginx

Komutu ile backend tarafında kullanmak için bir container oluşturalım.

Docker container run d name proxy -p 80:80 nginx

Komutu ile proxy olarak kullanacağımız bir container oluşturalım.

  1. Nginx Konfigürasyonu
  • Backend Sunucu
docker container exec it backend bash

Komutu ile bash ortamına inelim

Ben container olarak debian kullandığım için web dizini farklı bir dizinde bulunmakta şimdi

cd /usr/share/nginx/html/

Nano index.html

Düzenleyeceğim. Burada size ait bir web siteniz var ise kaynak dosyaları bu dizine atabilirsiniz.

  • Proxy Sunucu

docker container exec it proxy bash

Komutu ile bash ortamına inelim

cd /etc/nginx/conf.d/

Yukarıdaki şekilde conf.d dizinine gidelim

nano testing.conf

İle bir conf dosyası oluşturalım ve içine aşağıdaki şekilde location yönergesi ile gerekli proxy_pass satırını yazalım.

server {

listen 80;

server_name www.inanc1.info;

location / {

proxy_pass http://172.17.0.2;


}

}

Buradaki ip adresi backend sunucusuna ait olan ip adresidir. Backend container ına ait olan ip adresini bulmak için

Docker container inspect backend

Komutunu kullanabilirsiniz.

Şimdi burada, location / yönergesi ile proxy sunucusuna gelen tüm istekleri backend sunucusuna iletiyorum. Eğer farklı sayfaları farklı sunuculara iletmek isteseydim

location /admin

Yada

location /haberler

Vb. şekilde ayırıp ilgili sunucuların ip adreslerini yazıp yönlendirebilirdim. Neyse devam …

Browserı açıp www.inanc1.info yazdığımda

Yukarıdaki şekilde proxy sunucusu 80 portuna gelen isteği backend sunucusuna ilettiğini görüyorum. Hepsi bu kadar. Sonraki yazımızda da load balancing tarafına bakalım 🙂

Author: idelibalta

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir