• Как можно определить устаревшего ssl клиента и отправить его на http?

    1. Напишите вывод команды
    nginx -V

    Возможно проблема в том, что у Вас nginx собран с openssl < 1.0.2 и как следствие нет поддержки ALPN, а браузер на ваших старых NT 5.1 наверняка новый, в котором уже нет поддержки NPN

    2. Какие шифры сконфигурированы в nginx ? Напишите что у вас прописано в ssl_ciphers. Возможно Вы открываете ваш сайт в браузере, который не поддерживает тот набор шифров что прописан у Вас в nginx.
    Протестируйте сайт на https://www.ssllabs.com/ssltest/index.html

    P.S. Если бы Вы написали какая точно у вас версия Windows и какой браузер, то гадать бы пришлось меньше.
    Ответ написан
  • Как отключить все автоматические проверки обновлений в Debian?

    sudo apt remove unattended-upgrades
    Ответ написан
    Комментировать
  • Экспорт большого объема данных mysql без локов?

    Для движка InnoDB используйте опцию --single-transaction , которая добавляет SQL-выражение BEGIN перед дампом всех данных из БД, что позволяет получить дамп одной транзакцией, без блокировки таблиц.

    Для движка MyISAM используйте опцию --lock-tables , которая блокирует таблицы с помощью READ LOCAL, что позволяет выполнять запросы INSERT в MyISAM-таблицы во время выполнения дампа.

    P.S. Кроме того, при дампе больших таблиц с помощью mysqldump рекомендуется использовать опцию --quick

    P.P.S Но не стоит забывать, что если вы делаете дамп с флагами --master-data и --single-transaction , автоматические локи не работают (флаг --lock-tables не действует)! Нужно указывать флаг --lock-all-tables

    И напоследок: для больших БД использование mysqldump - это зло, почитайте про Percona XtraBackup например тут и тут и свеженькое тут и используйте его если уж сильно не хочется репликацию, хотя бэкапы и при наличии репликации никто не отменял ибо репликация != бэкап.
    Ответ написан
    Комментировать
  • Nginx: https to https?

    Проксирование nginx методом https -> http, не прокатывает, так как jira возмущается и не правильно работает. Соответственно для Jira была настроена Catalina на работу с https с портом 8883, в результате при обращении на этот порт все работает.


    1. Настройте Jira на работу по http only либо на работу в 2-х режимах - http и https - такое возможно, мануалы есть, пользуйтесь гуглом.
    2. Как и посоветовал ТыжСисАдмин , настройте проксирование nginx https -> jira http - это будет самое правильное решение.
    Ответ написан
    Комментировать
  • Безопасно ли подгружать конф для nginx из директории пользователя?

    Безопасно ли подгружать конф для nginx из директории пользователя?


    Нет это не безопасно, более того - это опасно! Не делайте так!

    Если хочется чтобы пользователи сами писали редиректы, то поставьте бесплатную панель хостинга ISPConfig, в ней есть нужный вам функционал.
    Ответ написан
    Комментировать
  • Как измерить процессорное время, потраченное ядром на ipsec и NAT?

    Утилиты для диагностики проблем с производительнос...

    А вобще, чтобы понимать что или кто грузит систему во времени нужно собирать данные, аккумулировать их, потом строить графики, то есть по сути Вам нужна простенькая система мониторинга, к примеру тот же munin он прост в установке и настройке и по нему очень много мануалов.
    Ответ написан
  • При редиректе с HTTP на HTTPS возникает ошибка, в чем дело??

    1. Кусок
    server {
            listen 80;
            server_name universal-chat.net *.universal-chat.net;
            return 301 https://$host$request_uri;
    }


    Замените на 2 блока, так будет правильнее и тогда:

    server {
            listen 80;
            server_name universal-chat.net www.universal-chat.net;
            return 301 https://universal-chat.net$request_uri;
    }
    server {
            listen 80;
            server_name api.universal-chat.net;
            return 301 https://api.universal-chat.net$request_uri;
    }


    Читаем статью для просвещения.

    2. Рекомендую поменять еще некоторые дерективы:

    worker_processes 4;
    на
    worker_processes auto;

    Добавить
    worker_cpu_affinity auto;
    worker_shutdown_timeout 30;

    30 замените на ваше желаемое число, см офф. документация

    Добавить в секцию http директиву:
    server_tokens off;

    Если у Вас используется
    sendfile on;
    то разумно выставить
    sendfile_max_chunk 128k;
    Она ограничивает объём данных, который может передан за один вызов sendfile(). Нужно для исключения ситуации когда одно соединение может целиком захватить воркер.

    По желанию добавить в секцию http:
    keepalive_timeout 60s;
    keepalive_requests 500;
    client_body_timeout 30s;
    client_max_body_size 256m;
    send_timeout 30s;
    types_hash_max_size 2048;
    server_names_hash_max_size 8192;
    server_names_hash_bucket_size 128;

    Тестируем редиректы так:
    curl -D - -o /dev/null -s http://universal-chat.net

    и
    curl -D - -o /dev/null -s http://api.universal-chat.net
    Ответ написан
    7 комментариев
  • Fail2ban уведомления в Telegram?

    В /etc/fail2ban/jail.conf в параметре action указывается конфигурация из каталога /etc/fail2ban/action.d

    А вообще Google Вам в помощь
    https://blog.mypapit.net/2015/08/how-to-send-fail2...

    Если не хотите использовать telegram-cli, то в /usr/share/fail2ban/fail2ban-telegram.sh напишите замену telegram-cli на curl
    Ответ написан
  • Какие различия программирования под UNIX и Linux?

    Подскажите, верно ли утверждение, что я прочитаю книгу по системному программированию в UNIX и смогу после этого программировать в Linux без изменений?


    Я недавно прочитал книгу как играть на синтезаторе и даже купил синтезатор, но руки не под то заточены, поэтому через N месяцев мучений я бросил это гиблое дело.

    Так что нет, не верное утверждение. Прочитать книгу не значит освоить её и тем более получить навыки.
    Программировать Вы сможете, вопрос только в том что именно, Hello world да, а вот дальше и глубже этого - тут все зависит от упорства и труда. И конечно же чтобы освоить системное программирование этим нужно заниматься регулярно и постоянно, а не набегами по 2 часа в неделю. Нужно работать над реальными проектами, решать реальные задачи. Только так Вы наберетесь опыта.
    Ответ написан
    3 комментария
  • Какие есть скрипты для настройки хостинга?

    Готовых под Ваши нужды bash-скриптов нет и скорее всего не будет, т.к. это большинству это не нужно.
    Есть "коленочные" скрипты вроде тех, что приводили Вы, можете допилить их под ваши нужды.
    Либо пользуетесь панелями хостинга с Web-интерфейсом, либо делаете все через консоль linux.
    У большинства панелей есть API, а через него Вы можете делать очень много, написать простенький скрипт, который через это API решает Ваши задачи не сложно - но возникает вопрос - зачем тогда держать панель хостинга?

    P.S. Тем кто активно рекомендет VestaCP - читайте про уязвимость:
    04.11.2017 11:37 Уязвимость в панели управления х...
    Ответ написан
  • Как удалить лишние пробелы в статике используя Nginx?

    Посмотрите в сторону Nginx JS (nginScript) - среда выполнения JavaScript в Nginx.
    Во первых - это уже встроено в nginx в виде модуля и не нужно собирать какие-то доп. модули, во вторых - это протестировано и надежно работает и не валит nginx.

    3 мес. назад стояла задачка по прозрачной замены библиотеки создания превьюшек phpThumb на ресайз через nginx-module-image-filter, вначале долго мучился со всякими сторонними модулями, чтобы парсить url и выцеплять из запроса нужные данные, потом их обрабатывать, потом плюнул и за пару часов сделал на nginScript тоже самое, пример всех конфигов тут, все никак не могу оформить это в виде нормальной понятной обывателю статьи.
    Ответ написан
  • NGINX: как узнать какие файлы (из каких папок) скачивают пользователи?

    Прежде чем удалять /data/2017, мне нужно точно убедиться, что данные берутся именно из /mnt/2017.


    1. Отключите в конфиге nginx использование /data/2017 и станет сразу все понятно, откуда будут браться ваши данные.
    2. Не удаляйте /data/2017, а просто переименуйте например в /data/2017.old, поживите так N дней, проверьте что все работает корректно.
    3. Анализируйте access.log на предмет 404 для файлов которые лежали в /data/2017, а сейчас уже берутся из /mnt/2017
    4. Только убедившись, что все хорошо, удаляйте /data/2017
    Ответ написан
    Комментировать
  • Что не нравится Nginx?

    Что не нравится Nginx?


    nginx не нравится, что Вы подсунули ему неправильный файл сертификата cert.crt, правильный должен иметь примерно такой вид (многострочный):

    -----BEGIN CERTIFICATE-----
    MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
    ................
    ................
    JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
    Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
    -----END CERTIFICATE-----


    Сделайте:

    openssl x509 -in /etc/ssl/certs/domains/sea3.ru/cert.crt -noout -text -purpose


    Если файл сертификата корректный, то вы увидите всю информацию о сертификате, иначе будет ошибка.
    Ответ написан
    Комментировать
  • Где найти базу данных городов с подсетями?

    https://github.com/m-messiah/ip2geo

    Это импортер ipgeo-данных в файлы, понятные для nginx geo module, с поддержкой кодов регионов РФ.

    Если запустите его, то получите на выходе файлик city.txt, это и будет база. Но она не идеальна, есть погрешности, т.к. эти файлы берутся из общедоступных баз.
    Ответ написан
    Комментировать
  • Перенос локальных терминальных пользователей в домен?

    Если вам не требуется перенос пользовательских профилей, то разворачивайте AD согласно официальным мануалам. Включайте терминальный сервер в домен, заводите пользователей (процесс можно легко автоматизировать на PowerShell), настраиваете нужные GPO, старые профили пользователей корректно удаляйте и заходите под УЗ доменных пользователей. Настройки некоторых программ, к примеру той же 1С можно перенести путем банального копирования каталогов и ветки реестра.

    Если требуется перенос профилей локальных пользователей на доменные, то вместо удаления старых профилей Вам нужно сделать их перенос, что собственно в статье Два и делается.
    Ответ написан
    Комментировать
  • Заражение вирусами в ОЧЕНЬ большой сети?

    Конечно такая сеть - это полный кашмар и что то тут посоветовать сложно. Тут нужен комплексный подход. Рекомендую обратиться к специалистам в одну из антивирусных компаний, а так же компаний специализирующихся на программно-аппаратных файеволах (Fortinet, Check Point Software).

    А если брать проблему локально, то нужно смотреть каким крипто-локером заразились, к примеру у того же WannaCry или Petya (Not.Petya) есть стоп-файл, наличие которого в определенных местах останавливает работу крипто-локера. Конечно пробежаться по 6 тыс. ПК практически нереально, но....
    Ответ написан
    Комментировать
  • Переадресация по доменным именам NGINX?

    Когда захожу в конфиг GNIX на 192.168.0.2, там 2 файла и вот что там прописано:


    Вы что-то не договориваете или не понимаете и пишите не полную информацию.

    Где это сервер (192.168.0.2) на вашей картинке?
    Откуда все таки вы взяли конфиг nginx, с какого сервера? По моему это конфиг с сервера виртуального сервера 10.102.10.32, потому что его IP фигурирует.

    У вас на картинке есть роутер, если я правильно понял внешний динамический IP от провайдера получает именно он и на нем же ddns.
    Тогда вопрос: Какие правила редиректа подключений на 80 порт есть на этом роутере?
    Ответ написан
  • Почему медленно работает сайт?

    listen = 127.0.0.1:9001


    1. Используйте unix socket, это увеличит скорость работы связки nginx + php-fpm

    Пример пула php-fpm:

    [site.ru]
    listen = /var/lib/php5-fpm/siteru.sock
    listen.owner = site
    listen.group = site
    listen.mode = 0660
    ...


    Пример настройки nginx:
    location ~ \.php$ {
      ...
      fastcgi_pass unix:/var/lib/php5-fpm/siteru.sock;
      ...
    }


    pm = ondemand


    2. Используйте модель dynamic, при ondemand скорее всего вы упираетесь в pm.max_children

    Пример для dynamic:

    pm = dynamic
    pm.max_children = 10
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 5
    pm.max_requests = 500


    3. Включите лог медленных запросов на mysql, включите дебаг в yii2, включите отладочные логи на php-fpm

    Пример включения отладочных логов для php-fpm:
    ; Перенаправлять вывод процесса в лог
    catch_workers_output = yes
    ; Если скрипт выполняется больше указанного времени, писать отладочную информацию в slowlog
    request_slowlog_timeout = 3
    ; Лог-файл для медленных запросов
    slowlog = /var/log/fpm-php/siteru.slow.log
    Ответ написан
    Комментировать
  • Большое количество сайтов на nginx?

    В консоле сервера:

    Проверим soft limit:
    # ulimit -Sn

    Проверим hard limit:
    # ulimit -Hn

    Если мало, то динамически изменим текущие лимиты:
    # ulimit -n 65525

    Теперь добавляем лимиты в файлы настроек, чтобы при старте системы они выставились какие нам нужны:
    В файле /etc/security/limits.conf дописываем:
    * soft nofile 65525
    * hard nofile 100000
    nginx hard nofile 65000

    Теперь меняем лимиты в nginx, для этого в файле /etc/nginx/nginx.conf в самом начале, примерно после строк
    user www-data;
    worker_processes auto;
    пишем
    worker_rlimit_nofile 65000;

    В консоле:
    # nginx -t && nginx -s reload
    Ответ написан
    Комментировать
  • Актуальная копия базы данных на локальном сервере?

    Самое логично и правильное - это MySQL репликация типа Master-Slave, но тут нужен хороший канал до Slave и прямые руки. Вкраце как это сделать тут

    Если с репликацией заморачиваться не хочется и у вас используется InnoDB, то вам поможет Percona XtraBackup. Вкраце как делать бэкапы и как их поднимать описано тут.

    И еще убирать данные в таблице (типа logs)?


    Если Вы про полную очистку таблицы от записей, то
    truncate table logs;

    Но у truncate есть нюансы в работе, по сравнению с delete, (к примеру операция delete блокирует каждую строку, а truncate - всю таблицу), так что нужно о них знать и выбирать то что нужно.
    Ответ написан
    Комментировать