Я запускаю nginx на linux ubuntu 12.04 на машине AWS, и у меня продолжают возникать странные проблемы с «кешированием» (?) На моем рабочем сервере. Когда я развертываю новый код .css, .html, .js - некоторые файлы обновляются, а другие нет, и я получаю странное смешанное поведение между ними. (например, приложение работает странно и т. д.) Если я попрошу своих пользователей сбросить свой кеш (локально), все будет работать нормально. Я хотел бы найти способ не просить пользователей делать это!
Я попытался изменить настройки конфигурации nginx, чтобы продолжать получать ответы «304» или «не изменено» для моих статических файлов, хотя я пытался отключить кеширование и пытался следовать различным сообщениям stackoverflow о том, как отключить кеширование.
Есть у кого мысли в чем может быть проблема? Мои догадки до сих пор таковы: может быть, это что-то специфическое для aws (хотя я пытался отключить sendfile), или одна из моих других настроек переопределяет?
Я пробовал... Как предотвратить 304 Not Modified в nginx? Как очистить кеш nginx? Как отключить кэш nginx https://serverfault.com/questions/269420/disable-caching-when-serving-static-files-with-nginx-for-development
- и ничего не получилось.
Пробовал отключить sendfile; отправить файл включен; установка «без кеша», а также установка кеша и его истечение через 1 с.. (И запуск «sudo service nginx restart» между изменениями файла конфигурации) - но все равно не повезло. Каждый раз, несмотря ни на что, я продолжаю получать заголовки «304 — файл не изменен»; и мои пользователи
Моя (полная) текущая конфигурация:
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
add_header Cache-Control no-cache;
sendfile off; # Virtualbox Issue
expires 0s;
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;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
И внутри моей папки /sites-enabled/
upstream app_server {
server XX.XX.XX.XX:XXXX fail_timeout=0;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
# Virtualbox & Nginx Issues
sendfile off;
# Set the cache to expire - always (no caching)
location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|xml|html|htm)$ {
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
expires 1s;
}
Есть предположения?
Большое спасибо!!