Vesta 2.0 is coming soon! See our progress update: https://vestacp.com/docs/vesta-2-update
Apache+Nginx кэширования для браузера
Apache+Nginx кэширования для браузера
Доброго времени, помоги разобраться, не совсем понимаю как правильно прописать конфигурацию кэширования. Имеется: Ubuntu 16.04.3 x64, связка Apache+Nginx+PHP7.0 fcgid.
1. В каком из файлов будет правильно прописать параметры кэширования: /etc/nginx/nginx.conf или /home/пользователь/conf/web/nginx.conf?
2. Если я правильно разобрался, то нужно добавить параметры кэширования все-таки в файл /home/пользователь/conf/web/nginx.conf после открытия секции location / { ?
3. Файл который у меня лежит в /home/пользователь/conf/web/nginx.conf сейчас заполнен таким образом:
если я добавлю изменения таким образом, это будет правильным вариантом?
Или может есть более лучший вариант кэширования на стороне браузера?
Спасибо за ответ.
1. В каком из файлов будет правильно прописать параметры кэширования: /etc/nginx/nginx.conf или /home/пользователь/conf/web/nginx.conf?
2. Если я правильно разобрался, то нужно добавить параметры кэширования все-таки в файл /home/пользователь/conf/web/nginx.conf после открытия секции location / { ?
3. Файл который у меня лежит в /home/пользователь/conf/web/nginx.conf сейчас заполнен таким образом:
SpoilerShow
server {
listen 111.111.111.111:80;
server_name site.com www.site.com;
location / {
rewrite ^(.*) https://site.com$1 permanent;
}
include /home/пользователь/conf/web/*nginx.site.com.conf_letsencrypt;
}
listen 111.111.111.111:80;
server_name site.com www.site.com;
location / {
rewrite ^(.*) https://site.com$1 permanent;
}
include /home/пользователь/conf/web/*nginx.site.com.conf_letsencrypt;
}
SpoilerShow
server {
listen 111.111.111.111:80;
server_name site.com www.site.com;
location / {
rewrite ^(.*) https://site.com$1 permanent;
}
location ~* ^.+\.(rss|atom|jpg|jpeg|gif|png|ico|rtf|js|css)$ {
expires 1w;
}
include /home/пользователь/conf/web/*nginx.site.com.conf_letsencrypt;
}
listen 111.111.111.111:80;
server_name site.com www.site.com;
location / {
rewrite ^(.*) https://site.com$1 permanent;
}
location ~* ^.+\.(rss|atom|jpg|jpeg|gif|png|ico|rtf|js|css)$ {
expires 1w;
}
include /home/пользователь/conf/web/*nginx.site.com.conf_letsencrypt;
}
Спасибо за ответ.
Re: Apache+Nginx кэширования для браузера
Пункты 2 и 3 все правильно.Кеширование на стороне браузера не лучший вариант и для этого и существует nginx
Re: Apache+Nginx кэширования для браузера
Это не лучший вариант так как при внесении изменений в файлы, старая версия остается в браузере пользователя и после внесения изменений пользователь получит новую версию только по истечению срока кеша?yariksat wrote:Пункты 2 и 3 все правильно.Кеширование на стороне браузера не лучший вариант и для этого и существует nginx
Если применять версии для файлов, тогда это решить все проблемы или есть ещё нюансы в которых я не рекомендуете использовать кэширование?
Спасибо за ответ.
Re: Apache+Nginx кэширования для браузера
А причем здесь браузер пользователя вообще?Это перечень файлов которые будет кешировать nginx а не браузер пользователя.jess23 wrote:Это не лучший вариант так как при внесении изменений в файлы, старая версия остается в браузере пользователя и после внесения изменений пользователь получит новую версию только по истечению срока кеша?yariksat wrote:Пункты 2 и 3 все правильно.Кеширование на стороне браузера не лучший вариант и для этого и существует nginx
Если применять версии для файлов, тогда это решить все проблемы или есть ещё нюансы в которых я не рекомендуете использовать кэширование?
Спасибо за ответ.
Второе не понял,уж что-то Вы вы такую словесную конструкцию построили что я в ней потерялся...
Re: Apache+Nginx кэширования для браузера
А как же тогда заставить браузер пользователя кэшировать статический контент?yariksat wrote:А причем здесь браузер пользователя вообще?Это перечень файлов которые будет кешировать nginx а не браузер пользователя.jess23 wrote:Это не лучший вариант так как при внесении изменений в файлы, старая версия остается в браузере пользователя и после внесения изменений пользователь получит новую версию только по истечению срока кеша?yariksat wrote:Пункты 2 и 3 все правильно.Кеширование на стороне браузера не лучший вариант и для этого и существует nginx
Если применять версии для файлов, тогда это решить все проблемы или есть ещё нюансы в которых я не рекомендуете использовать кэширование?
Спасибо за ответ.
Второе не понял,уж что-то Вы вы такую словесную конструкцию построили что я в ней потерялся...
По поводу второго, Вы говорили что кэширование на стороне браузера не лучшая идея, если же использовать правило в котором зазначать версию файла, то браузер будет загружать новую версию, таким образом увеличиваем скорость обработки контента + внесения правок в статические файлы.
Re: Apache+Nginx кэширования для браузера
Ну так кеширование со стороны пользовательского браузера можно задать через файл .htaccess в корне сайта-форума
Я просто не понимаю зачем такой венегрет устраивать в конфиге никса.Да и сомневаюсь что оно в никсе будет работать так как Вы хотите - просто я так никогда не делал,даже в голову так сделать не приходило :) .В никсе настройте непосредственно то к чему он и предназначен,а в самом файле .htaccess настройте уже само кеширование в браузерах.ИМХО я так делал,пока у меня апач был.Ускорить загрузку Вашего сайта можно с помощью кэширования. Для решения этой задачи Вы можете воспользоваться модулем headers веб-сервера Apache. Он позволяет контролировать и изменять заголовки HTTP-запросов и HTTP-ответов. Вся суть в этом случае сводится к тому, что бы заставить браузер загрузить редко-изменяемые данные с сервера в локальный кэш всего один раз, а далее, при заходе на сайт, использовать данные из кэша. Можно установить кэширование для определенных типов файлов на строго определенное время, по истечению которого файлы будут загружены с сервера вновь. Делается это достаточно просто:Для файлов с указанными расширениями в конструкции FilesMatch устанавливается отдаваемый сервером заголовок Cache-Control и переменная max-age, в которой указывается время сохранения файлов в кеше в секундах. Добавьте или удалите расширения файлов, которые для Вас будут уместны в данном случае.Code: Select all
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$"> Header set Cache-Control "max-age=2592000" </FilesMatch>
Если какие-то файлы нет необходимости кэшировать, то просто не включайте их в список. Можно также запретить принудительно кэширование файлов, чаще всего отключают кэширование для динамических файлов, например различных сценариев. Добавьте ниже приведенный код в Ваш файл .htaccess, что бы отключить кэширование для скриптов, предварительно внеся актуальные изменения соответственно Вашему случаю:Code: Select all
<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch>