سؤال

نحن نستخدم proxypass لإعادة توجيه جميع طلبات "/ r" إلى JBoss على المنفذ 18080 كما يلي:

ProxyPreserveHost on
ProxyPass /r http://localhost:18080/redirectService/
ProxyPassReverse /r http://localhost:18080/redirectService/

ولكن، يؤدي ذلك إلى تسجيل عنوان IP في سجل الوصول JBOSS ك "127.0.0.1". هل يعرف شخص ما كيف يمكننا الحفاظ على IP الأصلي من حيث جاء الطلب في HTTSSFLEDREQUEST؟ نريد أن يسخر منه من JBoss Servlet طلب في Doget ()

هل كانت مفيدة؟

المحلول

يمكنك الحصول على المضيف الأصلي من X- إعادة توجيه-ل حقل رأس.

نصائح أخرى

إجابة جيسونو بخير. ولكن منذ Apache httpd 2.4.6 هناك بديل: mod_remotip

كل ما يجب أن تفعله هو:

  1. قد تكون يجب تثبيت حزمة mod_remotip
  2. تمكين الوحدة:

    LoadModule remoteip_module modules/mod_remoteip.so
    
  3. أضف ما يلي إلى تكوين Apache httpd الخاص بك. لاحظ أنه يجب عليك إضافة هذا الخط ليس في تكوين الخادم الوكيل. يجب عليك أن أضف هذا إلى تكوين خادم HTTPD الهدف الوكيل (الخادم وراء الوكيل):

    RemoteIPHeader X-Forwarded-For
    

نرى في http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html. لمزيد من المعلومات والمزيد من الخيارات.

هذا لديه تفسير أكثر أناقة وأكثر من حلول واحدة ممكنة. http://kasunh.wordpress.com/2011/10/11/preserving-remote-iphost-while-proxying/

يصف المنشور كيفية استخدام وحدات Apache APACH معروفة واحدة شائعة للحفاظ على المضيف / IP أثناء وجوده في إعداد ينطوي على موافق.

استخدم وحدة MOD_RPAF، وتثبيتها وتمكينها في الخادم الخلفي وإضافة التوجيهات التالية في تكوين الوحدة النمطية. rpfenable على
rpafsethostname على
rpafproxy_ips 127.0.0.1.

(2017 تحرير) الموقع الحالي ل MOD_RPAF: https://github.com/gnif/mod_rpaf.

إذا كان لديك القدرة على القيام بذلك، فسوف أوصي باستخدام إما mod-jk. أو mod-proxy-ajp لتمرير الطلبات من Apache إلى JBOSS. بروتوكول AJP أكثر كفاءة بكثير مقارنة باستخدام طلبات وكيل HTTP وكفائد، سترى JBOSS الطلب على أنه يأتي من العميل الأصلي وليس Apache.

إذا كنت تستخدم وكيل Apache العكسي لتقديم تطبيق يعمل على منفذ LocalHost، يجب عليك إضافة موقع إلى Vhost الخاص بك.

<Location />            
   ProxyPass http://localhost:1339/ retry=0
   ProxyPassReverse http://localhost:1339/
   ProxyPreserveHost On
   ProxyErrorOverride Off
</Location>

للحصول على عنوان IP لديه الخيارات التالية

console.log(">>>", req.ip);// this works fine for me returned a valid ip address 
console.log(">>>", req.headers['x-forwarded-for'] );// returned a valid IP address 
console.log(">>>", req.headers['X-Real-IP'] ); // did not work returned undefined 
console.log(">>>", req.connection.remoteAddress );// returned the loopback IP address 

إما إما استخدام Req.ip أو Req.Headers ['x - forweded-for'

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top