إنجن إكس عكس وكيل للعرف تطبيق Mochiweb
-
06-07-2019 - |
سؤال
ولدي إنجن إكس بي كما الأمامية خادم الويب الاستماع على المنفذ 80. وطلبات معينة، لقد أنشأت إنجن إكس لعكس وكيل لخادم الويب mochiweb أساس أنني قد كتبت، والاستماع على المنفذ 8000. بلدي التكوين إنجن إكس لهذا يبدو مثل هذا:
location /mymochiserver {
proxy_pass http://127.0.0.1:8000;
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;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
والآن، عندما كنت الوصول إلى HTTP: // المضيف المحلي / mymochiserver لا أرى ردا على المتصفح. المتصفح يقول عادل "في انتظار مضيف". mymochiserver يطبع بعض التتبع إلى إطار المحطة الطرفية الذي يتم تشغيله، كلما يتصل مستخدم إلى ذلك، والآن، أنا لا أرى التتبع لكل نافذة المتصفح I فتح لربط هذه URL. ولكن لا أرى أي من الناتج أتوقع أن نرى تتم كتابتها إلى المتصفح. ولكن، عندما كنت الوصول مباشرة إلى URL http://127.0.0.1:8000/ كل شيء يعمل بشكل جيد، و أرى أن الإخراج من mymochiserver على المتصفح. لذلك يعمل عندما دعا مباشرة. ولكن عندما بروكسي العكسية من خلال إنجن إكس، فإنه لا يبدو أن العمل. أي فكرة عما يمكن أن يكون الخطأ؟
تحديث: في طلبي Mochiweb لدي هذه الأسطر من التعليمات البرمجية:
Socket = Req:get(socket),
inet:setopts(Socket, [{active, once}]),
proc_lib:hibernate(?MODULE, feed, [Response, Userid, 1]);
وانها اساسا تطبيق COMET حيث سيكون للمستخدمين بالاتصال mymochiserver وخادم يدفع من البيانات لكافة العملاء المتصلين. إذا كان هناك أية بيانات ليتم إرسالها من الخادم، I السبات هذه العملية. وبعد ذلك عندما استيقظ، I استدعاء الدالة تغذية لإرسال البيانات. وإذا كنت إزالة رمز السبات، كل شيء يعمل بشكل جيد، وأنا أرى الناتج في المستعرض. ولكن إذا كنت لا السبات، فإنه لا يعمل. أي فكرة عما يحدث خطأ؟
المحلول
والثابتة!
والمرجعي: <لأ href = "http://timanovsky.wordpress.com/2009/01/09/toward-a-million-user-long-poll-http-application-nginx-erlang-mochiweb/" يختلط = "noreferrer نوفولو"> http://timanovsky.wordpress.com/2009/01/09/toward-a-million-user-long-poll-http-application-nginx-erlang-mochiweb/
واضطررت لإيقاف التخزين المؤقت وكيل وزيادة proxy_read_timeout في إنجن إكس والعمل على انجاحه. حتى ملف التكوين بلدي يبدو مثل هذا الآن:
location /mymochiapp {
proxy_pass http://127.0.0.1:8000;
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;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 3600;
proxy_buffering off;
}
وشكرا thomas55 لافتا الجواب!