We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
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>