Proksi terbalik - proksi terbalik hadapan nginx, bagaimanakah apache belakang mendapatkan IP sebenar pelawat?
阿神
阿神 2017-05-16 17:04:55
0
5
577

Nginx anti-generation telah ditulis, dan tiada masalah untuk menyemak pemindahan parameter:

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;
      }

Masalahnya sekarang ialah program php bahagian belakang saya bergantung pada pembolehubah $_SERVER['REMOTE_ADDR'] untuk mendapatkan IP, jadi ia memperoleh IP pelayan generasi terbalik.
Bahagian belakang adalah apache dan ia adalah hos maya, jadi ia tidak mungkin menukar bahagian belakang.
Program PHP bahagian belakang disulitkan dan tidak boleh diubah.
Sekarang saya ingin bertanya: Adakah terdapat sebarang cara untuk menetapkan X-REAL-IP atau HTTP_X_FORWARDED_FOR kepada REMOTE_ADDR tanpa mengubah atur cara? Sebagai contoh, bolehkah ini dicapai dengan menukar php.ini?
Terima kasih, soalan ini telah disiarkan di hostloc melalui: http://www.hostloc.com/thread-138304-...
Saya mengalami masalah yang sama, tolong beri saya nasihat, terima kasih

阿神
阿神

闭关修行中......

membalas semua(5)
给我你的怀抱

Artikel ini bercakap tentang kaedah mendapatkan IP sebenar pelawat apabila membina tapak web dengan nginx+apache front-end dan back-end (kaedah untuk mendapatkan IP ini lebih bijak), tetapi ia juga memerlukan anda mengubah suai program PHP: http://www. ithr.org.cn/blogs/blog1.ph...

Haha, saya jumpa jalan, baca artikel ini "mod_rpaf, biarkan Apache pada backend Nginx dapat IP Internet": http://www.ithr.org.cn/blogs/blog1.ph...

淡淡烟草味

Keperluan ini agak keras Jika ap boleh diubah, gunakan mod_rpaf;

Tidak, cukup mudahkan, cuma buat index.php dan tetapkan nilai $_SERVER['REMOTE_ADDR'], dan kemudian panggil kod php sebenar;

我想大声告诉你

Tetapkan tulis semula pada apache Semua permintaan php ditulis semula ke php tertentu

$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
require(ORIGINAL_REQUESTED_PHP.php);
Atau cuba HAProxy, perisian yang memajukan pada tahap yang lebih rendah Ia tidak melibatkan protokol HTTP, jadi tidak perlu mempertimbangkan isu HEADER ini.

phpcn_u1582

Tetapkan terus proxy_set_header REMOTE_ADDR $remote_addr;Adakah ia tidak boleh?

刘奇

$_SERVER['REMOTE_ADDR'] tidak boleh diubah dari mana permintaan itu datang? Kaedah yang baik untuk menambah cangkerang di atas kod anda yang disulitkan dan menetapkan nilai seperti yang dinyatakan oleh yang sebelumnya

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan