Proxy inverse - proxy inverse frontal nginx, comment Apache back-end obtient-il la véritable adresse IP du visiteur ?
阿神
阿神 2017-05-16 17:04:55
0
5
609

L'anti-génération Nginx a été écrite, et il n'y a aucun problème à vérifier le transfert des paramètres :

server
      {
              listen  80;
              server_name  www.mjj.com;
              location / {
                       proxy_pass  http://www.youjj.com;
                       proxy_redirect off;
                       proxy_set_header   Host             $host;
                       proxy_set_header   X-Real-IP        $remote_addr;
                       proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
              }
              access_log  off;
      }

Le problème maintenant est que mon programme php back-end s'appuie sur la variable $_SERVER['REMOTE_ADDR'] pour obtenir l'IP, il obtient donc l'IP du serveur de génération inverse.
Le backend est Apache et c'est un hôte virtuel, il est donc peu probable qu'il change de backend.
Le programme PHP back-end est crypté et ne peut pas être modifié.
Maintenant, je voudrais demander : existe-t-il un moyen d'attribuer X-REAL-IP ou HTTP_X_FORWARDED_FOR à REMOTE_ADDR sans modifier le programme ? Par exemple, cela peut-il être réalisé en modifiant le php.ini ?
Merci, cette question a été postée sur hostloc via : http://www.hostloc.com/thread-138304-...
J'ai rencontré le même problème, merci de me donner quelques conseils, merci

阿神
阿神

闭关修行中......

répondre à tous(5)
给我你的怀抱

Cet article parle de la méthode d'obtention de la véritable IP du visiteur lors de la création d'un site Web avec nginx+apache front-end et back-end (cette méthode d'obtention de l'IP est plus réfléchie), mais elle nécessite également de modifier le programme PHP : http://www.ithr.org.cn/blogs/blog1.ph...

Haha, j'ai trouvé un moyen, lisez cet article "mod_rpaf, laissez Apache sur le backend Nginx obtenir l'adresse IP Internet" : http://www.ithr.org.cn/blogs/blog1.ph...

淡淡烟草味

Cette exigence est un peu stricte. Si l'application peut être modifiée, utilisez mod_rpaf ;

Non, faites simple, créez simplement un index.php et attribuez la valeur $_SERVER['REMOTE_ADDR'], puis appelez le vrai code php ;

我想大声告诉你

Configurez la réécriture sur Apache. Toutes les requêtes php sont réécrites dans un certain php. Ce que fait ce PHP

.
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
require(ORIGINAL_REQUESTED_PHP.php);

Ou essayez HAProxy, un logiciel qui transmet à un niveau inférieur. Il n'implique pas le protocole HTTP, il n'est donc pas nécessaire de prendre en compte ces problèmes d'HEADER.

phpcn_u1582

Régler directement proxy_set_header REMOTE_ADDR $remote_addr;N'est-ce pas possible ?

刘奇

$_SERVER['REMOTE_ADDR'] ne peut pas être modifié. D'où vient la demande ? C'est ici que se trouve l'adresse 
. C'est une bonne méthode pour ajouter un shell au-dessus de votre code crypté et attribuer une valeur comme mentionné par les précédents

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal