এডাব্লুএস ইলাস্টিক বিয়ানস্টালকে এনগিনেক্সের কনফিডে ক্লায়েন্ট_ম্যাক্স_বডি_ সাইজ বাড়ানো


121

এডাব্লুএস ইলাস্টিক বিয়ানস্টালকে চলমান আমাদের এপিআইতে 10MB এর চেয়ে বড় ফাইল পোস্ট করার সময় আমি "413 অনুরোধ সত্তা অত্যধিক বৃহত্তর" ত্রুটিগুলিতে চলেছি ।

আমি বেশ খানিকটা গবেষণা করেছি এবং বিশ্বাস করি যে এনগিনেক্সের জন্য আমার ক্লায়েন্ট_ম্যাক্স_বডি_ সাইজ করা দরকার , তবে ইলাস্টিক বিয়ানস্টালক ব্যবহার করে কীভাবে এটি করা যায় সে সম্পর্কে আমার কোনও ডকুমেন্টেশন খুঁজে পাওয়া যায় না। আমার অনুমান যে এটি একটি ইবেটেনশন ফাইল ব্যবহার করে সংশোধন করা দরকার।

আমি কীভাবে এই সীমাটি বাড়িয়ে দিতে পারি সে সম্পর্কে কারও চিন্তাভাবনা আছে? 10 এমবি বেশ দুর্বল, ম্যানুয়ালি এটি আপ করার একটি উপায় থাকতে হবে।


1
ডিফল্ট হ'ল আজকাল 1MB ...
রোজারডপ্যাক

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

উত্তর:


223

আপনি এটির জন্য দুটি পদ্ধতি গ্রহণ করতে পারেন। দুর্ভাগ্যক্রমে কিছু কিছু EB অ্যাপ্লিকেশন ধরণের জন্য কাজ করে এবং কিছু অন্যদের জন্য কাজ করে।

AWS ডকুমেন্টেশনে সমর্থিত / প্রস্তাবিত recommended

কিছু অ্যাপ্লিকেশন ধরণের জন্য যেমন জাভা এসই , গো , নোড.জেএস এবং সম্ভবত রুবি (এটি রুবির জন্য নথিভুক্ত নয়, তবে অন্যান্য সমস্ত এনগিনেক্স প্ল্যাটফর্ম এটিকে সমর্থন করে বলে মনে হচ্ছে), ইলাস্টিকিয়ানস্টালক কীভাবে এনগিনেক্স কনফিগার করবেন সে সম্পর্কে একটি অন্তর্নির্মিত ধারণা রয়েছে।

ইলাস্টিক বিয়ানস্টালকের ডিফল্ট এনগিনেক্স কনফিগারেশন প্রসারিত করতে, আপনার অ্যাপ্লিকেশন সোর্স বান্ডেলের নামযুক্ত ফোল্ডারে .conf কনফিগারেশন ফাইলগুলি যুক্ত করুন.ebextensions/nginx/conf.d/ । ইলাস্টিক বিয়ানস্টালকের এনগিনেক্স কনফিগারেশনে স্বয়ংক্রিয়ভাবে এই ফোল্ডারে .conf ফাইল অন্তর্ভুক্ত রয়েছে।

~/workspace/my-app/
|-- .ebextensions
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- web.jar

বিপরীত প্রক্সি কনফিগার করা - জাভা এসই

সর্বাধিক আপলোডের আকারটি বিশেষত বাড়ানোর জন্য, তারপরে .ebextensions/nginx/conf.d/proxy.confআপনি যে আকারে পছন্দ করতে চান তার আকারের সর্বোচ্চ আকার নির্ধারণ করতে একটি ফাইল তৈরি করুন :

client_max_body_size 50M;

সরাসরি এনগিনেক্স কনফিগারেশন ফাইল তৈরি করুন

বিস্ময়কর এডাব্লুএস সহায়তা দলের সাথে অনেক গবেষণা এবং ঘন্টা খানেক কাজ করার পরে, আমি এনজিএনএক্স কনফিগারকে .ebextensionsপরিপূরক করার জন্য একটি কনফিগার ফাইল তৈরি করেছি । এই পরিবর্তনটি বৃহত্তর পোস্ট দেহের আকারের জন্য অনুমোদিত।

