• 14-10-2021, 01:38:14
    #1
    Bu konuyla ilgili çok sayıda yazı okudum ve birkaç çözüm denedim ama çalışan bir çözüm yolu bulamadım.

    Plesk Panelli bir sunucumun önüne bir Nginx Ters proxy kurdum. PHP uygulamamda
    <?php echo $_SERVER['REMOTE_ADDR']; ?>
    fonsiyonunu kullandığımda, kullanıcının yerine Nginx sunucusunun IP'sini alır. Nginx Ters Proxy Sunucumda nasıl bir düzenleme yapmalıyım ?


    Nginx Ters Proxy Sunucum;
    upstream backend  {
        server 124.60.104.141;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
  • 14-10-2021, 02:10:07
    #2
    Merhaba Pm ilettim.
  • 14-10-2021, 02:18:16
    #3
    function getUserIP() {
        $ipaddress = '';
        if (isset($_SERVER['HTTP_CLIENT_IP']))
            $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
        else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_X_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
        else if(isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
            $ipaddress = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
        else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_FORWARDED'];
        else if(isset($_SERVER['REMOTE_ADDR']))
            $ipaddress = $_SERVER['REMOTE_ADDR'];
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }
    
    echo getUserIP();
  • 14-10-2021, 09:22:17
    #4
    F.Gungor adlı üyeden alıntı: mesajı görüntüle
    function getUserIP() {
        $ipaddress = '';
        if (isset($_SERVER['HTTP_CLIENT_IP']))
            $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
        else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_X_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
        else if(isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
            $ipaddress = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
        else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_FORWARDED'];
        else if(isset($_SERVER['REMOTE_ADDR']))
            $ipaddress = $_SERVER['REMOTE_ADDR'];
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }
    
    echo getUserIP();
    Mevcut kullandığım IP fonksiyonu Kullanıcının IP sini doğru olarak alıyor. Fakat Pleks panel günlüklerinde kullanıcıların IP adresi gözükmüyor. Onun yerine Ngix. Server IP gözüküyor.
  • 14-10-2021, 09:32:36
    #5
    SecurityWorker adlı üyeden alıntı: mesajı görüntüle
    Bu konuyla ilgili çok sayıda yazı okudum ve birkaç çözüm denedim ama çalışan bir çözüm yolu bulamadım.

    Plesk Panelli bir sunucumun önüne bir Nginx Ters proxy kurdum. PHP uygulamamda
    <?php echo $_SERVER['REMOTE_ADDR']; ?>
    fonsiyonunu kullandığımda, kullanıcının yerine Nginx sunucusunun IP'sini alır. Nginx Ters Proxy Sunucumda nasıl bir düzenleme yapmalıyım ?


    Nginx Ters Proxy Sunucum;
    upstream backend  {
        server 124.60.104.141;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    Merhaba SecurityWorker,

    https://support.plesk.com/hc/en-us/a...-forward-proxy


    İyi çalışmalar.
  • 15-10-2021, 13:40:59
    #6
    FTP Üzerinden, root olarak Sunucu giriş yapın.
    /etc/nginx dizinine girin.



    nginx.conf metin belgesinde açın ve görseldeki gibi Nginx Proxy IP adresini yazın ve kaydedin. (Resimdeki gibi birden çok fazla IP eklenebilir.)

        set_real_ip_from 173.245.48.11;
        real_ip_header CF-Connecting-IP;
        real_ip_recursive on;


    SHH üzerinden veya Plesk panel kullanıcıları aşağıdaki resimden nginx sunucusunu yeniden başlatabilir.



    Sitenize aşağıdaki komutu verdiğiniz sorunun düzeldiğini göreceksiniz.
    <?php
    phpinfo();
  • 15-10-2021, 13:42:02
    #7
    F.Gungor adlı üyeden alıntı: mesajı görüntüle
    function getUserIP() {
        $ipaddress = '';
        if (isset($_SERVER['HTTP_CLIENT_IP']))
            $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
        else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_X_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
        else if(isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
            $ipaddress = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
        else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_FORWARDED'];
        else if(isset($_SERVER['REMOTE_ADDR']))
            $ipaddress = $_SERVER['REMOTE_ADDR'];
        else
            $ipaddress = 'UNKNOWN';
        return $ipaddress;
    }
    
    echo getUserIP();
    AprilSoft adlı üyeden alıntı: mesajı görüntüle
    Merhaba Pm ilettim.
    CliaWeb adlı üyeden alıntı: mesajı görüntüle
    Merhaba SecurityWorker,

    https://support.plesk.com/hc/en-us/a...-forward-proxy


    İyi çalışmalar.

    Verdiğiniz bilgiler için teşekkür ederim. Sorun çözüldü.