Проблемы с кешированием реагируют в nginx - PullRequest
0 голосов
/ 24 октября 2019

У нас есть веб-приложение, встроенное в веб-интерфейс, упакованное через веб-пакет, и у нас возникли проблемы с кэшированием в наших развертываниях. Сначала мы подумали, что решили ее, отредактировав ссылку bundle.js в index.html с <script src='/bundle.js?'></script> до <script src='/bundle.js?v=d2625a35-6001-4a76-9a79-f56fac23a16b'></script> во время упаковки.

Но теперь оказалось, что index.html кэшируется, то есть он пытался загрузить старую ссылку bundle.js, из-за чего он загружал половину старого пакета и, таким образом, падал примерно посередине рабочего процесса.

Как мы решаем это правильно, полностью? без отключения кэширования для всего приложения.

Это наша текущая конфигурация nginx, единственное, что изменилось во время развертывания, это поле server_name, которое устанавливается в зависимости от prod, stage или dev.

  listen 443;
  ssl on;
  ssl_certificate /etc/nginx/cert/cert_chain.pem;
  ssl_certificate_key /etc/nginx/cert/key.pem;
  server_name #replaceme#;
  root /var/www/html;
  charset UTF-8;

  #hide server version for less info leak
  server_tokens off;

  # Mozilla 'modern' configuration.
  ssl_protocols TLSv1.2;
  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/cert/dhparam.pem;

  # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
  add_header Strict-Transport-Security max-age=15768000;

  # Prevent clickjacking - disallow framing/embedding
  add_header X-Frame-Options DENY;
  add_header X-XSS-Protection "1; mode=block";

  client_max_body_size 100M;

  #Only allow relevant methods
  if ($request_method !~ ^(GET|POST|DELETE|PUT)$ ) {
    return 405;
  }

  location /api/ {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_pass http://localhost:8070/api/;
  }

  location / {
    try_files $uri $uri/ /index.html;
  }
}

Я нашел https://gkedge.gitbooks.io/react-router-in-the-real/content/nginx.html, но не отключает ли это кэширование для всего приложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...