@chechogrom Well you’re not setting a max-age directive yourself, so I’m going to guess nginx will send a value of 0 by default.
This blog post by Harry Roberts is a good resource on cache control headers.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello everyone, I need to cache some images using nginx, I am doing my tests from homestead before uploading it to the server, this is my current configuration for my file /etc/nginx/sites-available/licitaciones.local
server {
listen 80;
listen 443 ssl http2;
server_name .licitaciones.local;
root "/home/vagrant/projects/licitaciones-sw/dev/migration/public_html";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location "/img/publica/empresas-logos/news_grises_web/* \.(webp)$" {
expires 182d;
add_header Cache-Control "public, no-transform";
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/licitaciones.local-error.log error;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
ssl_certificate /etc/nginx/ssl/licitaciones.local.crt;
ssl_certificate_key /etc/nginx/ssl/licitaciones.local.key;
}
This is the code that I added to cache the images
location "/img/publica/empresas-logos/news_grises_web/* \.(webp)$" {
expires 182d;
add_header Cache-Control "public, no-transform";
}
after restarting the nginx successfully when I go to the browser the images that are in the specified path have a max-age=0
Any idea that I am wrong, or that it may be happening, thanks in advance
Please or to participate in this conversation.