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
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
Atau cuba HAProxy, perisian yang memajukan pada tahap yang lebih rendah Ia tidak melibatkan protokol HTTP, jadi tidak perlu mempertimbangkan isu HEADER ini.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