এর ভিতর .ebextensionsডিরেক্টরি, আমি নামক কোনো ফাইল নির্মিত 01_files.configনিম্নলিখিত বিষয়বস্তু সঙ্গে:

files:
    "/etc/nginx/conf.d/proxy.conf" :
        mode: "000755"
        owner: root
        group: root
        content: |
           client_max_body_size 20M;

এটি /etc/nginx/conf.d ডিরেক্টরিটির ভিতরে একটি প্রক্সি.কনফ ফাইল তৈরি করে। প্রক্সি.কনফ ফাইলটিতে কেবল একটি লাইন থাকে client_max_body_size 20M;যা কৌশলটি করে।

মনে রাখবেন যে কয়েকটি প্ল্যাটফর্মের জন্য, এই ফাইলটি মোতায়েনের সময় তৈরি করা হবে তবে পরে স্থাপনার পর্যায়ে সরানো হবে।

আপনি অন্যান্য নির্দেশাবলী নির্দিষ্ট করতে পারেন যা এনজিনেক্স ডকুমেন্টেশনে বর্ণিত।

http://wiki.nginx.org/Configuration

আশা করি এটি অন্যকে সহায়তা করবে!


2
ফাইল ফরম্যাট এ নথিভুক্ত করা docs.aws.amazon.com/elasticbeanstalk/latest/dg/... । অগ্রগতি লগ ইন /var/log/cfn-init.log। লগগুলিতে আপনার মতো কিছু দেখা উচিত 2014-xx-xx xx:xx:xx,xxx [DEBUG] Writing content to /etc/nginx/conf.d/proxy.conf। আমি নিশ্চিত নই, তবে মনে হচ্ছিল সার্ভারটি পুনরায় চালু করার প্রয়োজন হতে পারে।
এইচ-কিপ্পো

2
আমার সাথে পুমা নিয়ে কাজ করছি। @ উইলের মতো পরিষেবাটি পুনঃসূচনা করতে হয়েছিল যদিও (সুডো সার্ভিস এনজিনেক্স রিলোড) বলেছিল।
ডেনিস

1
আশা করি এটি অন্য কাউকে সাহায্য করতে পারে যেমন এটি আমাকে কিছুটা সময় নিয়েছিল ... ইন্ডেন্টেশন গুরুত্বপূর্ণ - এটি ওয়াইএএমএল অনুমানের
en

1
নিশ্চিত হয়ে কাজ করা, নিশ্চিত .ebextensionsহয়ে নিন .ebignoreএবং .gitignoregin আমাকে এনজিএনএক্স পরিষেবা পুনরায় চালু করার দরকার নেই,eb deploy এবং এটি কাজ করেছে 🎉
গ্যাবলেউক্স

4
নোড জেএসের জন্য, দ্বিতীয় পদ্ধতি (ফাইল:) আমার পক্ষে কাজ করেছিল। প্রথমটির কাজ হয়নি। এমনকি এডাব্লুএস সমর্থন নোড জেএসের জন্য দ্বিতীয় পদ্ধতিটি ব্যবহার করার পরামর্শ দেয় জেএস ডকস.ওএস.ম্যাজন
কপিল

33
files:
    "/etc/nginx/conf.d/proxy.conf" :
        mode: "000755"
        owner: root
        group: root
        content: |
           client_max_body_size 20M;

