Comments 18
А почему не скажем cloudflare или cloudfront. _https://www.datanyze.com/market-share/site-delivery/Kazakhstan/cloudflare-cdn-market-share
Насколько я знаю оба провайдера дают API для провайдеров, также первый еще и сертификат выдает. Есть ли какие то преимущества вашей реализации?
0
По ряду причин, описанных в документации к lua-nginx-module из состава OpenResty, выгоднее всегда использовать локальные объявления.
Для того, чтобы быстро проверить объявления в вашем коде, можно воспользоваться утилитой lua-releng от тех же авторов.
Вывод для вашего кода:
Для того, чтобы быстро проверить объявления в вашем коде, можно воспользоваться утилитой lua-releng от тех же авторов.
Вывод для вашего кода:
vladislav@dt1:~$ ./lua-releng init.lua WARNING: No "_VERSION" or "version" field found in `init.lua`. Checking use of Lua global variables in file init.lua... op no. line instruction args ; code 2 [2] SETGLOBAL 0 -1 ; getCdnHosts 4 [11] SETGLOBAL 0 -2 ; stringToTable 6 [27] SETGLOBAL 0 -3 ; valueExists Checking line length exceeding 80... vladislav@dt1:~$ ./lua-releng body_filter.lua WARNING: No "_VERSION" or "version" field found in `body_filter.lua`. Checking use of Lua global variables in file body_filter.lua... op no. line instruction args ; code 1 [1] GETGLOBAL 0 -2 ; getCdnHosts 6 [1] SETGLOBAL 0 -1 ; allCdnHosts 7 [2] GETGLOBAL 0 -7 ; stringToTable 13 [2] SETGLOBAL 0 -6 ; replaceHosts 23 [3] SETGLOBAL 0 -9 ; cdnHost 27 [4] SETGLOBAL 0 -13 ; replaceEof 28 [6] GETGLOBAL 0 -9 ; cdnHost 31 [6] GETGLOBAL 0 -17 ; valueExists 32 [6] GETGLOBAL 1 -1 ; allCdnHosts 33 [6] GETGLOBAL 2 -9 ; cdnHost 38 [8] GETGLOBAL 1 -6 ; replaceHosts 48 [9] GETGLOBAL 8 -9 ; cdnHost 56 [13] SETGLOBAL 8 -13 ; replaceEof 66 [21] GETGLOBAL 5 -1 ; allCdnHosts 91 [28] SETGLOBAL 4 -13 ; replaceEof 94 [32] GETGLOBAL 1 -13 ; replaceEof Checking line length exceeding 80... body_filter.lua:3: cdnHost = ngx.var["cookie_" .. ngx.var["cdn_project"] .. "_cdn_host"] body_filter.lua:18: local scriptStr = "<script src='/cdn.js' type='text/javascript'></script>" .. body_filter.lua:21: "getFastestHost('" .. table.concat(allCdnHosts, "', '") .. "')" .. body_filter.lua:25: local newStr, n, err = ngx.re.gsub(ngx.arg[1], "(</body>)", scriptStr .. "$1", "i")
+1
Если я правильно понимаю, нужна автономка, а это сильно дороже.
0
Ещё не факт, что это вопрос решит. Оптимальный по числу хопов маршрут не всегда наилучший по скорости или стоимости трафика, так что вы всё правильно сделали.
0
Вообще BGP как раз даёт возможность получать оптимальный с точки зрения провайдера-получателя траффика маршрут, если пириться с ним напрямую. Позволяет, в том числе, делать много стыков с одним и тем же провайдером в географически разных регионах, и всё это даже может работать, если они не накосячат в настройках маршрутизации внутри своей сети.
Конечно, есть и минусы, например — нельзя перенаправить часть нагрузки, только всё или ничего. Нужна своя автономка, нужно пириться, нужно уметь настраивать всё это.
Конечно, есть и минусы, например — нельзя перенаправить часть нагрузки, только всё или ничего. Нужна своя автономка, нужно пириться, нужно уметь настраивать всё это.
+1
UFO just landed and posted this here
Спасибо, идея хорошая. У нас файлы размещаются аналогично, только используем мы nginx вместе с tmpfs вместо memcached.
А заливку фоток на множество серверов каким образом делаете?
А заливку фоток на множество серверов каким образом делаете?
0
Шикарно. А если к всему этому добавить возврат статистики по пингам обратно на центральный сервер для статистики и мониторинга и добавить обработку не 200-х кодов переключением на второй по доступности хост, либо вообще реализовать подгрузку картинок через JavaScript на стороне клиента, разбрасывая нагрузку по запросам пропорционально пингам и при этом отправляя при переходах статистику по отличным от 200 кодам обратно в центр, решение будет совсем замечательным.
И вопрос: а почему не использовали полный редирект на точку присутствия у соответствующего провайдера и не стали раздавать статику с него, при этом проксируя динамику в центр. Ведь на связность в точках присутствия больше влияния чем на связность клиента и сервера? Да добавляется лишний элемент, который ещё нужно мониторить, но с центра кэшированием можно снять часть нагрузки…
И вопрос: а почему не использовали полный редирект на точку присутствия у соответствующего провайдера и не стали раздавать статику с него, при этом проксируя динамику в центр. Ведь на связность в точках присутствия больше влияния чем на связность клиента и сервера? Да добавляется лишний элемент, который ещё нужно мониторить, но с центра кэшированием можно снять часть нагрузки…
0
Это вот этот пиксель?
Mixed Content: The page at 'https://kolesa.kz/' was loaded over HTTPS, but requested an insecure image 'http://sync-eu.exe.bid/image?source=mgid&id=h4ly0I_tPEx7'. This content should also be served over HTTPS.
0
Sign up to leave a comment.
Что нам стоит CDN построить