Rumah  >  Soal Jawab  >  teks badan

Proksi terbalik - proksi terbalik hadapan nginx, bagaimanakah apache belakang mendapatkan IP sebenar pelawat?

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

阿神阿神2713 hari yang lalu547

membalas semua(5)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-16 17:06:55

    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...

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:06:55

    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;

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 17:06:55

    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.

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 17:06:55

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

    balas
    0
  • 怪我咯

    怪我咯2017-05-16 17:06:55

    $_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

    balas
    0
  • Batalbalas