এনজিআইএনএক্স "ক্লায়েন্ট_ম্যাক্স_বডি_সাইজ" নির্দেশিকা "অবস্থান" ব্লকের ভিতরে কাজ করে না


15

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

http {
    # ...
    client_max_body_size 16M;
    # ...

    server {
        server_name example.com;
        root /var/www/example.com;
        index index.php;

        location /admin {
            client_max_body_size 256M;
        }

        # ...
    }
}

এটা কাজ করে না. /admin/index.phpস্ক্রিপ্ট 16Mb: 413 এর চেয়ে বড় বড় ফাইলগুলি আপলোড করতে পারে না

যাইহোক, আমি ব্লক client_max_body_sizeকরতে সরানো হলে serverসবকিছু ঠিকঠাক কাজ করে। তবে আমি এই পরিবর্তনটি কেবল adminক্যাটালগের জন্যই করতে চাই না ।

ডক্স অনুসারে , কেবল কাঙ্ক্ষিত পাথের জন্য ওভাররাইড সেটিং এ ব্লকের client_max_body_sizeভিতরে স্থাপন করা যেতে পারে location

ভুল কি হতে পারে?

উত্তর:


15

এটি ঠিক কাজ করে, সমস্যা আপনি কীভাবে লোকেশনগুলি কাজ করে তা ভুল বুঝেছেন। Nginx কেবলমাত্র একটি অবস্থান ব্লক প্রয়োগ করবে, একের বেশি কখনও হবে না। সুতরাং যখন আপনি দুটি অবস্থান আছে

location ~ \.php$এবং location /adminএবং ইউআরআই /admin/index.phpতখন আপনার প্রথম অবস্থানটি প্রয়োগ করে তবে দ্বিতীয়টি প্রয়োগ করে না। এমনকি যদি আপনি কোনও জায়গার মধ্যে পুনর্লিখন ব্যবহার করতে চান তবে এনজিনেক্স নির্দেশাবলী বাতিল করে নতুন জায়গার জন্য তাদের পুনঃস্থাপন করবে।

আপনি সর্বদা সম্পূর্ণ কনফিগার পোস্ট করার কারণে এটিও কারণ যা আসলে কী ভুল তা আপনি গোপন করেন না।


দুঃখিত, সম্পূর্ণ কনফিগার পোস্ট না করায় আপনি ঠিক বলেছেন। উত্তরের হিসাবে, এটি সত্য হতে পারে না। ডক্সের উদাহরণ এখানে: wiki.nginx.org/HttpCoreModule#location এবং অন্যান্য জায়গাগুলিতে একাধিক অবস্থানের ব্লকগুলি আমার পক্ষে ঠিক ঠিক কাজ করে।
টেম্নোভিট

1
দুঃখিত, তবে এটি 100% ঠিক। এনগিনেক্স একাধিক অবস্থানের ব্লকগুলি অনুসন্ধান করতে পারে তবে এটি কেবল তাদের মধ্যে একটির নির্দেশিকা প্রয়োগ করবে। কোনটি এটি চয়ন করে তা আপনার লিঙ্ক করা পৃষ্ঠায় ডকুমেন্টেড বিধিগুলির উপর নির্ভর করে।
মার্টিন Fjordvald

@ মার্টিনএফজর্ডভাল্ড এর সমাধান কী?
বিশৃঙ্খলা

তাকান configuration E: লিঙ্ক এ nginx.org/en/docs/http/ngx_http_core_module.html#location
holmberd

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