AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 834602
Accepted
Purlek
Purlek
Asked: 2017-02-24 19:59:57 +0800 CST2017-02-24 19:59:57 +0800 CST 2017-02-24 19:59:57 +0800 CST

全新的 Ubuntu 16.04 Nginx 配置服务于旧的静态文件

  • 772

我的域有一个非常基本的登录页面。在过去的几天里,我一直在与一个非常特殊的问题作斗争。

例如,该目录包含:

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

我面临的问题是:

在重新启动或类似的事情之后,我打开网站,所有静态文件都正确加载到服务器上存在的版本。

但是,除此之外,例如,如果我对 main_style.css 进行更改,它不会反映任何更改。即使在我的浏览器中打开 main_style.css 也不会反映更改,它会显示文件的旧版本。

同样在最近,我将一张照片从 test.png 重命名为 logo.png,并在 index.html 中进行了相应的更改。index.html 文件反映了适当的更改,但是,它没有看到照片“logo.png”,并返回 404 错误……它显然在 web 根目录中,但没有提供。即便如此,我仍然可以通过 URL 访问旧照片“test.png”,即使服务器上不存在这样的文件。

我试过的:

我知道这个问题在某种程度上肯定与缓存有关,并且我在搜索中尝试了许多网络上的解决方案,但似乎都没有对我的系统产生任何影响。

我还看到,在许多情况下,这种情况可能是由 VirtualBox 或称为 Vagrant VM 的东西引起的。我的机器从来没有运行过这些东西,而我的服务器正在我办公桌下的物理 PC 上运行。

我认为这个问题可能是由于我运行了 100 多个更新引起的,因为我有一段时间没有运行我的服务器,所以我竟然从服务器备份了我的个人数据和 Web 数据并重新安装了操作系统到最新版本,然后从那里重新安装软件。

我刚刚完成,并重新配置了所有的网络软件,但可以肯定的是,它仍然有同样的问题。

重新安装操作系统后,我在机器上安装的唯一东西是:

  • openssh 服务器
  • 桑巴
  • nginx
  • mysql服务器
  • php-fpm
  • php-mysql

我读过这可以通过将nginx.conf 文件中的sendfile设置为off来解决,但这并没有解决任何问题。

我的 nginx.conf 文件和 php.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;
        }

}
cache web-server web nginx static-files
  • 1 1 个回答
  • 797 Views

1 个回答

  • Voted
  1. Best Answer
    Purlek
    2017-02-24T20:32:31+08:002017-02-24T20:32:31+08:00

    在这种情况下,它确实与缓存有关。根本不在服务器端,也不是在我的浏览器端。

    导致问题的缓存在 Cloudflare 一方。我在家庭网络上托管时使用此服务并希望隐藏我的 IP 地址。

    奇怪的是,我过去从未遇到过 Cloudflare 的这个问题。自从我上次使用它以来,可能发生了一些变化。

    我如何修复它:

    我设置页面规则以在以下配置上完全停止缓存:

    • *.website.com/*
    • 网站.com/*

    然后完全擦除 Cloudflare 的存储缓存,现在我不再遇到缓存或旧文件服务的问题。

    • 0

相关问题

  • 缩放大文件下载?

  • Gzip 与反向代理缓存

  • 如何禁用tomcat缓存?我遇到了奇怪的静态文件问题

  • mod_mem_cache 提供错误的内容!

  • NFS 缓存导致间歇性滞后

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve