- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую всех.
Я небольшой спец в nginx, потому прошу помощи у гуру.
Есть настроенный nginx, который отдает из папки download файлы и при этом устанавливает заголовок expires допустим в 30 дней. Если происходит обращение к файлу test.rar с параметром nocache (т.е. test.rar?nocache), то файл не кэшируется - для него expires устанавливается значение epoch. Мне нужно еще сделать чтобы для определенной подпапки устанавливалось значение expires, например в 1 час.
Сейчас все это сделано так:
location ~* ^/download/cache/ {
internal;
expires 1h;
root /site.ru;
}
location ~* ^/download/ {
internal;
expires max; #30d
if ($request_uri ~ \?nocache$) {
expires epoch;
}
root /site.ru;
}
Подскажите, я правильно делаю? Мне кажется как-то не так надо.
Попробуйте после
Добавить
Не работает почему-то. Полный код:
location ~* ^/download/ {
internal;
expires 30d;
if ($request_uri ~ \?nocache$) {
expires epoch;
}
if ($request_uri ~ ^/download/cache/) {
expires 1h;
}
root /site.ru;
}
Не работает почему-то. Полный код:
location ~* ^/download/ {
internal;
expires 30d;
if ($request_uri ~ \?nocache$) {
expires epoch;
}
if ($request_uri ~ ^/download/cache/) {
expires 1h;
}
root /site.ru;
}
Странно, у меня работает.
Вам директива internal точно нужна? Попробуйте убрать, если нет.
Завтра проверю еще раз.
internal - точно нужна, через нее реализованы контролируемые скачивания файлов.
Да, дело было в internal. Заменил в коде на
if ($uri ~ ^/download/cache/) {
и все заработало.
Спасибо.
Избавляйтесь от if. Эта проверка осуществляется с каждым запросом к веб-серверу.
А можете привести пример вышенаписанного кода без if?
Не знал о таком способе. Попробовал - работает, только есть один момент, но попробую разобраться с ним сам.