nginx rewrite
имеется
Код:
location /{ Код:
rewrite /get/(.*)$ /get.php?url=$1 last; |
Ответ: nginx rewrite
При каких ссылках конкретно не срабатывает, при всех?
Выглядят rewrite'ы грустно на самом деле, как буд-то кто-то писал endpoint'ы не думая.. Да и так понимаю ты сервишь всякие ресурсы и файлы используя php? Если там скрипт тупо выдаёт файлы, то в разы лучше посмотреть в сторону try_files директивы в nginx, чтобы избежать не нужного стрима данных через php сокеты, что нагружает CPU и RAM зазря. Также упрости: Код:
rewrite /([0-9]+)/Web\.swf$ /$2?Web.swf last; |
Ответ: nginx rewrite
Цитата:
По поводу не работающего. Не работает так: Код:
https://steamcraft.landrays.com/get/http%3A%2F%2Fwww.biletomsk.ru%2F_files%2Fnews%2Fimages%2Fc67d52407cf4b16e95d41e7d59cb52a3.jpg Код:
https://steamcraft.landrays.com/get.php?url=http%3A%2F%2Fwww.biletomsk.ru%2F_files%2Fnews%2Fimages%2Fc67d52407cf4b16e95d41e7d59cb52a3.jpg Цитата:
|
Ответ: nginx rewrite
|
Ответ: nginx rewrite
Мне нужно кеширование и нужно перекачать изменившийся файл.
|
Ответ: nginx rewrite
В игре чатика нет? А то в бою хочется написать что-нибудь булчанам, а нельзя :(
|
Ответ: nginx rewrite
Добавь ^ ко всем rewrite вначале строки.
PHP код:
PHP код:
Такой метод стабильно работает для кеша и решил мне много проблем с очень похожими ситуациями как у тебя. Относительно аватарок, можно вообще сделать proxy на CDN, и если файл там не найден, но редиректнит обратно на ссылку с запросом генерации аватарки в твоем скрипте. Скрипт сгенерит аватарку выдаст клиенту и паралельно зальет ее на CDN. И следующий запрос получит ее с CDN сразу. |
Ответ: nginx rewrite
Попробую с ^ спасибо, а по поводу заголовков и expires - я использую cloudflare, все запросы идут через него, его кэш может обновится через год, если я такой expires поставлю.
UPD: с ^ тоже не срабатывает |
Ответ: nginx rewrite
Цитата:
|
Ответ: nginx rewrite
Цитата:
Также я не знаю как CloudFlare отвечает с заголовками, но думаю при заливке на него, ты можешь сам установить нужные Meta данные для Modified кеширования тоже. |
Ответ: nginx rewrite
т.е. 1000 пользователей буду запускать игру и качать 100 файлов и на каждый будет идти запрос user=>cloudflare=>server=>cloudflare=>user пусть даже для валидации? Да нафиг надо. Мне всего то надо сделать статическую ссылку на скрипт.
|
Ответ: nginx rewrite
Цитата:
nginx > php (cpu, ram) > check file > API request > download > save > serve Если есть картинка: nginx > php (cpu, ram) > check file > serve ? Я предлагаю: Если нету картинки: nginx > perm_redirect(cdn) > 404, temp_redirect(php) > php > API request > download > save > redirect_back Если есть: nginx > perm_redirect(cdn) Таким образом у тебя php будет только качать картинку и заливать, и проверка будет не на php. Для того чтобы сервить картинку, что будет 99.8% запросов, у тебя вообще никакой нагрузки на сервер не будет. А сейчас у тебя php должен проверять наличие файла, если он на cdn ты как проверяешь, запрос из php делаешь? Тогда у тебя IO и потоки из pool'а тупо отстаивают. Такой подход имеет минимальную нагрузку на твой сервер, иначе у тебя пользы от CDN вообще никакой, т.к. ты все равно сервишь из PHP тем более через прокси. Вообще ноль пользы от php. Используя Permanent редирект (если картинка под ID хранится и никогда не изменится ID картинки), то это ваще броузером будет resolve'ится, и даже сервер твой трогаться не будет для картинок. В таком случае есть реальная польза от CDN. |
Ответ: nginx rewrite
Я если честно ничего не понял, придется много гуглить. Но наверное не в ближайшие дни. Потом к этой задаче вернусь.
Моя логика такая - я обращаюсь через CDN на свой сервер по url для скачки картинки. php скачивает картинку, отдает cdn. Если ссылка статическая, то cdn ее кеширует и отдает игроку. В следующий раз по этой ссылке cdn не будет запрашивать файл с моего сервера. Как-то так... Статической ссылку пока не вышло сделать. Не пойму почему не работает. |
Ответ: nginx rewrite
Цитата:
|
Ответ: nginx rewrite
Ну так у меня и устроено. Осталось решить проблему со статической ссылкой. Вообще это можно настроить в панели cloudflare... наверное так и сделаю.
Cloudflare работает через dns, так что я просто указал для каких доменов включить трафик через него и все. Работаю со своим доменом как и работал, у него просто ip адрес сменился и весь трафик идет через cloudflare. Указал агрессивное кеширование на 1 год )) UPD: неужели наконец счастье) Жаль на домен всего три правила можно на бесплатном аккаунте |
Часовой пояс GMT +4, время: 01:00. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot