অবস্থান নির্দেশিকা কাজ করছে না


10

আমার এনজিআইএনএক্স সার্ভারের জন্য আমার কেবল একটি স্ট্যাটিক বিষয়বস্তু বের করার জন্য একটি ভার্চুয়াল সার্ভার সেট আপ করা আছে। এই মুহূর্তে আমি এটি সেট আপ করার চেষ্টা করছি যাতে চিত্রগুলির একটি মেয়াদ শেষ হয়। যাইহোক, আমি যখন এটির জন্য কোনও অবস্থানের নির্দেশিকা তৈরি করি, তখন সমস্ত কিছুই কেবল 404 এর ফলাফল।

আমার কনফিগারেশন এখন এই মত দেখাচ্ছে:

/srv/www/static.conf

server {
    listen                          80;
    server_name                     static.*.*;

    location / {
            root                    /srv/www/static;
            deny                    all;
    }

    location /images {
            expires                 1y;
            log_not_found           off;
            root                    /srv/www/static/images;
    }
}

দ্রষ্টব্য, এই ফাইলটি একটি HTTP নির্দেশকের ভিতরে /etc/nginx/nginx.conf থেকে অন্তর্ভুক্ত

আমি, ইমেজ অ্যাক্সেস করতে এ এর কথা বলা যাক চেষ্টা করছি ... static.example.com/images/screenshots/something.png। নিশ্চিতভাবেই, চিত্রটি এখানেও রয়েছে /srv/www/static/images/screenshots/something.png। তবে, ঠিকানাতে যাওয়া কাজ করে না এবং কেবল আমাকে বলে 404 পাওয়া যায় নি

তবে, আমি যদি সরিয়ে ফেলা হয় location /imagesএবং location /নিম্নলিখিতগুলিতে পরিবর্তন করি ...

location / {
    root /srv/www/static;
}

এটি কাজ করে! আমি এখানে কি ভুল করছি?

উত্তর:


14

আপনার কনফিগারেশনটি এনজিএনএক্স কনফিগারেশন সংক্রান্ত সমস্যাগুলি অনুসরণ করছে করার আগে আপনার এটি পড়া উচিত।

আপনার প্রশ্নের উত্তর দেওয়ার জন্য, আপনাকে সংজ্ঞায়িত করা উচিত নয় root অবস্থানটি নির্দিষ্ট করা , একবার এটি সংজ্ঞায়িত করা হবে এবং অবস্থান ট্যাগটি আপনাকে স্বয়ংক্রিয়ভাবে নির্দিষ্ট ডিরেক্টরিগুলিতে অ্যাক্সেস নির্ধারণ করতে দেবে।

ইমেজ ডিরেক্টরিতে কাস্টম রুট সংজ্ঞায়নের পরিবর্তে ব্যবহার করুন try_files$uriম্যাপ করবে /images/সঙ্গে ডিরেক্টরি/static/images/

এই কনফিগারেশন ব্যবহার করে দেখুন:

server {
    listen                          80;
    server_name                     static.*.*;
    root                            /srv/www;

    location /static/ {
            deny                    all;
    }

    location /images/ {
            expires                 1y;
            log_not_found           off;
            autoindex               off;
            try_files $uri static/images$uri;
    }
}

ধন্যবাদ! আমি সমস্যাগুলি পড়েছি, তবে আমার ধারণা আমার স্মৃতিশক্তি ব্যর্থ হয়েছিল। এটি কাজ করে, যদিও আমি এটি আমার উদ্দেশ্যে সামান্য সম্পাদনা করেছি।
জেসি ব্র্যান্ডগুলি 21

হ্যাঁ আমি নিজে সময়ে সময়ে এর অংশগুলি পুনরায় পড়ি, এর আলাদা আলাদা উইকি পৃষ্ঠা থাকার কারণ রয়েছে;)
ফোপস

সংজ্ঞা যদি rootভিতরে locationখারাপ অভ্যাস, কিভাবে আসা তারা তা নিজেদের মধ্যে doning করছি ডক্স / HTTP / ngx_http_core_module.html # ওরফে ? (দেখুন যেখানে এটি বলছে " পরিবর্তে মূল নির্দেশিকা ব্যবহার করা ভাল ") সংশোধন : ঠিক আছে, মনে হচ্ছে
ভুলটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.