Свежая конфигурация 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 ' m сталкивается со следующим:

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

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

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

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

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

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

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

Я только что закончил это делать, //unix.stackexchange.com/questions/207063/apache-httpd-failing-to-start-on-boot-centos-7 Однако их совет:

systemctl enable NetworkManager-wait-online.service
Failed to execute operation: No such file or directory

Кажется, не работает.

Я совершенно потерялся.

3
задан 13 April 2017 в 15:37
1 ответ

Оказывается, вам нужно использовать NetworkManager, чтобы это работало, так как вы хотите дождаться, пока IP-адреса на самом деле станут доступны. NetworkManager не установлен по умолчанию в CentOs 7.

Итак:

# yum install NetworkManager

Включите его:

systemctl enable NetworkManager-wait-online

Затем:

# systemctl edit httpd.service

И добавьте:

After=network.target NetworkManager-wait-online.service remote-fs.target nss-lookup.target

На этом этапе HTTPD запустится только после того, как IP-адрес будет назначен интерфейсу и бинго, на самом деле он начало.

1
ответ дан 3 December 2019 в 07:23

Теги

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