সুরক্ষার স্বার্থে উপরের উত্তরটি সংশোধন করা হয়েছে (এবং সিনট্যাক্সটি ভুল ছিল, দেখুন দুটি 'মালিক: ওয়াইএএমএল-এ প্রবেশ করা হয়েছে), বন্ধুরা, দয়া করে অন্য কোনও বিষয়ে 777 অনুমতি সেট করবেন না। আপনি হ্যাক হওয়া উপভোগ না করে এবং Nginx কনফিগারেশন ফাইলগুলির মালিককে রুটে সেট করে।

এছাড়াও স্থাপনার পরে এই পরিবর্তনটি nginx পিকআপ করতে নীচের উত্তরটি দেখুন ।


22

সম্পাদনা: আপনি নিক পার্সসন দ্বারা গৃহীত উত্তরের নির্দেশাবলী সহ একটি বিল্ড স্থাপনের পরে, পরিবর্তনগুলি গ্রহণ করতে আপনাকে nginx সার্ভারটি পুনরায় চালু করতে হতে পারে।

এটি করার জন্য, উদাহরণটিতে ssh করুন এবং করুন

sudo service nginx reload

পুনরায় লোডিং সম্পর্কে আরও জানতে, দেখুন http://nginx.org/en/docs/beginners_guide.html

ইলাস্টিক বিয়ানস্টালকের পূর্ববর্তী সংস্করণে, আমি এটি সম্পাদন করতে একটি ধারক_কমন্ড যুক্ত করতে সক্ষম হয়েছি তবে এখন আমি @ সিডিএমকেয়ের মতো খুঁজে পাচ্ছি যে এটি একটি স্থাপনা ব্যর্থতার কারণ। আপনি যদি আপনার পরিবেশটি পুনর্নির্মাণ করেন তবে এটি ক্লায়েন্ট_ম্যাক্স_দেহী_সাইজ সেটিংস এবং ততক্ষণ আপনার কনফিগার ফাইলে নির্দেশিকাটি গ্রহণ করবে।


এটি কি প্রয়োজনীয়? আপনি যদি এটি যুক্ত না করেন তবে এটি পুনরায় আরম্ভ হবে কীভাবে?
সিডিএমকেই

আমার অভিজ্ঞতাতে আমি এটি প্রয়োজনীয় খুঁজে পেয়েছি।
উইল

@ সিডিএমকেহে আপনি কি পুনরায় লোড কমান্ডের কারণে উদাহরণটি সম্পর্কে আরও বলতে পারেন?
উইল

আমি এটি খুব ঘনিষ্ঠভাবে দেখিনি, তবে এটি মূলত আমার সার্ভারটি চালু না করা পর্যন্ত আমি এটি সরিয়ে না দিয়েছিল। এটি প্রয়োজনীয় বলে মনে হচ্ছে না।
সিডিএমকেয়ে

3
আমার অভিজ্ঞতায় আমি দেখতে পেলাম যে এটি প্রয়োজনীয় ছিল, তবে আমাকে নতুন পরীক্ষার জন্য পুনরায় চালু করার চেষ্টা করার আগে এনজিনেক্স চলছিল কিনা তা দেখার জন্য আমার একটি চেক যুক্ত করতে হয়েছিল - 'পিগ্রেপ এনজিনেক্স && সার্ভিস এনজিনেক্স রিলোড || সত্য '
অ্যালেক্সস

16

আমার কাছে জেভিএম-ভিত্তিক অ্যাপ রয়েছে বলে গ্রহণযোগ্য উত্তরটি আমার পক্ষে কার্যকর হয়নি এবং এনজিআইএনএক্স কনফিগারেশনটি অন্যরকম করে মনে হচ্ছে। আমি দেখতে পাব একটি স্থাপনার সময় একটি প্রক্সি.কনফ ফাইল তৈরি হচ্ছে তবে পরে ডিপ্লয় সম্পন্ন হওয়ার আগে মুছে ফেলা হবে। এডাব্লুএস ডকুমেন্টেশন কীভাবে প্রক্সিটি কনফিগার করতে হয় তা ব্যাখ্যা করে :

একটি .ebextensions/nginx/conf.d/proxy.confফাইল তৈরি করুন যাতে কেবল লাইন থাকে:client_max_body_size 40M;


2
দুর্ভাগ্যক্রমে, এটি আমার পক্ষে কাজ করেনি (একক ধারক ডকার ইএলবি) - উদাহরণটি পুনরায় বুট করার পরেও নয়। এসএসএইচের মাধ্যমে দৃষ্টান্তটিতে লগ ইন করে কোনও প্রক্সি.কনফ ফাইল তৈরি হচ্ছে না/etc/nginx/conf.d/
ইউডো জি

আমি ধরে নিচ্ছি এটি আপনি ডকার ইএলবি ব্যবহার করছেন এবং এটি ভিন্নভাবে এনজিনেক্সকে ধরিয়ে দেয় of আমার উত্তরটি জাভা-প্রিসেট ইএলবির জন্য।
রেমন্ড 26

আমি এলব এবং জাভা অ্যাপ্লিকেশন ব্যবহার করছি। আমার জন্য কাজ কর! ধন্যবাদ!
দিমিতর ভুকম্যান

কেবলমাত্র অস্থায়ী উপস্থিতি লক্ষ্য করে আপনি কীভাবে প্রক্সি.কম ফাইলটি তৈরি হচ্ছে তা দেখতে পাচ্ছেন?
রজারডপ্যাক 21

9

গৃহীত উত্তরটি অনুসরণ করে আপনার প্রয়োজন হতে পারে এনগিনেক্স কনফিগারেশন ফাইলটি পুনরায় লোড করতে হবে।

এটি করতে নিম্নলিখিত কমান্ডটি যুক্ত করুন

   container_commands:
      01_reload_nginx:
        command: "service nginx reload"

এটি আপনার eb উদাহরণস্বরূপ ssh'ing এবং একটি কমান্ড দিয়ে ম্যানুয়ালি এটি করার চেয়ে ভাল অনুশীলন হবে।

এটি গ্রহণযোগ্য উত্তরের সাথে মিলিত হয়ে আমার জন্য একই সমস্যাটি সমাধান করেছে। (রেলস, পুমা, এনজিআইএনএক্স)


7

আমার পক্ষে একমাত্র কাজটি ছিল। "এক্সফাইজ" ফাইলটি তৈরি করা e

.ebextensions/
           proxy.config

কেবলমাত্র কনফিগ ফাইলে এই বিষয়বস্তু সহ:

files:
  "/etc/nginx/conf.d/proxy.conf":
     content: |
       client_max_body_size 50M;

সাবফোল্ডারগুলির প্রয়োজন নেই, অ্যাপ্লিকেশন সার্ভারটি পুনরায় চালু করার দরকার নেই, মনোযোগ দিন। ফাইলটির নাম বিবেচনা করে না,

ধন্যবাদ: http://kroltech.com/2014/09/14/quick-tip-increase-upload-size-in-aws-elastic-beanstalk-node-js-env/


5

গৃহীত উত্তরটি আমার পক্ষে কাজ করে না, সুতরাং পরিবর্তে আমি আমার নিজের সাথে এনগিনেক্স কনফিগারেশনকে ওভাররড করেছি।

আমি nginx.confডিরেক্টরিতে ডাকা একটি ফাইল তৈরি করেছি.ebextensions/nginx/

আমি আমার বিনস্টালক অ্যাপ্লিকেশনটির একটি চলমান উদাহরণে এসএসএড করেছি এবং nginx.confব্যবহার করে ফাইলের বিষয়বস্তু অনুলিপি করেছিcat /etc/nginx/nginx.conf এবং টার্মিনালটি এবং অনুলিপি অনুলিপি করেছি।

আমি nginx.confপূর্বে তৈরি করা ফাইলটিতে আমি সামগ্রীগুলি .ebextensions/nginx/আটকালাম এবং অন্তর্ভুক্ত করার জন্য HTTP নির্দেশকে সংশোধন করেছি client_max_body_size 50M;। অবশেষে আমি আমার অ্যাপ্লিকেশনটি আবার ব্যবহার eb deployকরে আবার কাজ করেছিলাম worked স্থাপনার সময় আপনার নিম্নলিখিত বার্তাটি পাওয়া উচিত:

INFO: '.ebextensions / nginx' ডিরেক্টরিতে Nginx কনফিগারেশন সনাক্ত হয়েছে। এডাব্লুএস ইলাস্টিক বিয়ানস্টালক আর এই পরিবেশের জন্য এনগিনেক্স কনফিগারেশন পরিচালনা করবে না।

এগুলি আমার .ebextensions/nginx/nginx.confফাইলের বিষয়বস্তু :

# Elastic Beanstalk Nginx Configuration File

user                    nginx;
error_log               /var/log/nginx/error.log warn;
pid                     /var/run/nginx.pid;
worker_processes        auto;
worker_rlimit_nofile    33193;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    include       conf.d/*.conf;

    map $http_upgrade $connection_upgrade {
        default     "upgrade";
    }

    server {
        listen        80 default_server;
        access_log    /var/log/nginx/access.log main;

        client_header_timeout 60;
        client_body_timeout   60;
        keepalive_timeout     60;
        gzip                  off;
        gzip_comp_level       4;
        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        # Include the Elastic Beanstalk generated locations
        include conf.d/elasticbeanstalk/*.conf;
    }

    client_max_body_size 50M;
}

আমাকে এনজিনেক্স পরিষেবা এবং পরিবেশ পুনরায় চালু করতে হবে না।

দ্রষ্টব্য : নিশ্চিত করুন যে আপনার .ebextensions মোস্তফা চলাকালীন Beanstalk এ তৈরি এবং আপলোড করা .zip ফাইলের একটি অংশ (এটি আপনি ব্যবহার করছেন .gitignoreবা তা অবহেলা করা হয় .ebignoreনা)।


এর জন্য ধন্যবাদ! আমি ভাবছিলাম আপনি কোন প্ল্যাটফর্মটি ব্যবহার করছেন? কোনও কারণে বিনস্টালক আমার জিপ ফাইল এবং গিট রেপোতে থাকা সত্ত্বেও আমার `.ebextensions / nginx / nginx.conf` ফাইলটি সনাক্ত করছে না।
আইসিড

চিরকুট জন্য upvated। আমি .ebextensionsগ্রহণযোগ্য এবং জনপ্রিয় উত্তরটি ব্যর্থ হওয়ার কারণে এড়ানো হচ্ছে to আপনি উল্লিখিত সমস্ত কিছুই আমি চেষ্টা করে দেখিনি, তবে নোটটির জন্য ধন্যবাদ Gab
গ্যাবলেউক্স

5

আমি .ebextensionsবাস্তবায়ন স্তরের কনফিগারেশন যুক্ত করার সমস্ত পদ্ধতির চেষ্টা করেছি এবং এটি সর্বশেষতম আমাজন লিনাক্স এএমআইতে আমাকে সহায়তা করে নি। আমি অনেক গবেষণা করেছি এবং লগগুলি .platformসন্ধানের পরে আমি জানতে পারি যে ডিপ্লোয়মেন্ট টাস্ক রানার প্রতিবারের মতো একটি ফোল্ডার চেক করছে এবং আমি ঠিক .ebextensions এর মতো একটি যুক্ত করার চিন্তা করেছি। নীচে আমি আমার প্রকল্পের মূল ফোল্ডারে যা করেছি সেটিংস নীচে।

আপনার প্রকল্প ফোল্ডারের মূল স্তরে নীচের ফোল্ডার সেটআপ করুন।

ফোল্ডার কাঠামো (.প্ল্যাটফর্ম / এনগিনেক্স / কনফিড। ডি / প্রক্সি.কম)

.platform/
         nginx/
              conf.d/
                    proxy.conf
         00_myconf.config

ফাইল 1 এর সামগ্রী - প্রক্সি.কনফ ( .platform/nginx/conf.d/ফোল্ডারের ভিতরে )

client_max_body_size 50M;

ফাইল 2 - 00_myconf.config এর সামগ্রী ( .platform/ফোল্ডারের ভিতরে )

container_commands:
  01_reload_nginx:
    command: "service nginx reload"

এক্সটেনশনগুলির সাথে পূর্ণ যত্ন। প্রথম ফাইলটি .conf এবং দ্বিতীয় ফাইলটি .config

এখন আপনার প্রকল্পটি অ্যামাজন ইলাস্টিক বিয়ানস্টালকে পুনরায় চালু করুন এবং আপনি যাদুটি দেখতে পাবেন। এই কনফিগারেশনটি আপনার সমস্ত ইসি 2 দৃষ্টান্তে যুক্ত হবে, স্বতঃ স্কেলিংয়ের অংশ হিসাবে তৈরি।

নীচে বিস্তারিত ফোল্ডার কাঠামো।

এখানে চিত্র বর্ণনা লিখুন


2
মানুষ!!!!!!!! তোমাকে অনেক ধন্যবাদ. এডাব্লুএস ইবি অ্যামাজন লিনাক্সে এনগিনেক্স কনফিগার করার একমাত্র উপায়। আমি প্রতিটি উপলভ্য সমাধান চেষ্টা করে একটি পুরো দিন নষ্ট করছি !!! এই উত্তরটি বিস্তারিতভাবে লেখার জন্য আপনাকে সময় দেওয়ার জন্য আপনাকে ধন্যবাদ জানাতে আমি পারছি না। তোমার মঙ্গল হোক. আপনার যদি কোনও ধরণের প্যাট্রিয়ন বা বায়ম্যাকফি অ্যাকাউন্ট থাকে তবে এটি অবদান রাখবে। @jijo Cleetus
InfinitePrime

2
অনেক ধন্যবাদ. আমিও ব্যবহার করে সমস্ত সম্ভাব্য পদ্ধতির চেষ্টা করেছি .ebextensionsএবং কেবলমাত্র এই পদ্ধতির কাজ হয়েছিল।
অরুণধজ

এটি কাজ করতে পেরে আমাকে প্রচুর পরীক্ষা এবং ব্যর্থতা বাঁচিয়েছে। আপনাকে যথেষ্ট ধন্যবাদ দিতে পারি না!
জালাল এল-শায়ের

অনেক ধন্যবাদ, এটি একটি স্প্রিং বুট অ্যাপ্লিকেশনটির জন্যও কাজ করেছে; ইলাস্টিক বিনস টকক্যাট চলমান সহ আমার ট্যাবে একটি বিয়ার রাখুন :)।
আজি

3

এটি এডাব্লুএস সরবরাহিত সমাধান এবং এটি কাজ করে (আপনার প্রয়োজনীয়তার সাথে আকারটি সামঞ্জস্য করুন)

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/enact/12_add_nginx_configuration.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      /bin/echo "client_max_body_size 50M;" > /etc/nginx/conf.d/proxy.conf
      /sbin/service nginx reload

2

বিকল্পভাবে আপনি প্রক্সি সার্ভারটি অ্যাপাচে পরিবর্তন করতে পারেন। এটি করতে, কনফিগারেশনে যান এবং সফ্টওয়্যার কনফিগারেশন সম্পাদনা করুন। এখানে প্রথম বিকল্পটি হ'ল "প্রক্সি সার্ভার", "অ্যাপাচি" নির্বাচন করুন।


অ্যাপাচে আপলোড করা ফাইলগুলির সর্বোচ্চ আকার নির্ধারণের নিজস্ব সীমাবদ্ধতাবাদী নির্দেশিকা রয়েছে।
টম হার্ভে

@ টমহারভে যদি উপলভ্য হয় তবে আপনি কি দয়া করে ব্যবহারের ক্ষেত্রে পুরো উদাহরণটি সরবরাহ করবেন LimitRequestBody?
হাসান

1

গোলার ছাড়া ডকার ছাড়াই আমি অ্যাডস ডকের এই নির্দেশাবলী অনুসরণ করেছি:

বিপরীত প্রক্সি কনফিগার করা হচ্ছে

আপনি যদি nginx.conf http ব্লকের সাথে সম্পর্কিত নির্দেশাবলী অন্তর্ভুক্ত করতে চান তবে আপনি .ebextensions/nginx/conf.d/নিজের উত্স বান্ডেলের ডিরেক্টরিতে অতিরিক্ত কনফিগারেশন ফাইলও সরবরাহ করতে পারেন । এই ডিরেক্টরিতে সমস্ত ফাইলের অবশ্যই .conf এক্সটেনশন থাকতে হবে। http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/go-environment.html#go-complex-apps

আমি ফাইল তৈরি proxy.confমধ্যে .ebextensions/nginx/conf.d/কেবল 1 টি লাইন ভিতরে আমার প্রকল্প root- এ:

client_max_body_size 20M;

যদি এটি এখনও কাজ না করে, নিশ্চিত করুন যে .ebextensionsফোল্ডার এবং সাব-ফোল্ডারগুলি আপনার স্থাপনার জিপটিতে অন্তর্ভুক্ত রয়েছে। ম্যানুয়ালি এনগিনেক্স পুনরায় চালু করার দরকার নেই।


1

আমি একই ইস্যু নিয়ে লড়াই করে যাচ্ছিলাম কিন্তু সমাধান করতে পারছিলাম না, শেষ পর্যন্ত এর কাজ।

এখানে আমার কংগিগ ফাইল,

files:
  "/etc/nginx/conf.d/01_proxy.conf":
    mode: "000755"
    owner: root
    group: root
    content: |
      client_max_body_size 50M;
      client_body_buffer_size 16k;

container_commands:
  01_reload_nginx:
    command: "sudo service nginx reload"

বিষয়টি ছিল,

আমি কোড পাইপলাইনের জন্য পাইথন স্ক্রিপ্ট ব্যবহার করছিলাম যা বিল্ডটি তৈরি করার সময় .ebextensions ফোল্ডারটি অন্তর্ভুক্ত করে না।

এখানে আমার কয়েকটি সেন্ট,

  1. আপনার আ.বি. এক্সটেনশনগুলি ফোল্ডারটি আপনার বিল্ডের জিপ ফোল্ডারে অন্তর্ভুক্ত রয়েছে যা আপনার আওস অ্যাকাউন্টের এস 3 বাল্টে অবস্থিত
  2. এটি .gitignore ফাইলে নেই তা নিশ্চিত করুন
  3. আপনি যদি বিল্ড তৈরির জন্য কোনও স্ক্রিপ্ট ব্যবহার করছেন তবে নিশ্চিত করুন এটিতে .ebextensions অন্তর্ভুক্ত রয়েছে

1

এটির বিষয়টি বের করার জন্য দীর্ঘ 3 দিন চেষ্টা করার পরে, আমি আশ্চর্যজনক এডাব্লুএস সমর্থন দলের সাথে একটি কলটিতে ঝাঁপিয়ে পড়েছিলাম এবং তারা কীভাবে এটি সমাধান করবেন সে সম্পর্কে আমাকে কিছু ধারণা দিয়েছেন। প্রথমত, আমার প্রকল্পটি জাএভিএতে রয়েছে এবং আমি ইলাস্টিক বিয়ানস্টালক (ইবিএস) এর মাধ্যমে এটি চালানোর জন্য মাভেন এবং স্প্রিং বুট ব্যবহার করি।

  1. এডাব্লুএসের ডকুমেন্টেশনে যেমন ব্যাখ্যা করা হয়েছে , আপনার প্রজেক্টের মূল স্তরে কাস্টম এনগিনেক্স সেটিংস থাকা দরকার। এটি করতে আমি একটি ক্লায়েন্ট_ম্যাক্স_দেহী_সাইজ.কম ফাইল তৈরি করেছি এবং এটি নিম্নলিখিত পাতায় রেখেছি : myprojectname /src/main/resources/ebextensions/nginx/conf.d/client_max_body_size.conf এই ফাইলটিতে কেবল নিম্নলিখিত লাইনটি রয়েছে:

    client_max_body_size 10M;
    
  2. নির্মাণের সময় আমার প্রকল্পের মূল ফোল্ডারে এই ফাইলটি যুক্ত করার জন্য ম্যাভেনকে কনফিগার করুন। এটি কিছুটা জটিল ছিল, আমার POM.xML এ নিম্নলিখিত কনফিগারেশন ( উত্স ) যুক্ত করার দরকার ছিল :

    <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <!-- here the phase you need -->
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/target/.ebextensions</outputDirectory>
                <resources>
                    <resource>
                        <directory>src/main/resources/ebextensions</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
    

  3. আপনি এখনই ইতিমধ্যে স্থানীয়ভাবে আপনার প্রকল্পটি তৈরি করতে পারেন এবং এটি আপনার প্রকল্পের মূলের মধ্যে রয়েছে তা যাচাই করার জন্য নিম্নলিখিত এসএসএইচ কমান্ডটি চালাতে পারেন:

    jar tf main-1.0-SNAPSHOT.jar | grep .ebextensions
    
  4. এখন এটি জটিল অংশ। আপনি এটি ইবিএস-এ আপলোড করার সময় আপনার ফাইলটিতে কেবল এসএনএপিএসএইচটি.ট.জার ফাইল এবং .ebextensions ফোল্ডার থাকা উচিত। উদাহরণস্বরূপ, এখন আপনি যদি জার ফাইল এবং ফোল্ডারটি জিপ করে ম্যানুয়ালি আপলোড করেন তবে এটি কার্যকর হবে!

  5. যেহেতু আমি আমার স্থাপনার জন্য জেনকিন্স এবং বিশেষত এডাব্লুএস ইবিএস ডিপ্লোয়মেন্ট প্লাগইন ব্যবহার করছি - আপনাকে মোতায়েনের অন্তর্ভুক্ত থাকা ফাইল / ফোল্ডারের সেটিংস পরিবর্তন করতে হবে। এখন কোনও কারণে আমি .ebextensions ফোল্ডারটি অন্তর্ভুক্ত করতে পারিনি তাই আমি ফোল্ডার এবং .jar ফাইল ব্যতীত অন্য সমস্ত কিছু বাদ দিয়েছি। এখানে চিত্র বর্ণনা লিখুন

এইটা কাজ করে!


1

ক্লায়েন্ট_ম্যাক্স_বডি_ সাইজ ছাড়াও, আমাকে ক্লায়েন্ট_বডি_ফুফার_সাইজ যুক্ত করতে হয়েছিল । 2 মেগাবাইট সংযুক্তির জন্য ডট কনফিগারেশন ফাইলটি এখানে কাজ করেছে:

ফাইলগুলি: "/etc/nginx/conf.d/proxy.conf":
মোড: "000755"
মালিক: মূল
গোষ্ঠী: মূল
সামগ্রী: |
প্রক্সি_বাফারিং চালু;
প্রক্সি_বফার_সাইজ 128 কে;
প্রক্সি_বাফার্স 8 256 কে;
ক্লায়েন্ট_বডি_বাফার_সাইজ 2 এম;
প্রক্সি_বসি_বফার_সাইজ 256 কে;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
ক্লায়েন্ট_ম্যাক্স_বডি_ সাইজ 3 এম;


0

জাভা প্ল্যাটফর্মের জন্য

এনজিআইএনএক্স কনফিগার প্রক্সি ফাইল তৈরি করতে আপনার খালি যুক্ত করা উচিত

.ebextension/nginx/conf.d/proxy.conf ফাইল

বিষয়বস্তু সহ client_max_body_size 20M;

"প্রক্সি.কনফ" "/etc/nginx/conf.d/proxy.conf" এ স্থাপন করা হবে এবং স্বয়ংক্রিয়ভাবে এনজিআইএনএক্স কনফিগারেশনে অন্তর্ভুক্ত হবে।


0

আপনি যদি ইসি 2 চালাচ্ছেন এবং নিজে এনগিনেক্স ইনস্টল করেন তবে আপনার সেরা সমাধানটি একটি নতুন ফাইল তৈরি করা

/etc/nginx/conf.d

ফোল্ডার:

sudo nano /etc/nginx/conf.d/proxy.conf

এবং তারপরে সেখানে নিম্নলিখিত লাইনটি যুক্ত করুন:

client_max_body_size 20M;

তারপরে nginx সংরক্ষণ করুন এবং পুনরায় চালু করুন:

sudo systemctl restart nginx

এটি চারপাশের কাজ তবে ইলাস্টিক বিয়ানস্টালক একটি নতুন দৃষ্টান্ত তৈরি করে তবে প্রতিটি ক্ষেত্রে আপনার এই কনফিগারেশনটি দেওয়া দরকার। এবং এটি ব্যবহারিকভাবে সম্ভব নয় যেহেতু আমাদের নিয়মিত ইসি 2 বিষয়গুলি পর্যবেক্ষণ করা দরকার এবং
এনজিএনএক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.