Ответы пользователя по тегу Nginx
  • Как настроить стриминг видео большого размера в Nginx?

    @dxp
    Web developer
    Неплохо было конечно запостить конфиг nginx полностью (так как самое интересное как раз пропущено)
    Попробую предположить: вы используется python для авторизации доступа к видео и после авторизации выдаете файл средствами python?
    Если так, то есть несколько более гуманных способов:
    • использовать в скрипте отдачи видео HTTP заголовок X-Accel-Redirect вместо отдачи самим скриптом (емнип у Джанго даже есть готовый модуль для этого) - думаю самое простое
    • отдавать видео самим nginx (а он прекрасно отдает файлы и в 10Гб) а для авторизации воспользоваться директивами nginx secure_link или AuthUrl -это несколько сложнее но лучше работает под большой нагрузкой
    Ответ написан
    Комментировать
  • Как читать log-файлы access.log?

    @dxp
    Web developer
    логи легко читаются:
    5.9.89.80 - ip клиента
    - - - данные http авторизации
    [09/Jan/2019:18:52:40 +0300] - дата и время запроса
    "GET http://shaiyaresurgence.com/en/?DT9FBEYS4L71I1P8OS HTTP/1.1"
    - сам запрос
    499 - код ответа сервера
    0 - кол-во переданных от сервера байт
    "-" - http referer
    "Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+"
    - user agent

    по факту - на 99% это запроса от бота:
    * ip адрес 5.9.89.80 - из пула хостера Hetzner
    * 499 - бот не дождался ответа сервера и сразу закрыл соединение
    * да и запросы некорректные (если стандартный формат лога не меняли) - там не должно быть протокола и хоста, то есть вместо
    "GET http://shaiyaresurgence.com/en/?DT9FBEYS4L71I1P8OS HTTP/1.1"
    должно быть "GET /en/?DT9FBEYS4L71I1P8OS HTTP/1.1"

    - самое простое забанить ip на firewall

    по поводу logrotate:
    Обычно он запускается всего 1 раз в сутки (скрипт лежит в /etc/cron.daily) и сразу по достижению 5М ничего не произойдет. Более того параметр delaycompress говорить что первая копия (*.log.1) архивироваться не будет, сожмется только вторая.
    хотите - можете перенести /etc/cron.daily/logrotate в /etc/cron.hourly и запуск logrotate будет каждый час
    Ответ написан
    Комментировать