@hellowold1337

Как организовать кеш картинок при такой архитектуре?

Используем один сервер как хранилище для картинок, его настройки:

server {
    listen 80;
    listen [::]:80;
    server_name домен.рф;
    root /путь/к/картинкам/здесь;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

 location ~* \.(eot|ttf|woff|woff2)$ {
                add_header Access-Control-Allow-Origin *;
        }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

 large_client_header_buffers 4 16k;
    location /media/{

autoindex off;
        alias /var/stires/storage/app/public/;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }


    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}


Сервер на котором бекенд и блок nginx относящийся к картинкам:

location /storage/ {
            access_log    off;
            autoindex     off;
            limit_req zone=static burst=100 nodelay;
            proxy_pass http://домен.рф/media/;
            proxy_redirect off;
            expires      14d;
        }


Используем клауд. Проблема: не пойму как добиться выдачи картинок из кеша.
Что только не пробовал, по итогу -

<b>cache-control
	no-cache, private</b>
cf-cache-status
	BYPASS
cf-ray
content-type
	image
date
server
	cloudflare
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 2
Зачем вам кэш картинок
У вас HDD ? камон братишка сейчас 2022 (почти23)
в этом случае да большое количество даже маленьких картинок при параллельном чтение действительно просаживают вашу I-O тем самым вы замедляете работу своего сайта.
НО сдается мне что у вас ssd а скорее всего Nvme ибо они стоят нынче как грязь под ноктями.
Соответственно I-O диска немного ( тут используется сарказм) быстрее и не путайте пожалуйста скорость чтения со скоростью доступа ибо она еще больше чем просто скорость чтения и записи относительно HDD.
Что вы собираетесь закешировать и какой эффект вы пытаетесь от этого получить ?
Желательно с прфуами
А я вам дам свой пруф.
вы создаете в памяти раздел, закидываете туда весь сайт ( ну прям вот весь), мотнитуете его как диск.
И замеряйте, быстрей чем весь сайт в памяти вы уже не получите.
Итог будет я вам скажу печальный, разницы практически не будет от слова совсем ( кроме сжырания памяти).
Все уткнется в генерацию дом. А там ахиллесова пята это mysql
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
location /storage/ {
            limit_req zone=static burst=100 nodelay;
            proxy_pass http://домен.рф/media/;
            proxy_redirect off;
            expires 14d;
            proxy_cache staticcache_storage;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
            proxy_cache_valid 200 301 302 120m;
            proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_cache_revalidate on;
        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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