Welcome! Log In Create A New Profile

Advanced

Проксирование с кэшем из CDN

August 04, 2020 01:44PM
Добрый день! Подскажите, пожалуйста, как правильно настроить проксирование с кэшем из CDN. Задача такая: есть CDN, с него нужно скачивать достаточной большой объем информации, но это достаточно дорого обходится, поэтому появилась такая мысль - поднять прокси на nginx, который будет проксировать запросы на CDN и кэшировать их. Файлы там статика, меняются крайне редко и размер файла может быть 200Гб и выше. Хотелось бы чтобы с CDN закачка через прокси шла только один раз, т.е. чтобы скачивал сам nginx и потом раздавал. Я тут промучился, сначала с rh-nginx114 - с ним толком не работало. Файлы в несколько ГБ вроде работали, 50ГБ - постоянные обрывы и т.д. Поставил 1.18 из оригинального репозитория - вроде дело пошло лучше, но хотелось бы убедиться, что все сделал правильно. Обычное кэширование мне не подходило, т.к. хосты начинают качать одновременно и получалось, что т.к. файлы большие все равно почти все уходило на CDN. Решил сделать через слайсы. Кэш вроде наполняется.

http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
....
proxy_cache_path /data/nginx/cache keys_zone=mycache:100m levels=1:2 max_size=1500g inactive=7d use_temp_path=off;
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 256 4k;
....
log_format cache_status '[$time_local] $remote_addr "$request" $upstream_cache_status';
access_log /var/log/nginx/cache_access.log cache_status;
....
gzip on;
gzip_disable "msie6";
....
gzip_proxied any;
....
include /etc/nginx/mime.types;
default_type application/octet-stream;
....
include /etc/nginx/conf.d/*.conf;

}

server {
listen 81;
resolver 172.17.19.10;
location / {
limit_rate 30m;
proxy_read_timeout 3600;

proxy_cache mycache;
proxy_pass http://cdnhost.tld$request_uri;

slice 30m;

proxy_cache_key $host$uri$is_args$args$slice_range;


proxy_set_header Range $slice_range;
proxy_http_version 1.1;


proxy_hide_header ETag;

proxy_cache_valid 200 206 301 302 7d;
proxy_cache_valid 404 1m;

proxy_set_header Host cdnhost.tld

proxy_ignore_headers "Set-Cookie";
proxy_ignore_headers Cache-Control;

proxy_temp_path /data/nginx/temp;
}
}


Подскажите, все ли правильно сделал? Будет ли работать так, как нужно?
Subject Author Posted

Проксирование с кэшем из CDN

Raice August 04, 2020 01:44PM

Re: Проксирование с кэшем из CDN

fox August 04, 2020 11:30PM

Re: Проксирование с кэшем из CDN

Raice August 05, 2020 12:04AM

Re: Проксирование с кэшем из CDN

Raice August 05, 2020 12:37AM

Re: Проксирование с кэшем из CDN

fox August 05, 2020 01:04AM

Re: Проксирование с кэшем из CDN

Raice August 05, 2020 01:21AM

Re: Проксирование с кэшем из CDN

oradba25 August 05, 2020 02:21AM

Re: Проксирование с кэшем из CDN

Raice August 05, 2020 02:39AM

Re: Проксирование с кэшем из CDN

Илья Шипицин August 05, 2020 03:48AM

Re: Проксирование с кэшем из CDN

Raice August 06, 2020 03:22AM

Re: Проксирование с кэшем из CDN

Raice August 07, 2020 04:46AM

Re: Проксирование с кэшем из CDN

edo1 August 23, 2020 05:11PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 64
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready