You are currently viewing nginx load işlemin kullanıcı ip adresi alma
nginx loadbalancer ile kullanıcı ip adresi alma

nginx load işlemin kullanıcı ip adresi alma

Merhabalar virüs ile evde kalış süresi uzaması ile beraber yazılar biraz artacak gibi :). Bugün sizlere nginx load işlemin kullanıcı ip adresi alma nasıl yapılmakta kısaca onu aktarmaya çalışacağım.

Konuya başlamadan önce!

Nginx ile alakalı konuya girmeden önce nginx nedir? load balancer nedir gibi konuları merak ediyorsunuz linkleri inceleyebilirsiniz.

Kullanıcı ip adresi ne işe yarayacak gibi soru soran var ise 🙂 arkadaşlar sizden gelen ziyaretçilerin ip adreslerini ve işlemlerini saklamanızı isterler veya ip bazlı filtreleme işlemleri beklenebilir bu durumda kullanıcı ip adresini ihtiyacınız bulunmaktadır.

Dikkat : aşağıda *.conf dosyalarında değişiklikler yapılacaktır. Bu işlemleri yapmadan önce muhakkak yedeklemesini yapınız.

cp /etc/nginx/conf.d/*.conf /etc/nginx/conf.d/*.conf.backup

Başlayalım

ilk olarak load işlemini yapacağımız makinamıza gelelim. Bu kısımda vhosts olarak oluşturduğumuz *.conf dosyamızı açalım ve aşağıdaki şekilde bir düzenleme yapalım.

location / {
                 try_files $uri $uri/ /index.php?$query_string;
                proxy_set_header Host            $host;
            	proxy_set_header X-Real-IP       $remote_addr;
            	proxy_set_header X-Forwarded-For $remote_addr;
		#try_files $uri $uri/ /index.html;

        }

Yukarıda yaptığım işlem ana makinama yönlendirme esnasında header bilgisine Real-IP bilgisini eklemek oldu. Bu kısımda dilediğiniz gibi çoğaltma yapabilirsiniz fakat benim ihtiyacım ip adresiydi.

Gelelim apache makinamıza

Bu kısımda aslında aynı işlemleri uyguluyorum.

location / {
                 try_files $uri $uri/ /index.php?$query_string;
                proxy_set_header Host            $host;
            	proxy_set_header X-Real-IP       $remote_addr;
            	proxy_set_header X-Forwarded-For $remote_addr;
		#try_files $uri $uri/ /index.html;

        }

Bu kısma kadar tüm işlemleri aynı şekilde yapılandırdıysanız artık ip kısmını almak için kullanacağınız php komutunu yazabilirim.

(isset($_SERVER["HTTP_X_REAL_IP"]) && config('app.env') !== "local" ? $_SERVER["HTTP_X_REAL_IP"] : $_SERVER["REMOTE_ADDR"]);

Yukarıda header’da isset fonksiyonu ile HTTP_X_REAL_IP parametresinin olup olmadığını kontrol ediyoruz, parametre geliyor ise parametreyi kullanıyoruz parametre bulunmadıysa REMOTE_ADDR ile header’dan gelen ip bilgisini çıktı olarak alıyoruz.

Bu kısma kadar basit bir şekilde anlatıp yapmak istedim, anlamadığınız takıldığınız yerler olması halinde yorum olarak sorabilirsiniz, mümkün olduğunca cevaplayıp yardımcı olmaya çalışacağım.

kurtitasarim

‘’İrade ve yargıları aşan güçlü bir coşku, ihtiras" diye tanımlanır tutku. Yaptığın işi sevmek yerine, sevdiğin işi yap mottosu da benim tutku tanımım. Kod yazmak bir yana, o kodun sistem üzerindeki hareketlerini, farklı cihazlar ile etkileşimini, o noktalarda oluşan sıkıntıları görmek, çözmek ve bunu yaparken diğer kişilere yol göstermek işimin en zevkli yanı. Bu sebeple önce tutku ile yapılan iş, sonra maddiyat..

Bir cevap yazın