سؤال

ولدي إنجن إكس بي كما الأمامية خادم الويب الاستماع على المنفذ 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 لافتا الجواب!

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