আমরা ডেভলপমেন্ট প্ল্যাটফর্মে স্ট্যাটিক ফাইলগুলি পরিবেশন করতে Nginx ব্যবহার করছি। এটি একটি উন্নয়ন প্ল্যাটফর্ম হিসাবে, আমরা ক্যাচিং অক্ষম করতে চাই যাতে প্রতিটি পরিবর্তনটি সার্ভারে প্রচারিত হয়। ভিহস্টের কনফিগারেশনটি বেশ সহজ:
server {
server_name static.server.local;
root /var/www/static;
## Default location
location / {
access_log off;
expires 0;
add_header Cache-Control private;
}
}
আমরা যখন একটি HTML ফাইল অ্যাক্সেস ( HTTP: //static.server.local/test.html ), আমরা কোন সমস্যা আছে: সার্ভারে একটি কোড ফেরৎ 304 সংশোধন যতদিন ফাইল নয় পরিবর্তিত হয়, এবং একটি 200 ঠিক আছে সঙ্গে প্রতিক্রিয়া ফাইল পরিবর্তন করা হলে পরিবর্তিত ফাইল।
তবে এটি জাভাস্ক্রিপ্ট বা সিএসএস ফাইলের সাথে আলাদা আচরণ করছে বলে মনে হচ্ছে। একবার ফাইল পরিবর্তন হয়ে গেলে, আমরা প্রত্যাশা অনুযায়ী 200 ওকে প্রতিক্রিয়া পাই তবে পুরানো পাঠ্য সহ।
এনগিনেক্সে কোনও অভ্যন্তরীণ ক্যাশে প্রক্রিয়া রয়েছে যা এই আচরণটি ব্যাখ্যা করতে পারে? বা কিছু কনফিগারেশন যা আমাদের যুক্ত করা উচিত?
পার্শ্ব নোট হিসাবে, ফাইলটি সংশোধন করার পরে এনগিনেক্সের দেওয়া শিরোনাম এখানে রয়েছে (এটি সঠিক বলে মনে হচ্ছে):
Accept-Ranges:bytes
Cache-Control:max-age=0
private
Connection:keep-alive
Content-Length:309
Content-Type:text/css
Date:Fri, 13 May 2011 14:13:13 GMT
Expires:Fri, 13 May 2011 14:13:13 GMT
Last-Modified:Fri, 13 May 2011 14:13:05 GMT
Server:nginx/0.8.54
সম্পাদনা
সঙ্গে বিভিন্ন সেটিংস চেষ্টা করার পরে expires
নির্দেশ এবং Cache-Control
হেডার, আমি আরও তদন্ত করেছেন। প্রকৃতপক্ষে, সার্ভারটি ভার্চুয়ালবক্স অতিথি উবুন্টুতে ইনস্টল করা আছে এবং ম্যাক ওএসএক্স হোস্টে থাকা একটি ভাগ করা ফোল্ডার থেকে ডেটা পড়া হয়।
যদি হোস্টের কোনও আইডিই (নেটবিয়ান) থেকে ফাইলটি সম্পাদনা করা হয়, মনে হয় পরিবর্তনগুলি উপস্থিত হয় না, তবে আমি যদি এটি সরাসরি অতিথির (ভিআইএম ব্যবহার করে) সম্পাদনা করি তবে তা রিফ্রেশ হয়।
আশ্চর্যের বিষয় এটি এইচটিএমএল ফাইলগুলির সাথে একই রকম আচরণ করে না।
বেশ চমকপ্রদ।
সম্পাদনা 2 (উত্তর)
প্রকৃতপক্ষে, ভার্চুয়ালবক্স দিকে ইস্যুটির উত্স আরও ছিল। অথবা বরং ভার্চুয়ালবক্স এবং সার্ভারের "সেন্ডফিল" বিকল্পের মধ্যে বিরোধ।
এই লিঙ্কটি VirtualBox ঘৃণা করেন, Sendfile আমাকে সমাধান দিয়েছেন: সুইচ sendfile সার্ভার কনফিগারেশনে পতাকা বন্ধ :
sendfile off;
আশা করি এটি উন্নয়নের জন্য ভার্চুয়ালবক্স ব্যবহার করা অন্য ব্যক্তিকেও সহায়তা করতে পারে। :) ভার্চুয়ালবক্স ফোরামে
কিছু অতিরিক্ত তথ্য রয়েছে ।