mmjvox
4 سال پیش توسط mmjvox مطرح شد
1 پاسخ

حذف نشدن فایل های قبلی در nginx

من از وبسرور nginx استفاده می کنم و مشکلی که برای من پیش آمده اینه که وقتی فایل های روی سرور رو آپدیت می کنم متاسفانه هنوز فایل های قبلی دانلود میشن و حتی اگه فایل رو دیلیت هم بکنم فایده ای نداره و باز دانلود می شن.

-فایل ها خراب دانلود نمیشن و کاملا سالم و صحیح هستن و کار می کنن.
-این اتفاق برای بعضی از فایل ها پیش میاد نه همه فایل ها.
-برای دانلود من از مرورگر استفاده نمی کنم که مشکل از کش مرورگر باشه و دانلود منیجیری که اون رو دانلود می کنه به هیچ وجه کش انجام نمیده. (خودم نوشتمش و مطمئنم که براش این قابلیت رو ایجاد نکردم)

بعد از سرچ کردن متوجه شدم که nginx این فایل ها رو برای سرعت پاسخدهی بیشتر کش می کنه و برای مدتی نگه میداره، و من طبق کانفیگ زیر کش nginx رو برای سابدامین و دایرکتوری مورد نظر غیر فعال کردم.

server {
        listen 80;

        root /home/####/######/###/###
        server_name ####.###.ir;

        location / {

 # kill cache
        sendfile off;
        add_header Last-Modified $date_gmt;
        add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
        if_modified_since off;
        expires -1;
        etag off;
        proxy_no_cache 1;
        proxy_cache_bypass 1;
        }
}

ولی مشکل من همچنان حل نشد
و باز بعد سرچ کردن بیشتر که چرا بعد از غیر فعال کردن کش دوباره این اتفاق تکرار میشه به متوجه این نکته شدم که کش هایی که قبلا انجام داده تا وقتی که تاریخ مصرفشون تموم نشده هنوز قابل استفاده هستن و برای همین خودم باید اون کش ها رو پاک کنم و این کار رو هم کردم.

ولی باز فایده ای نداشت تا این که چند ساعت بعد مشکل خودبه‌خود رفع شد و من فکر کردم ممکنه کش فایل های جایی بوده که من موفق به پاک کردن اون ها نشدم و بعد از تایم اوت شدنشون مشکل حل شده .

ولی امروز بعد از مدت حدودی 4 روز باز این مشکل مشاهده شده و از بین 8 کلاینتی که فایل های آپدیت رو دانلود کرده بودن 2 تاشون باز این مشکل براشون پیش اومده بود.
با apache تست کردم و همچین مشکلی پیش نمیاد.


ثبت پرسش جدید
mmjvox
تخصص : QML,Objective-C,Qt/C++,Webasse...
@mmdjv.kh94 4 سال پیش مطرح شد
0

مشکل از سمت سرور حل نشد ولی فعلا مجبور شدم توی دانلود منیجرم برای درخواست های ارسالی attribute دریافت بدون کش رو اضافه کنم
یه همچین چیزی

request.setAttribute(QNetworkRequest::CacheLoadControlAttribute,
                         QNetworkRequest::AlwaysNetwork);

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام