Конфигурация Nginx - заголовки Кэша на определенных путях

ls-files разработали переключатель с этой целью, -z:

-z    \0 line termination on output.

xargs имеет переключатель, чтобы позволить Вам разделить входные параметры нулевым символом вместо пробела, -0. Комбинируя их, Вы добираетесь:

$ git ls-files -dz | xargs -0 git rm
2
22.01.2012, 18:05
1 ответ

Я думаю о следующем для Вашей nginx конфигурации:

  • так как это просто, истекает заголовок, который отличается для Ваших двух различных мест, хотя оба соответствия прокси к тому же серверу.
  • попытайтесь поместить обоих местоположения в единственный блок
  • на основе строки запроса, (или строка совпадения местоположения) устанавливает другое, истекает заголовок

тег.

server {
  listen  80;
  server_name salessystem.acmecorp.com;

  location ~* (/extjs/|/) {
    ## proxy_buffers 128 256k;
    proxy_pass http://localhost:5400/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    add_header 'X-UA-Compatible' 'IE=Edge;chrome=1';
    expires max;
      if ($query_string ~ \/extjs\/) {
      expires epoch;
      }
    gzip  on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 7;
    gzip_proxied any;
    gzip_types text/html text/css text/pdf application/json application/x-javascript text/javascript;
    access_log off;
    break;
  }

}

Однако протестируйте согласно своим потребностям, особенно около соответствий regex в location и query_string соответствие значения.

Однако не ясно, почему Вы хотели бы extjs подаваться из проксированного сервера (походит на сервер динамического приложения), так как они - просто текстовые файлы, если мое предположение является правильным. Имеющие отношение запросы extjs не должен проходить прокси, или система логики приложения просто упаковывают, в то время как они могут быть поданы независимо через файловую систему. Я думаю о хранении его в его отдельном местоположении самом и имею уникальные gzip/expires директивы, уникальные для него в его собственном блоке местоположения, в то время как другие общие директивы могут быть сохранены в самом блоке сервера.

Например:

server {
   ...
   common gzip directives
   common header setters
   common expires setters
   ...
   location / {
     proxy to backend app server
     settings unique to / location
     ..
   }
   location /extjs {
     settings unique to /extjs location
     expires header reset
     ...
   }
}
3
27.01.2020, 22:07
  • 1
    @nginxtest, что Вы делали? Я интересуюсь Вашей находкой outs и деталями конфигурации..спасибо. –  Nikhil Mulley 12.02.2012, 14:15
  • 2
    Используя if здесь не рекомендуется; см. wiki.nginx.org/IfIsEvil для дополнительных деталей. map была бы более соответствующая директива для использования. –  Thaeli 16.06.2013, 08:10

Теги

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