• Русскоговорящие группы про IT в Telegram?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Комментировать
  • Пытаюсь настроить Nginx gunicornb Flask, gunicornb при запуске невидит Flask. Почему?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Пакеты, установленные внутри virtualenv, доступны только при активации virtualenv. За пределами их, по умолчанию, нет. Запуск интерпретатора вне virtualenv обращается за пакетами в глобальные системные директории, а не в virtualenv.

    gunicorn нужно установить через pip внутри virtualenv и вызывать его из virtualenv/bin/
    docs.gunicorn.org/en/stable/deploy.html#using-virt...
    Ответ написан
    Комментировать
  • Как организовать почтовую рассылку с Mailgun с основного домена?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Получатели писем видят From, а не Sender. Укажите любой необходимый From в заголовок отправляемого письма, а само письмо отправляйте через предложенный поставщиком сабдомен. Это распространенная практика.
    Ответ написан
    3 комментария
  • Селекты из таблицы на 5 млн строк. Если разбить её на 100 таблиц - будет выигрыш в производительности?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Прироста не будет.
    Но давайте посмотрим на проблему под другим углом:

    5кк строк - это ничтожное кол-во. Если у вас происходят селекты по 30 секунд, значит либо у вас не выставлены правильные индексы на те колонки, которые вы селектите, либо вы совершаете LIKE, начинающиеся с %. Индексы не используются при запросах LIKE %...%. Только при LIKE ...%

    Ещё одна возможная причина - это хранилище. Посмотрите, не упирается ли всё в этот момент в диски. Если окажется, что в момент тяжёлых запросов у вас высокий iowait, попробуйте мигрировать на площадку с SSD.
    Ответ написан
    Комментировать
  • Tmp_table_size и tmpdir = /dev/shm?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Представьте, что tmp_table_size - это ваш RAM, а tmpdir - это ваш swap.
    Если в вашей операции участвует tmp-таблица, и её размер начинает выходить за пределы tmp_table_size, она переносится на диск, чтобы продолжать работать.

    Если у вас много неиспользуемой RAM, вы можете значительно увеличить tmp_table_size, причём не прибегая к /dev/shm, поскольку в нём не окажется никакого смысла.
    Только не забудьте пропорционально увеличить и max_heap_table_size, поскольку он распространяется и на tmp-таблицы, ведь до перехода на диск они работают на движке MEMORY.

    Если у вас в таблицах используются поля TEXT/BLOB, то tmp-таблицы, связанные с ними, всегда будут размещаться на диске. Если ваше приложение зависит от полей TEXT/BLOB и вам очень часто приходится сталкиваться с tmp-таблицами, то размещение на /dev/shm оправдано. В этом случае tmp_table_size можно оставить низким.
    Ответ написан
  • Что будет если SWAP файл переполнится?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    При высоком потреблении памяти, нужно увеличивать доступную память, или оптимизировать её потребление в самом приложении.

    Что будет, если он переполнится?

    Тоже самое, что и при отсутствии файла подкачки: приложение, запросившее больше памяти, чем доступно, будет завершено OOM killer'ом для того, чтобы система могла продолжать функционирование. Причём может быть принудительно завершено как оно само, так и любое другое, активно потребляющее RAM.

    Файл подкачки нужен исключительно для избежания OOM при превышении потребления физической RAM.

    как очищать файл подкачки?

    Никак. Это невозможно делать вручную, как и очищать RAM.
    Только завершая приложения, потребляющие память.
    Ответ написан
    3 комментария
  • Востановить права chmod?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    sudo /lib/ld-linux.so /bin/chmod 755 /bin/chmod

    Или:
    sudo /lib64/ld-linux-x86-64.so.2 /bin/chmod 755 /bin/chmod

    Или:
    sudo /lib/x86_64-linux-gnu/ld-2.19.so /bin/chmod 755 /bin/chmod

    Путь в разных дистрибутивах и разрядности может отличаться.
    Ответ написан
  • Что использовать для установки IRC сервера?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    UnrealIRCd (очень распространён, стабилен)
    или InspIRCd (больше встроенных фич вне спецификации, активнее разработка)

    Поддержка NickServ и ChanServ появится с подключением Anope.
    Ответ написан
    Комментировать
  • Температура сервера?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Зачем вы делаете | grep Core?
    Если вы уберёте эту часть, то sensors покажет и остальные датчики.
    Ответ написан
    4 комментария
  • Шифрует ли Zabbix сервер подключения к Zabbix агенту?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    По умолчанию, трафик между агентами и сервером не шифруется.
    Шифровать его можно либо связывая агенты с сервером через VPN, либо используя встроенные с версии 3.0 возможности для шифрования: сертификаты и pre-shared ключи.

    Оба способа работают на активные и пассивные чеки.

    https://www.zabbix.com/documentation/3.0/manual/en...
    https://www.zabbix.com/documentation/3.0/manual/en...
    https://www.zabbix.com/documentation/3.0/manual/en...
    Ответ написан
    Комментировать
  • Как можно обезопасить форум vbulletin от спама?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Подключить капчу.

    Подключить плагин для борьбы со спамом.
    Один из популярных для vB: Spam-O-Matic
    www.vbulletin.org/forum/showthread.php?t=248042

    Он интегрируется с:
    - StopForumSpam
    Уводит подозрительные регистрации в "ожидает модерации" для дальнейшего принятия решения. Делает это при совпадении почты/IP пользователя с уже имеющейся базой спамеров, зарепорченных с других форумов. Очень эффективен.
    - Akismet
    Анализирует содержимое постов у новичков.
    Ответ написан
    4 комментария
  • Гуманитарное образование - это приговор?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Ответ работодателя про выйти замуж - это просто неудачная неэтичная шутка.
    На самом деле человек пытался обозначить, что вы не подходите именно под открытые позиции в этой компании, но выпустил вместо прямолинейного "вы нам не подходите" вот такой юморок. С безысходностью своего развития в отрасли это никак не связано, вообще.

    Никто не выгоняет за наличие психологического образования. Обычно оно, наоборот, поощряется.
    Проблема не в типе образования. Проблема в отсутствии опыта. Компания прогнозирует, что начинает не успевать выполнять определённые вещи. Она открывает вакансию на конкретную позицию с конкретными задачами, ожидая, что пришедший сможет заполнить этот пробел. Если человек не знает, как выполнять эти задачи, он не сможет ничего предложить работодателю, даже если у него есть высшее образование (независимо от области).

    Вот как пройти этот порог вхождения:
    Сначала нужно определиться, к чему именно тянет в ИТ и с чем хотелось бы работать. Веб-разработка (а там - либо разработка и вёрстка фронтэндов, либо разработка серверной части сайта, "бэкенда", работающей с базой данных и приходящими данными от фронтэнда), или сопровождение серверов, проектирование и внедрение инфраструктур, и т.д.
    Затем два возможных пути:
    - Вы самостоятельно пробуете сделать то, что вам интересно, дома на своём ПК. Если всё получается, пробуете ещё и ещё. Потом задумываете сделать небольшой личный проект по теме, просто что-нибудь минимально полезное для себя (хотя бы ради эксперимента).
    - Вы устраиваетесь на вакансию с пометкой "стажирование", где требования к соискателям низкие. Если повезёт, то задачи будут интересными и они оставят вам полезный опыт. Нужно понимать, что на подобное обучение сотрудника компания тратит своё время и средства, поэтому не стоит ожидать больших окладов на этом этапе. Также не ждите, что за вас всё будут объяснять и постоянно выполнять роль учителя. Определённая самостоятельность всё-равно потребуется.

    Это позволит обрести опыт и в дальнейшем уже быть полезной на тех вакансиях, где ждут людей на конкретные технологии и задачи. К тому моменту, с некоторыми из них вы уже наверняка будете иметь практику. =)
    Ответ написан
    2 комментария
  • Проблема с SSL, фаерфокс периодически выдает SSL_ERROR_ILLEGAL_PARAMETER_ALERT. Что делать?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Вы не указали адрес сайта, а ошибка довольно расплывчата, поэтому здесь можно только гадать.

    Если хотите проверить самостоятельно:
    ssllabs.com
    Покажет проблемы с настройками Вашего веб-сервера в контексте SSL и HTTPS.

    UPD:
    Браузер может испытывать проблемы с загрузкой страницы из-за неправильных/небезопасных параметров ssl_ciphers.

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
        ssl_certificate /path/to/signed_cert_plus_intermediates;
        ssl_certificate_key /path/to/private_key;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
    
        # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
        ssl_dhparam /path/to/dhparam.pem;
    
        # intermediate configuration. tweak to your needs.
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
    
        # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
        add_header Strict-Transport-Security max-age=15768000;
    
        # OCSP Stapling ---
        # fetch OCSP records from URL in ssl_certificate and cache them
        ssl_stapling on;
        ssl_stapling_verify on;
    
        ## verify chain of trust of OCSP response using Root CA and Intermediate certs
        ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
    
        resolver <IP DNS resolver>;
    
        ....
    }


    Сгенерирован этим инструментом по best practice от Mozilla по настройке SSL на nginx: https://mozilla.github.io/server-side-tls/ssl-conf...
    https://wiki.mozilla.org/Security/Server_Side_TLS
    (выбран Intermediate, отличается от Modern набором поддерживаемых браузеров на случай, если нужна совсем уж далёкая совместимость со старыми многолетними браузерами)

    Только поменяйте путь до ssl_dhparam /path/to/dhparam.pem;, предварительно сгенерировав его вот так:
    openssl dhparam -out /etc/ssl/dhparams.pem 2048

    Хотя, на самом деле, я не смог воспроизвести у себя в FF ошибку загрузки страницы.
    Но соблюсти эти практики всё-равно нужно.
    Ответ написан
  • Как работает рассылка Lamoda?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    В рассылках от их партнёров (или просто от того же поставщика рассылок) может быть трекинг факта открытия скрытой картинкой, подгружаемой с удалённого сервера при открытии письма.

    Возможно, что поставщик рассылок имеет договорённости с Lamoda инициировать отправку письма ровно в момент открытия трекинговой картинки этим получателем.
    Ответ написан
    12 комментариев
  • Как выгнать ботов из анонимного чата?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Если паттерны поведения предсказуемы (интервалы, фразы, наличие ссылок) - автоматически блокировать по обнаружении, но вы это уже отчасти делаете.

    Если паттерны непредсказуемы, вариантов немного:
    • Ручная модерация. Добавить больше операторов в чат среди постояльцев.
    • Трекить источник подключения. Возможно, что боты запускаются с одних сетей. Можно закрыть им доступ к чату.
    • Минимальная капча на вход. Не обязательно делать её сверх-сложной.
    • Заблокировать подключение хостам со списков DNSBL и Tor-exit нод.
    Ответ написан
    Комментировать
  • Какой менеджер паролей выбрать?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    KeePass + KeeFox (для Firefox)
    Работаю с этим тандемом уже несколько лет. У них довольно гибкие возможности.
    Ответ написан
    7 комментариев
  • Как объединить 2 столбца в MySQL с помощью PhpMyAdmin в один?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Посмотреть:
    SELECT concat(customers_firstname, ' ', customers_lastname) as customers_fullname FROM `customers`;


    Поменять:
    UPDATE `customers` SET customers_fullname = CONCAT(customers_firstname, " ", customers_lastname);
    Ответ написан
    2 комментария
  • Насколько оправданно держать OpenVZ контейнеры на одинаковом шаблоне ОС?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Чем больше RAM потребляют одинаковые процессы (включая системные) между контейнерами и чем больше таких контейнеров, тем выше будет плотность.

    Если говорить о чистом OpenVZ, без Virtuozzo, то технология называется KSM (Kernel samepage merging). Доступа в ядре с версии 2.6.32. По умолчанию выключена.
    Её можно использовать не только для OpenVZ.

    Включить на гипервизоре можно через:
    echo 1 > /sys/kernel/mm/ksm/run

    Посмотреть эффективность:
    cat /sys/kernel/mm/KSM/pages_sharing

    Документация в контексте OpenVZ:
    https://wiki.openvz.org/KSM_(kernel_same-page_merging)
    Ответ написан
    Комментировать
  • Как найти сервис в Uduntu?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Может скрипт расположен в /etc/init/ (не только в init.d)?
    Ответ написан
    1 комментарий