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

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пытаюсь разнести логи по нужным мне условиям. Можно ли уместить это в одном map?
Например так можно?
default 0;
"0:HTTP/1.0" 1;
"0:HTTP/1.1" 2;
"0:HTTP/2.0" 3;
}
Можно ли как-то так?
access_log /var/log/nginx/access.1.1.log combined if=$log2;
access_log /var/log/nginx/access.2.0.log combined if=$log3;
access_log /var/log/nginx/access.$log.log combined if=$log;
access_log /var/log/nginx/access.$log.log combined if=$log;
Так можно получить три разных лога из одного мапа?
---------- Добавлено 01.02.2017 в 20:48 ----------
Сделал как вы предложили - нгихс перезагрузился нормально, но логи не создались
---------- Добавлено 01.02.2017 в 21:05 ----------
пока разнес на три мапа (работает), но как то не красиво, может можно в один объединить?
access_log /var/log/nginx/access.1.0.log combined if=$log=1;
access_log /var/log/nginx/access.1.1.log combined if=$log=2;
access_log /var/log/nginx/access.2.0.log combined if=$log=3;
access_log /var/log/nginx/access.1.0.log combined if=$log=1;
access_log /var/log/nginx/access.1.1.log combined if=$log=2;
access_log /var/log/nginx/access.2.0.log combined if=$log=3;
Тоже не верное, сайты работают, но логи не создаются.
Источник, цитата:
"Синтаксис: access_log ...
...
...
Контекст: http, server, location, if в location, limit_except"
Как видим, в контекстах применения access_log нет map, следовательно, так сделать нельзя.
Но логи можно легко парсить по заданным условиям.
---
Виктор
"Синтаксис: access_log ...
Контекст: http, server, location, if в location, limit_except"
Как видим, в контекстах применения access_log нет map, следовательно, так сделать нельзя.
а никто и не пытается пихать access_log в мап, задача уместить условия для трех логов в одном мапе и потом как-то передать это в сервер
задача уместить условия для трех логов в одном мапе и потом как-то передать это в сервер
Не получится. В имя логфайла пихать переменные нельзя, а if тут работает только как 0 или не 0.
В общем, проще трех map решения не вижу.
UPD
Хм. А может и получится. Похоже что можно использовать переменные. Но тут есть ограничения:
пользователь, с правами которого работают рабочие процессы, должен иметь права на создание файлов в каталоге с такими логами;
не работает буферизация;
файл открывается для каждой записи в лог и сразу же после записи закрывается. Следует однако иметь в виду, что поскольку дескрипторы часто используемых файлов могут храниться в кэше, то при вращении логов в течение времени, заданного параметром valid директивы open_log_file_cache, запись может продолжаться в старый файл.
при каждой записи в лог проверяется существование корневого каталога для запроса — если этот каталог не существует, то лог не создаётся. Поэтому root и access_log нужно описывать на одном уровне:
server {
root /spool/vhost/data/$host;
access_log /spool/vhost/logs/$host;
...
Не получится. В имя логфайла пихать переменные нельзя
Можно, даже в доке есть пример с $host в пути access_log
Можно, даже в доке есть пример с $host в пути access_log
Да, Вы правы.
Уже поправил. То если используется буфер для логов то нельзя переменные использовать.
в целом - да
3 map наверное единственный вариант