A nova configuração do Nginx do Ubuntu 16.04 está servindo arquivos estáticos antigos

1

Eu tenho uma landing page muito básica para um domínio meu. Nos últimos dois dias tenho lutado com uma questão muito peculiar.

Por exemplo, o diretório contém:

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

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

O conteúdo de 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>

O conteúdo de 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;
}

O problema que estou enfrentando é o seguinte:

Imediatamente após uma reinicialização ou algo desse tipo, e abro o site, todos os arquivos estáticos são carregados corretamente, para as versões que estão presentes no servidor.

No entanto, além desse ponto, se eu fizer uma alteração no main_style.css, por exemplo, ele não refletirá a alteração. Mesmo abrindo o main_style.css no meu navegador não reflete as mudanças, e mostra a versão antiga do arquivo.

Também recentemente, renomei uma foto de test.png para logo.png e a alterei de acordo com o index.html. O arquivo index.html refletiu a alteração apropriada, no entanto, ele não vê a foto "logo.png" e retorna um erro 404 ... Ele está claramente no diretório raiz da Web, mas não é exibido. Mesmo assim, ainda posso acessar a foto antiga "test.png" via URL, mesmo que nenhum arquivo esteja presente no servidor.

O que tentei:

Eu entendo que esse problema certamente está relacionado, de alguma forma, ao cache, e eu tentei muitas soluções na web em minha pesquisa, e nenhuma pareceu ter qualquer efeito no meu sistema.

Também vejo que, em muitos casos, essa situação pode ser causada pelo VirtualBox ou algo chamado Vagrant VM. Minha máquina nunca executou nenhuma dessas coisas e meu servidor está sendo executado em um PC físico sob minha mesa.

Pensei que o problema poderia ter sido causado pela execução de mais de 100 atualizações, pois não executava meu servidor há algum tempo, por isso fiz o backup de dados pessoais e de dados da Web do servidor e reinstale o sistema operacional para a versão mais recente e reinstale o software a partir dele.

Acabei de terminar de fazer isso e reconfigurar todo o software da Web, mas com certeza, ainda está tendo o mesmo problema.

As únicas coisas que instalei na máquina depois de fazer uma nova reinstalação do sistema operacional são:

  • openssh-server
  • samba
  • nginx
  • servidor-mysql
  • php-fpm
  • php-mysql

Eu li que isso poderia ser resolvido configurando sendfile no arquivo nginx.conf para off , mas isso não resolveu nada.

Meu arquivo nginx.conf e o arquivo php.ini são ambos padrão.

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/*;
}

Configuração do site:

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;
        }

}
    
por Purlek 24.02.2017 / 04:59

1 resposta

0

Nesta situação, estava de fato relacionado ao armazenamento em cache. Simplesmente não no lado do servidor ou no lado do meu navegador.

O cache que estava causando os problemas estava do lado da Cloudflare. Eu uso esse serviço como host em minha rede doméstica e desejo ocultar meu endereço IP.

Nunca tive esse problema com o Cloudflare no passado, por mais estranho que pareça. Talvez algo tenha mudado desde a última vez que usei.

Como consertei:

Eu configurei as regras da página para parar completamente o cache nas seguintes configurações:

  • *. website.com / *
  • website.com / *

Em seguida, limpei completamente o cache armazenado do Cloudflare e agora não estou mais tendo problemas com o armazenamento em cache ou a exibição de arquivos antigos.

    
por 24.02.2017 / 05:32