Свежая конфигурация Ubuntu 16.04 Nginx обслуживает старые статические файлы

У меня очень простая целевая страница для моего домена. Последние пару дней я боролся с очень своеобразной проблемой.

Например, каталог содержит:

vanilla>
    ./files/
    ./index.html
    ./main_style.css

    files>
        ./back.gif
        ./back1.gif
        ./logo.png

Содержимое index.html:

<!DOCTYPE html>
<html>

    <head>
        <title>Vanilla</title>
        <link rel="stylesheet" type="text/css" href="main_style.css"/>
    </head>

<body>

    <div>
        <img class="logo" src="files/logo.png" />
    </div>

</body>
</html>

Содержимое main_style.css:

html {
    background-image: url("files/back1.gif");
    background-repeat: repeat;
}

img.logo {
    width: 471px;
    height: 384px;
    position: absolute;
    top: 50%;
    left:  50%;
    margin-left: -235px;
    margin-top: -192px;
}

Проблема I Я столкнулся со следующим:

Сразу после перезагрузки или чего-то в этом роде, и я открываю веб-сайт, все статические файлы загружаются правильно, для версий, имеющихся на сервере.

Однако, помимо этого, если я внесу изменение, например, в main_style.css, оно вообще не отразится. Даже открытие main_style.css в моем браузере не отражает изменений, и показывает старую версию файла.

Также недавно я переименовал фотографию из test.png в logo.png, и соответствующим образом изменил его в index.html. Файл index.html отражает соответствующее изменение, однако он не видит фотографию «logo.png» и возвращает ошибку 404 ... Очевидно, он находится в корневом веб-каталоге, но не обслуживается. Несмотря на это, я все еще могу получить доступ к СТАРЫМ фото "test.png" через URL-адрес, даже если на сервере нет такого файла.

Что я пробовал:

Я понимаю, что эта проблема определенно связана с каким-то образом, к кэшированию, и я пробовал много решений в Интернете в моем поиске, и ни одно, похоже, не оказало никакого влияния на мою систему.

Я также вижу, что во многих случаях эта ситуация может быть вызвана VirtualBox или что-то под названием Vagrant VM. На моей машине никогда не работала ни одна из этих вещей, а мой сервер работает на физическом ПК под моим столом. ini используются по умолчанию.

nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

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

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Конфигурация сайта:

server {
        listen 80;
        root /usr/share/nginx/vanilla/;
        index index.html index.php index.htm;
        server_name www.website.com website.com;
        keepalive_timeout 10000;
        client_max_body_size 1024M;

        location / {
                try_files $uri $uri/ =404;
                #try_files $uri $uri/ /index.php?$args;
        }


        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

}
1
задан 24 February 2017 в 05:59
1 ответ

В этой ситуации это действительно было связано с кешированием. Просто не на стороне сервера или моего браузера.

Кеширование, которое вызывало проблемы, было на стороне Cloudflare. Я использую эту службу, поскольку размещаю в своей домашней сети и хочу скрыть свой IP-адрес.

Как ни странно, я никогда раньше не сталкивался с этой проблемой с Cloudflare. Возможно, что-то изменилось с тех пор, как я использовал его в последний раз.

Как я это исправил:

Я настраиваю правила страницы, чтобы полностью прекратить кеширование в следующих конфигурациях:

  • *. Website.com/*[129 visiblewebsite.com / *

А затем полностью очистил сохраненный кеш Cloudflare, и теперь у меня больше нет проблем с кешированием или обслуживанием старых файлов.

0
ответ дан 4 December 2019 в 05:10

Теги

Похожие вопросы