কীভাবে আমি এনগিনেক্সে ফাস্টসিজিআই সহ একটি গেটওয়ে সময়সীমা রোধ করব


203

আমি জ্যাঙ্গো, ফাস্টসিজিআই এবং এনগিনেক্স চালাচ্ছি। আমি প্রকারের একটি এপিআই তৈরি করছি যে যেখানে কেউ এক্সএমএল এর মাধ্যমে কিছু ডেটা প্রেরণ করতে পারে যা আমি প্রসেস করব এবং তারপরে প্রেরিত প্রতিটি নোডের জন্য কিছু স্থিতি কোডগুলি ফিরিয়ে আনব।

সমস্যাটি হ'ল Xgin প্রসেস করতে যদি আমি খুব বেশি সময় নেয় তবে এনগিনেক্স একটি 504 গেটওয়ে টাইম-আউট ফেলে দেবে - আমি 60 সেকেন্ডের চেয়ে বেশি মনে করি।

সুতরাং আমি এনগিনেক্স সেট করতে চাই যাতে অবস্থান / এপিআইয়ের সাথে মেলে এমন কোনও অনুরোধ যদি 120 সেকেন্ডের জন্য শেষ না হয়। কি সেটিং এটি সম্পাদন করবে।

আমার এখন পর্যন্ত যা আছে তা হ'ল:

    # Handles all api calls
    location ^~ /api/ {
        proxy_read_timeout 120;
        proxy_connect_timeout 120;
        fastcgi_pass 127.0.0.1:8080;
    }

সম্পাদনা করুন: আমার যা আছে তা কাজ করছে না :)


7
আপনি টাইমআউট মানগুলি "120" এর পরিবর্তে "2 মি" তে সেট করতে পারেন।
কেনেক আলটি

1
এটি খারাপ লাগছে যে ডেটা প্রবাহিত হচ্ছে না ... অর্থাত্ কোনও সার্ভারের জন্য 60০ সেকেন্ড বা তারও বেশি সময়ে প্রতিক্রিয়া শুরু করা অগ্রহণযোগ্য বলে মনে হয়।
অ্যাডাম জেন্ট

উত্তর:


245

প্রক্সি টাইমআউটগুলি ভাল, প্রক্সিগুলির জন্য, ফাস্টসিজিআইয়ের জন্য নয় ...

নির্দেশনা যে FastCGI সময় সমাপ্ত প্রভাবিত হয় client_header_timeout, client_body_timeoutএবং send_timeout

সম্পাদনা : এনগিনেক্স উইকিতে যা পাওয়া গেছে তা বিবেচনা করে the এনগিনেক্স সেন্ড টাইমআউট নির্দেশটি প্রতিক্রিয়ার সাধারণ সময়সীমা নির্ধারণের জন্য দায়ী (যা কিছুটা বিভ্রান্তিকর ছিল)। ফাস্টসিজিআইয়েরfastcgi_read_timeout জন্য এমনটি রয়েছে যা ফাস্টসিজি প্রক্রিয়াটির প্রতিক্রিয়ার সময়সীমাকে প্রভাবিত করে ।

আছে HTH।


8
যে কেউউউসগি ব্যবহার করে এবং এই ত্রুটিটি রয়েছে, uwsgi_read_Toutout 600; আমার সমস্যা সমাধান।
হোমার 6

2
আমার প্রশ্নটি এখানে থাকবে (সার্ভার অ্যাডমিন অপেশাদার হিসাবে) আমি এটি পরিবর্তন করতে কোথায় যাব? httpd.conf ফাইল?
জেফকি 20

2
যদি এটি সহায়তা করে তবে আমার মিডিয়া মন্দিরের ডিভি সিস্টেমে / etc / nginx / ছিল।
জেফকি 21

আবদো ডিবাগ করার জন্য একটি দুর্দান্ত উপায় দেয়। আপনার যদি এখনও সমস্যা হয় তবে আপনাকে nginx.conf (ক্লায়েন্ট_ম্যাক্স_বডি_সাইজ ** এম;)
স্যাম

2
সময়সীমা ইমো বৃদ্ধি কোনও উপযুক্ত সমাধান নয়।
জাজজ্যাটিক

24

যারা ইউনিকর্ন এবং রেলের সাথে এনজিনেক্স ব্যবহার করেন, সম্ভবত আপনার unicorn.rbফাইলটিতে টাইমআউট হয়

unicorn.rb এ একটি বিশাল সময়সীমা রেখে

timeout 500

আপনি যদি এখনও সমস্যার মুখোমুখি হন তবে আপনার আপসিমেন্টে nginx এ ব্যর্থ_কালীন আউট = 0 রাখার চেষ্টা করুন এবং দেখুন এটি আপনার সমস্যার সমাধান করে কিনা। এটি ডিবাগিং উদ্দেশ্যে এবং কোনও উত্পাদন পরিবেশে বিপজ্জনক হতে পারে।

upstream foo_server {
        server 127.0.0.1:3000 fail_timeout=0;
}

3
আমি মনে করি লোকেরা এটিকে কমিয়ে দিয়েছে কারণ এটি জ্যাঙ্গো সম্পর্কে, তবে আপনার উত্তরটি আমার গেটওয়ে টাইম আউট ইস্যুটি
রেজিল

4

ইন httpnginx ধারা (/etc/nginx/nginx.conf) যোগ বা পরিবর্তন:

keepalive_timeout 300s

ইন servernginx ধারা (/etc/nginx/sites-available/your-config-file.com) এই লাইন যোগ করুন:

client_max_body_size 50M;
fastcgi_buffers 8 1600k;
fastcgi_buffer_size 3200k;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;

ইন phpকেস 127.0.0.1:9000 (/etc/php/7.X/fpm/pool.d/www.conf) ফাইল পরিবর্তন করুন:

request_terminate_timeout = 300

আমি আপনাকে সাহায্য আশা করি।


আমি সময়টি 10000 সেকেন্ডে বদলে দিলে কি "খারাপ" কিছু ঘটবে?
utdev

খারাপ কিছু হবে না, তবে আপনার পরিষেবা আরও সময় অপেক্ষা করুন। আপনি এটির মানটি নিজের ইচ্ছামত পরিবর্তন করতে পারেন।
জোসে কার্লোস রামোস কারমনেটস

1

আপনি যদি ইউনিকর্ন ব্যবহার করেন।

topআপনার সার্ভার তাকান । ইউনিকর্ন সম্ভবত এখনই 100% সিপিইউ ব্যবহার করছে। এই সমস্যার বেশ কয়েকটি কারণ রয়েছে।

  • আপনার আপনার HTTP অনুরোধগুলি পরীক্ষা করা উচিত, এর কয়েকটি খুব শক্ত হতে পারে।

  • ইউনিকর্নের সংস্করণ পরীক্ষা করুন। হতে পারে আপনি সম্প্রতি এটি আপডেট করেছেন এবং কিছু নষ্ট হয়ে গেছে।


0

সার্ভার প্রক্সি সেট এর মত

location / {

                proxy_pass http://ip:80;                

                proxy_connect_timeout   90;
                proxy_send_timeout      90;
                proxy_read_timeout      90;

            }

সার্ভারে পিএইচপি সেট

server {
        client_body_timeout 120;
        location = /index.php {

                #include fastcgi.conf; //example
                #fastcgi_pass unix:/run/php/php7.3-fpm.sock;//example veriosn

                fastcgi_read_timeout 120s;
       }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.