Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Ngnx кеширование файлов с другого сервера
Новая тема
Ответить
цитата
03/11/14 в 21:50
karbonv
Это вообще возможно? форум серверных админов ведь
Кэширование прописано в конфиге а не в .htaccess - все работает нормально, гугл выплюнул в гвт кучу ссылок css и jpg которые нужно закэшировать, проблема в том что все css находятся на других серверах - он их вытянул из скриптов баннеров, счетчиков и прочих скриптов, даже набор соц кнопок от яндекса отругал и сказал "не оптимизировано бдядь - нужно сократить и пережать сам jpg от Яндекса"
Можно ли всю это дело закэшировать по средствам ngnx? и как? дабы не ибаста с правкой самих скриптов
Ну да всем плюхи
цитата
03/11/14 в 22:01
Pentarh
да ну проще пареной репы. куда не плюнь в гугле "nginx proxy cache"
http://habrahabr.ru/post/124684/
цитата
03/11/14 в 22:35
karbonv
Тут кэширование на стороне юзера должно быть, а это кэширование сессии на самом серве, или я что то упустил?
цитата
03/11/14 в 22:58
Дартаньян
karbonv:
да никак ты это не сделаешь, разве что подгрузишь себе их js и сss.
цитата
03/11/14 в 23:07
karbonv
Этот вариант я и имел ввиду в самом конце, но
цитата
03/11/14 в 23:58
Дартаньян
есть еще один вариант, это подгружать их в js может выйдет наебать гугол спид пейдж.
цитата
04/11/14 в 00:34
karbonv
Ну да - это если счетчик сквозной и постойнный, а если это баннеры с ротацией?
цитата
04/11/14 в 00:54
karbonv
По идее решение должно быть проще, просто указать внешний домен/ы и расширения, так как ngnx работает по дефолту для своих доменов
или как то так
цитата
04/11/14 в 01:04
Stek
Никак это не сделать, забить просто. nginx может сжать только то, что отдает он сам. А счетчики и прочее - это другие сервера и т.п.
цитата
04/11/14 в 01:06
karbonv
Не сжать, а кэшировать у юзера - это не одно и то же
цитата
04/11/14 в 12:19
remote-admin-service
Если они проксируются так же через этот vhost, то не вопрос. легко сделать.
цитата
04/11/14 в 22:50
karbonv
remote-admin-service писал:
легко сделать.
Как?
Оффтопик:
Я вообще не использую проксирование, оно мне ненужно, у меня ничего не падает, и насколько я знаю это просто кэширует страницы сайта на сервере и используется именно для этого... как оно используется я уже по полочкам разобрал, НО! может я где то нублю, я не спорю
как этим методом можно кэшировать конкретноые расширения файлов с других серверов в кэше браузера своих юзеров?
цитата
04/11/14 в 23:52
Дартаньян
karbonv:
есть вариант наебать, добавь инклуд их сss в свой css также с js. Если работает, то с тебя пиво или куртизанки.
цитата
05/11/14 в 00:17
Pentarh
Заставить юзверя кешировать - это добавить кеширующие (и удалить некеширующие) хидеры в ответах сервера, который отдает объекты желаемого кеширования.
Соответственно, влиять на чужие сервера ты не можешь. Ты можешь завернуть эти объекты на свой сервер с помощью задорных и увлекательных костылей с помощью proxy module, rewrite module, content filter и прочих регэкспов. И отдавая уже со своего через прокси - вмешиваться в хидеры.
Но ставлю Jim beam, что у этих рекламщиков наебнутся каунтеры, если юзверя будет кешировать что не положено.
цитата
05/11/14 в 02:32
Дартаньян
Pentarh:
цитата
05/11/14 в 20:15
ravlio
Очень невнятная задача. Ни урлов, не примеров самого контента. Непонятно, насколько динамичен отдаваемый контент. Если он зависит от переменных окружения пользователя, таких как IP, User Agent, то закешировать такое невозможно, думаю, всем понятно, почему. А если это статические jpg. css, js, то можно хоть руками их прописать, хоть через прокси пропустить. Совсем другой вопрос — зачем. Но тебе должно быть виднее.
цитата
05/11/14 в 20:29
Дартаньян
ravlio:
все внятно, всякие там адсенсы или тизерки тупят адово.
цитата
05/11/14 в 21:20
karbonv
ravlio писал:
Очень невнятная задача
Читай правильно
Pentarh:
это долго, плюс еще и разбираться нужно... если решение готовое есть поделись
Дартаньян:
единственный кто понял, нахера все это нужно
цитата
05/11/14 в 21:55
ravlio
karbonv писал:
Читай правильно
Читал. Я только сейчас догадался, что у тебя есть эфемерный index.html в котором куча разных сторонних скриптов, из-за которых тупит загрузка основного контента. Если я таки понял твою задумку правильно, то ещё раз могу повторить, что закешировать это невозможно чисто технически, так как почти все сервисы динамические и учитывают ip пользователя, а у тебя вместо него будет передаваться ip сервера. То есть закешировать конечно можно, но есть вероятность, что гугл аналитикс не будет считать заходы, а гугл адсенс и тизерки тебя побанят.
Кеширование — это очень хорошо, но далеко не всегда его применение оправдано. К примеру, Nginx, кешируя jpg в памяти, позволяет снизить нагрузку на диск, кеширование результатов выполнения запросов MySQL в memcache позволяет снизить нагрузку на БД (но даже это уже очень спорный вопрос)
Кеширование же контента с внешних серверов — это, фактически, реализация граббера, который граббит всё сразу, либо, являясь прокси, грабит контент по требованию.
Если уж совсем на чистоту, то я могу предположить, почему у тебя может "тупить" сайт. Каждый запрос на сервер от клиента — это новое HTTP-соединение. Обычно в браузерах количество одновременных соединений лимитировано. Я точно не могу сказать, сколько где, в каждом браузере по-разному, но не более 10и одновременных соединений — это точно. Но суть в том, что, если у тебя в начале HTML-страницы (там где head) идёт загрузка множества каких-то тяжёлых скриптов/jss/имиджей, то остальное, то, что внизу, грузиться не будет, пока будет наполнен буфер коннектов. Отсюда могу дать совет — вынеси все тяжелые скрипты (типа счётчиков) в конец страницы. А если какой-нибудь блок тизеров должен отображаться в её начале и у него не предусмотрена отложенная загрузка (ну когда код можно загрузить в самом конце страницы, а он вставит рекламный блок в её начало), то, возможно получится спрятать его в iframe.
цитата
05/11/14 в 22:10
ravlio
Да, и ещё. Касательно того же гугла. Как бы ты не кешировал его контент у себя, с его серверов он будет грузиться всё равно быстрее, хотя бы потому что у гугла CDN по всему миру, Geo DNS и всё такое прочее. Поэтому многие наоборот хотлинкуют с гугла тот же jquery и остальные библиотеки.
цитата
13/11/14 в 17:42
Дартаньян
ravlio:
тем самым давая гуглу знать откуда пришел запрос.
цитата
16/11/14 в 19:04
ravlio
Дартаньян писал:
ravlio:
тем самым давая гуглу знать откуда пришел запрос.
При инклуде скриптов с гугла гугл сможет узнать только сайт и страницу, на которых эти скрипты инклудятся. Другое дело, что гугл реально может строить карты хождения пользователей хотя бы через свой браузер, или аналитику/adsense, которые стоят если не у тебя, то у сайтов, на которые/с которых твой траф ходит. Ага, гугл знает всё обо всех. Вас это тревожит? Вы хотите поговорить об этом?
Я лишь пояснил в контексте данного топика, почему гугл будет всегда быстрее по миру, чем любой сервер или даже CDN, которые можно купить на мастере
цитата
16/11/14 в 19:43
Дартаньян
ravlio:
ну да, нуда рефер никто не отменял.
цитата
24/11/14 в 22:37
karbonv
Всего то начать нужно было так
... дальше сам
server {
server_name google.com ввв.google.com;
цитата
25/11/14 в 00:35
Дартаньян
karbonv:
наркотики садят печень!
Стр.
1
,
2
>
последняя »
Новая тема
Ответить
Эта страница в полной версии