• Есть возможность устранить ошибку nginx "alias" cannot be used in location "/hls/" where URI was rewritten?

    @xtreme
    Снимаю порчу по SSH :)
    Сильно не вникал, но... не пробовал вынести rewrite выше уровнем в server? Сейчас у тебя какая-то логическая петля получается - запрос попадает в location, там ему есть алиас, а потом приходит реврайт и все портит. Ну и еще непонятен немного смысл данного реврайта. Берем урл /hls/ololo/trololo и переписываем его в /hls/ololo/trololo ? Он вообще нужен?
    Ответ написан
  • Стоит ли покупать Macbook PRO с такой конфигурацией?

    @xtreme
    Снимаю порчу по SSH :)
    "Легкая работа, никаких тяжелых файлов" и тут же "редактирование видео"? :) На ноуте 7-летней давности?
    MBP конца 2010 года - это наиболее старый MBP, который поддерживается High Sierra-ой. Т.е. есть очень большая вероятность, что следующая MacOS туда уже не встанет.

    Вот под "офисные задачи" и "интернет серфинг" - его, наверное, хватит надолго. Особенно, если не заморачиваться обновлениями. (Но тогда и дыры в нем тоже никто не будет фиксить)
    "После покупки поставить дополнительный SSD и заменить батарею." - а есть смысл брать ноут подешевле, чтобы потом в него вложить минимум половину его стоимости? Имхо, проще сразу взять новый. Ну или mac mini, который обойдется не намного дороже получившейся стоимости старого ноутбука.

    P.S. Извините за старперство и ворчание, но... Сколько лет я слышу "компьютер/ноутбук для учебы" - столько лет и не понимаю, что это за зверь такой? В 99% наблюдаемых мной случаев школьники и новоиспеченные студенты так оправдывали покупку железа родителям (и чтобы обязательно видеокарта была предтоповой или топовой, а то "учеба" тормозить будет).
    Наверное, все же стоит определиться, для чего нужен ноут. Если он нужен реально для учебы - это любой ноут, который умеет запускать ПО из пакета MS Office и отправлять на печать, да набивать код в IDE и компилить его. Редко какому студенту надо реально по учебе "редактировать видео" и профессионально владеть фотошопом. Максимум - это обрезка видеоролика, снятого на мобилу, чтобы залить его на youtube и обрезать фото, либо убрать красные глаза (это вроде давно не проблема). С этим справятся встроенные в любую современную ОС средства.
    Если действительно решили заняться чем-то профессионально (фотошоп, lightroom, premier) - покупайте себе нормальный инструмент за нормальные деньги. В этом случае инструмент себя окупит очень быстро, помогая в работе, и начнет приносить прибыль. А если просто хочется "штоб был мак" и есть лишние деньги на его покупку - тогда вперед к товарищу. Но учтите, что если понадобится выжать из него больше, чем работа с документами и серфинг - придется рано или поздно (скорее рано) менять инструмент, а быстро "скинуть" старый ноут у вас не получится. Так и зависнет он мертвым грузом (собственно, как сейчас он висит у вашего товарища).
    Ответ написан
  • Почему Unit openvpn.service failed to load: No such file or directory.?

    @xtreme
    Снимаю порчу по SSH :)
    sudo systemctl start openvpn@server.service
    Вместо 'server' вписать имя файла конфигурации, если он у вас называется не server.conf.
    Т.е. чтобы запустить еще один сервер на той же машине - делаете конфиг-файл server-udp-20001.conf, а затем уже systemctl start openvpn@server-udp-20001.service
    Ответ написан
  • 525 ошибка при коннекте NodeJS серверу?

    @xtreme
    Снимаю порчу по SSH :)
    Если обратиться к базе знаний CF, там отлично написано английским по-белому:

    Ошибка 525 возникает, когда провалилась попытка установления SSL-соединения между CF и твоим сервером. Это означает, что у тебя в настройках выставлено "use Full SSL" (это когда SSL используется не только от клиента до CF, но и от CF до бэкенда) и CF не может к тебе подконнектиться, поскольку не ожидает, что с другой стороны обычный HTTP.

    Распространенные причины:
    - Твой бэкенд не поддерживает SNI или не сконфигурирован для него
    - Способы шифрования, которые принимает CF и которые умеет твой бэкенд - не совпадают нигде
    - Твой бэкенд не сконфигурирован на прием SSL вообще

    Как один из методов решения проблемы - используй не FullSLL, а Flexible SSL в настройках. В этом случае тебе не надо будет включать SSL на твоей стороне.
    Но, вообще, гонять даже от CF открытый трафик - несколько неправильно, я считаю. Можно потратить несколько минут и сделать LetsEncrypt-сертификат, чтобы получить валидный SSL.
    Ответ написан
  • Как добавить расширение в uri в nginx?

    @xtreme
    Снимаю порчу по SSH :)
    location ~ ^/zbx/ {
      try_files $uri $uri.pdf =404;
    }


    Естественно, что root должен быть прописан, иначе файлы будут искаться в /etc/nginx.
    Инфо: https://nginx.ru/ru/docs/http/ngx_http_core_module...
    Ответ написан
  • Как сделать, чтобы Jenkins отправлял по фтп только последний коммит?

    @xtreme
    Снимаю порчу по SSH :)
    Отправляю файлы с помощью rsync (ssh или rsyncd):
    - отправляются только новые файлы или измененные
    - файлы меняются атомарно, т.е. пользователь, который сделал запрос во время заливки файлов - гарантировано получит либо старый файл, либо новый. С обычным копированием по фтп есть вероятность зацепить не полностью залитый файл. А если этот неполный файл вдруг зацепит какой-нибудь opcache - ошибок будет выше крыши.
    Ответ написан
  • Программа, утилита, напоминания через каждые N дней?

    @xtreme
    Снимаю порчу по SSH :)
    А разве календарь в Android не умеет напоминать? Очевидное же решение.
    Ответ написан
  • Почему Squid3 некоторое время работает, а потом перестаёт?

    @xtreme
    Снимаю порчу по SSH :)
    Я, возможно, выпендриваюсь... но, имхо, ставить squid для акселерации - это же прошлый век.
    Есть же nginx для таких дел. И настройка гораздо проще и кеширует на ура.

    А по делу - у тебя squid пытается зацепиться за 80-й порт, но он уже кем-то занят.
    Ответ написан
  • Почему в Safari тормозит github.com?

    @xtreme
    Снимаю порчу по SSH :)
    Дело в Роскомнадзоре. Видимо, в порыве нежности, они заблокировали ocsp.digicert.com, к которому лезет Safari (да и много кто еще), чтобы проверить отозванные сертификаты.
    Временно решил у себя прописыванием в /etc/hosts другого их адреса
    72.21.91.29 ocsp.digicert.com

    Статья, которая помогла решить вопрос тут:
    www.shortcut.ru/2016/10/03/when-in-doubt-use-sniffer
    Ответ написан
  • Как лучше всего организовать рассылку писем объемом до 100.000 в месяц?

    @xtreme
    Снимаю порчу по SSH :)
    Базовые очевидные вещи - SPF/DKIM/DMARC - это само собой разумеющееся. Мануалов - вагон. Сам где-то с полгода назад здесь же на тостере писал элементарные вещи для настройки почтового релея.
    100.000 в месяц - это примерно 3500 писем в день. Не сильно большая цифра.
    Думаю, сначала стоит понять, надо ли отсылать столько и что это будет.
    Если это рекламная рассылка с некоего сайта по базе мыл - если эти люди никогда не были на этом сайте - вся рассылка автоматически влетит в спам и дальше можно не читать.
    Если это рассылка реальным посетителям некоего сервиса - крайне желательно, чтобы рассылка шла с адреса, домен которого совпадает с доменом сервиса.
    Далее - если мы просто настроим сервер на отправку и начнем валить по 10000 и больше писем в день - ничего хорошего не выйдет. У популярных почтовых сервисов тоже есть системы, которые ведут базу серверов и если вдруг появляется какой-то новый сервер, который рассылает сразу кучу писем - этот сервер, как минимум, попадает в подозрительные. Если же начать с малого количества, каждые несколько дней наращивая количество - сервер заработает себе репутацию, что избавит от проблем с отправкой. Опять же - без спама и непрошеной почты, иначе все труды пойдут лесом.

    В письмах обязательно заголовок List-Unsubscribe с урлом для отписки от рассылки (популярные почтовики по нему рисуют кнопку отписки), помимо этого обязательно продублировать данную ссылку в тексте письма на видном месте с объяснением, что при клике на эту ссылку пользователь откажется от рассылки. Урл должен работать (отдавать корректный ответ HTTP 200), не должен заставлять пользователя куда-то логиниться и совершать дополнительных действий. Алгоритм четкий - пользователь кликнул на линк - открылся браузер, в нем страница с оповещением, что пользователь "такой-то" отписан от рассылки. И главное - после отписки - никаких рассылок этому пользователю, иначе подпортите репутацию у почтовиков.

    Если подходить серьезно - вам придется изучить особенности каждого популярного почтового сервиса. Завести на каждом из них аккаунт постмастера, чтобы отслеживать качество рассылок и вовремя принимать меры по улучшению. Например, mail.ru - очень любят, когда настроен DMARC и есть почта для отсылки отчетов постмастеру (FBL). Вам же придется после каждого цикла рассылки выгребать из этого ящика отчеты о недоставке и спам-репорты и оперативно исключать упоминаемые там адреса из списка рассылки (уменьшите у себя список, плюс, покажете почтовому сервису, что следите за своей рассылкой).
    Яндекс.почта - на удивление, вполне лояльна к любой почте, принимая все подряд, но безжалостно запихивает рассылку в папку спам при малейшем подозрении на неправильность. Крайне адекватный сервис постмастера, на котором можно посмотреть много важных параметров рассылки - где находятся письма у пользователей, как они туда попали, насколько интересны письма пользователям (процент просмотра письма) и т.д. Крайне полезный инструмент. Там же можно увидеть список пользователей, которые жмакнули "Спам" у себя в ящиках.
    Google - про существование сервиса постмастера у Гугла я сам только недавно узнал, но ничего особо интересного там не увидел.

    Насчет тайм-аутов - я лично использую дефолтные таймауты exim. При нормально раскачанном сервере их вполне хватает. Для примера сейчас "рабочая лошадка", рассылающая уведомления пользователям, за сутки разослала 93000 писем - от 1500 до 8000 писем в час.
    Ответ написан
  • Как обуздать шрифты в Apple Safari?

    @xtreme
    Снимаю порчу по SSH :)
    Извините, может я не в тему...
    Пишу вам из 2016 года. В наше время Apple давно не разрабатывает свой браузер под Windows. Последний релиз был в 2012 году, примерно после IE9 (это где-то 4 года назад от момента написания данного комментария). В то же время Chrome убежал за 4 года далеко вперед, даже движок сменил еще в 2013 году на Blink. Он, конечно, на основе WebKit, но не WebKit. А Apple с тех пор пилит свой браузер только под OSX и под iOS, где и радует нормальным рендерингом шрифтов своих пользователей.
    А у вас там как? Windows XP еще в ходу? Или уже переходите на Windows 7? :)
    Ответ написан
  • Как получить в linux информацию по доступным для скачивания пакетам?

    @xtreme
    Снимаю порчу по SSH :)
    Эххх. Когда я был молод, я тоже думал, как искать новые программы и ставил все подряд :)
    Debian-based дистрибутивы, например, могут тебе подсказать нечто по ключевым словам. Например, apt-cache search nginx выдаст не только nginx, но и разнообразные пакеты, которые могут быть полезны (gitweb, gunicorn, fcgiwrap)
    В RPM-based дистрибутивах, примерно то же самое, но поиск уже не такой "полоумный", т.е. yum search http выведет все пакеты. в описаниях которых есть сочетание букв "http".
    Даже если ты не совсем помнишь название пакета - можно выполнить поиск по части его названия, а затем уже пробежаться глазами.
    Но, сказать честно, непонятно, что именно надо. Надо узнать имена всех пакетов? Просто залезь браузером по урлу репозитория и смотри сколько угодно.
    Если тебе надо узнать, для чего нужен тот или иной пакет - есть yum info
    Если надо понять, чем можно решить ту или иную задачу, если ты с таким еще не сталкивался - тут без гугла вряд ли обойдешься.
    Ответ написан
  • Nginx front + apache back. Как настроить под разных пользователей?

    @xtreme
    Снимаю порчу по SSH :)
    А на директории стоит 755 хотя бы? Если бит запуска не стоит на директориях (на всем пути от корня до статики) -  nginx не сможет получить туда доступ, даже если на файле стоит 644.
    И, кстати, почему такой древний nginx? В мейнлайне сейчас 1.9.9, а в 1.6.7 много чего не хватает по сравнению с версиями 1.9...
    Ответ написан
  • Провайдер заблокировал DNS траффик. Как обойти?

    @xtreme
    Снимаю порчу по SSH :)
    А у вас в качестве DNS используется не 8.8.8.8? В данный момент испытываю вместе со множеством клиентов (но не всеми) из средней полосы России данную проблему.
    Ответ написан
  • Как, имея на руках бэкап /var/lib/mysql/sitename восстановить базу данных sitename?

    @xtreme
    Снимаю порчу по SSH :)
    ibd копировал с источника при выключенном MySQL? В конфиге старого MySQL был включен innodb-file-per-table?
    Если ты их копировал с включенным MySQL не используя xtrabackup - тогда с очень большой вероятностью ты не заведешь БД. Можно попробовать создавать пустые таблицы с такими же параметрами, как на источнике, затем выключать MySQL, подсовывать туда ibd и т.д.
    Если в конфиге старого MySQL не был включен innodb-file-per-table - тогда все твои данные остались вообще в корне БД в ibdata1.
    Ответ написан
  • Nginx + gunicorn + ssl. Разные конфиги для разных поддоменов на одном сертификате. Это возможно?

    @xtreme
    Снимаю порчу по SSH :)
    upstream subexample.com {
    и
    proxy_pass http://sub.example.com;
    Тут непонятно, зачем описывать апстрим и не использовать его. Или это опечатка?
    Второе - непонятно назначение конструкции:
    if (!-f $request_filename) {
      proxy_pass http://sub.example.com;
      break;
    }

    Читаю так - если файл не существует, то сделать proxy_pass на самого себя и получить бесконечный редирект (это в случае, если там не опечатка и проксится на sub.example.com), либо по http-протоколу обратиться к бэкенду, который висит на сокете и тогда получим фигню, потому что результирующий урл довольно необычного вида http://unix://....
    Сразу возникает вопрос... а если файл найден? Откуда его отдать? Других опций как-то не видно.

    Я бы порекомендовал:
    - не называйте апстримы также, как реальные серверы - одна ошибка и получим непредсказуемое поведение, которое очень сложно отловить. В идеале, апстримы можно назвать одним словом, чтобы не путать с именем сервера.
    - Постарайтесь обойтись без if в конфиге, особенно для проверки существования файла. Есть же try_files.
    Ответ написан
  • Ошибка 502 Bad Gateway на POST запросах. Почему?

    @xtreme
    Снимаю порчу по SSH :)
    child 3275 exited on signal 9 (SIGKILL) after 89.296408 seconds from start

    Что-то PHP делает с залитым вами файлом целых 90 секунд, после чего fpm его успешно убивает, как повисший. Смотрите обработку файла картинки при POST-запросе. Возможно не стоит обрабатывать его сразу, а для начала сохранить оригинал, чтобы отпустить коннект, а уже потом проводить над ним какие-то магические действия в виде обрезки, конвертации, накладывания водяных знаков и т.д.
    Ответ написан
  • Как лучше изменять php-файлы на рабочем проекте?

    @xtreme
    Снимаю порчу по SSH :)
    Когда заливаете через CMS, файл по сути заливается во временный файл, а затем происходит move, который, в случае, если временный файл и целевой находятся на одном разделе файловой системы является атомарным (т.е. либо в один момент времени это старый файл, либо новый), либо, если происходит move между разделами - все равно происходит очень быстро.
    В случае, когда вы заливаете по ftp - сначала удаляется старый файл, т.е. он становится недоступным, а затем уже начинает подливаться новый. В этот момент и происходит "лажа".
    Выходов несколько:
    - про первый (не сказал бы, что он очень простой, но все равно довольно эффективный), вам уже написал D' Normalization во втором пункте.
    - второй - разливать файлы не по фтп, а, допустим, с помощью rsync из некоей директории, куда вы уже заливаете по ftp. То бишь - залили, проверили, что ничего больше заливать не надо - запустили на сервере rsync из этой директории в продакшн. rsync также копирует различающиеся файлы сначала во временный файл, а затем "мувит" на постоянное место.
    - третий - может быть с косяками, использовать, например, opcache в PHP и выставить в параметрах opcache не трогать файл, пока он не состарится, например, на несколько секунд. Секунды определяются эмпирически, в зависимости от скорости вашей заливки.
    - четвертый... а фиг знает, придумать можно много всего. Например, хранить файлы в SVN или GIT-репозитории, и по commit/push запускать post-hook, который, например, будет синхронизировать файлы тем же rsync или использовать какой-нибудь Jenkins... масса вариантов, главное не трогать самому файлы продакшна.
    Ответ написан
  • Как в Ap-hotspot перенаправить запросы на nginx?

    @xtreme
    Снимаю порчу по SSH :)
    Если для wifi выделена отдельная подсеть - тогда в bind можно настроить разные view для разных адресов и, соответственно, отдавать разные ответы на разные view.
    Гуглите bind9 split dns.
    Ответ написан
  • Почему не работает error_page в nginx?

    @xtreme
    Снимаю порчу по SSH :)
    Рискну предположить, что дело в отсутствии fastcgi_intercept_errors on; в секции с php.
    nginx.org/ru/docs/http/ngx_http_fastcgi_module.htm...
    Ответ написан