Как избежать простоев сайта и не терять деньги: реальное решение для бизнеса

Проблема, с которой сталкиваются многие

Ваш сайт – это не просто веб-страница, а полноценный инструмент для бизнеса. Но что, если он периодически «падает»? Виртуальный сервер нестабилен, Apache вылетает из-за нехватки памяти, конкуренты устраивают DDoS-атаки, а места на хостинге не хватает в самый неподходящий момент. Итог – сайт недоступен часами, а иногда даже днями. И это далеко не все проблемы:

  • Некоторые страницы могут отдавать 404 ошибки.
  • Сайт работает, но не отвечает корректно на запросы.
  • Вы узнаёте о сбоях только от клиентов или когда продажи резко падают.

Последствия таких проблем катастрофичны:

  • Слитый бюджет рекламных кампаний.
  • Потерянные клиенты и заказы.
  • Снижение позиций в поисковых системах из-за плохой доступности сайта.

Почему обычные сервисы мониторинга не помогают?

Существует множество сервисов, которые раз в несколько минут «пингуют» сайт, проверяя его доступность. Однако у них есть ряд недостатков:

  • Они часто дают ложные срабатывания.
  • Не учитывают ошибки типа 303 (перенаправления) и другие важные нюансы.
  • Не всегда реагируют на частичную недоступность сайта.

Наше решение: мониторинг с ELK и Telegram-ботом

Мы подошли к проблеме комплексно и сделали следующее:

  • Развернули сервер ELK (Elasticsearch, Logstash, Kibana). Это мощный инструмент для сбора и анализа логов, который позволяет отслеживать все запросы к сайту в реальном времени.
  • Передали в ELK все записи access.log. Теперь у нас есть полная картина работы сервера.
  • Настроили Telegram-бота, который анализирует логи и сообщает о проблемах. Если в последних записях встречаются ошибки (404, 500 и другие), бот мгновенно отправляет уведомление в специальный чат.
  • Добавили дополнительную логику: если в течение 5 минут на сайт не поступает ни одного запроса, бот отправляет предупреждение. Это позволяет выявлять глобальные сбои (например, падение сервера или проблемы с хостингом).

Что это дало бизнесу?

  • ✅ Молниеносная реакция на ошибки. Теперь 404-ошибки и другие проблемы фиксируются в режиме реального времени, а не спустя часы или дни.
  • ✅ Полный контроль над работой сайта. Мы всегда знаем, когда возникают сбои, и можем быстро устранить их.
  • ✅ Минимизация финансовых потерь. Простои сокращены с нескольких часов до 10 минут, а это значит, что рекламные бюджеты тратятся эффективно, а клиенты не уходят к конкурентам.

Вывод

Автоматизированный мониторинг через ELK и Telegram-бота – это современное и эффективное решение для контроля доступности сайта. Оно позволяет своевременно обнаруживать и устранять сбои, избегая финансовых потерь и проблем с репутацией.

Хотите внедрить подобную систему у себя? Свяжитесь с нами – мы поможем сделать ваш бизнес более стабильным и защищённым!

Как мы увеличили продажи платных мастер-классов по вязанию в 7 раз

Проблема

К нам обратился заказчик — владелец популярного сайта для любителей вязания. На его платформе продаются как товары для вязания, так и доступы к эксклюзивным мастер-классам, которые проходят в закрытых Telegram-каналах. Однако возникла серьезная проблема: покупатели делились ссылками на платные каналы со своими знакомыми. Это приводило к тому, что доступ к контенту получали люди, которые не оплачивали его, а заказчик терял значительную часть потенциального дохода.

Кроме того, каждые две недели создавался новый платный канал, а старые каналы также должны были продолжать функционировать. Соответственно, требовалось решение, которое могло бы обеспечить надежную защиту от утечки ссылок, гибкость в управлении доступами и удобство для покупателей.

Наше решение

1. Мы разработали комплексную систему защиты от несанкционированного распространения ссылок, которая позволила не только исключить утечки, но и значительно увеличить продажи. Вот какие шаги мы предприняли:

  • Закрыли Telegram-каналы. Все ранее общедоступные каналы стали частными, что исключило возможность их свободного распространения.
  • Создали Telegram-бота-администратора. Этот бот добавляется в канал в качестве администратора и отвечает за выдачу одноразовых ссылок на вход. Telegram позволяет настраивать срок действия таких ссылок, что обеспечивает гибкость и контроль за доступом.
  • Разработали систему шифрования данных покупателя. После покупки клиент получает индивидуальную ссылку, в которой содержится зашифрованная информация о его заказе. Таким образом, каждая ссылка привязана к конкретному пользователю и не может быть использована повторно.

2. Создали второго Telegram-бота, интегрированного с Bitrix. Он выполняет несколько ключевых задач:

  • Автоматически авторизует покупателя на основе зашифрованных данных из ссылки.
  • Проверяет, есть ли в последних оплаченных заказах покупка доступа к нужному каналу.
  • Запрашивает у первого бота одноразовую ссылку и передаёт её покупателю. Таким образом, клиент получает персональный и ограниченный по времени доступ к каналу.
  • Разработали систему мониторинга выданных ссылок. Это позволило отслеживать их использование и предотвращать злоупотребления. Теперь заказчик видит, кому, когда и какие ссылки были выданы, а также может оперативно заблокировать доступ при необходимости.

Дополнительные преимущества

Помимо защиты контента и предотвращения утечек, наша система принесла заказчику еще несколько значительных выгод:

  • ✅ Рост продаж доступа к мастер-классам в 7 раз. После внедрения системы заказчик перестал терять деньги на нелегальном распространении ссылок, что привело к значительному увеличению прибыли.
  • ✅ Автоматизация процесса выдачи доступа. Раньше администраторы вручную отправляли ссылки покупателям, теперь же этот процесс полностью автоматизирован. Это значительно снизило нагрузку на персонал и исключило человеческие ошибки.
  • ✅ Дополнительный канал для маркетинга и повторных продаж. Теперь заказчик может отправлять персонализированные сообщения своим клиентам через Telegram-бота. Когда покупатель получает ссылку, чат с ботом сохраняется, а значит, с ним можно продолжать коммуникацию, информируя о новых курсах, скидках и специальных предложениях.
  • ✅ Гибкость в настройке доступа. Благодаря Telegram API мы смогли реализовать разные уровни доступа в зависимости от вида покупки. Это позволило дифференцировать предложения и внедрить подписку на долгосрочный доступ к определённым каналам.

Итог

Мы помогли заказчику защитить его бизнес от потерь и открыть новые возможности для роста. Теперь его эксклюзивные мастер-классы по вязанию стали недоступны для бесплатного распространения, а система выдачи доступа работает автоматически и без сбоев.

Хотите защитить свой контент и увеличить прибыль? Свяжитесь с нами, и мы разработаем для вас индивидуальное решение, которое поможет вам зарабатывать больше, исключая потери!

Особенности поиска в тендерных заявках и причем здесь Elastic Search

В современном мире эффективность и скорость поиска товаров на сайте играют ключевую роль в удовлетворении потребностей клиентов и повышении конкурентоспособности бизнеса. Особенно это актуально для компаний, участвующих в тендерах, где специфика написания артикулов и названий товаров может существенно затруднить поиск необходимой продукции. Рассмотрим, как внедрение передовых технологий помогло одной из таких компаний оптимизировать процесс поиска на своем сайте и достичь впечатляющих результатов.

Проблема: неэффективный поиск товаров на сайте

Компания управляет сайтом на платформе Bitrix, предлагая более 8000 наименований специального оборудования. Товарная база постоянно обновляется, что требует эффективного инструмента для быстрого и точного поиска. Однако стандартный поиск на сайте сталкивался с серьезной проблемой: в тендерных заявках часто используются артикулы, где русские буквы заменены на аналогичные английские. Например, артикул «СВ-13457» может быть записан с английской буквой «C» и русской «В». Стандартный поиск не справлялся с такими вариациями, что вынуждало пользователей вручную подбирать различные комбинации символов, делая процесс поиска долгим и неудобным.

Решение: интеграция системы ELK

Чтобы устранить эту проблему, было принято решение внедрить систему ELK (Elasticsearch, Logstash, Kibana) — мощный инструмент для поиска и аналитики данных. Для неспециалистов поясним: ELK — это набор программ, который позволяет эффективно собирать, обрабатывать и визуализировать большие объемы данных, обеспечивая быстрый и точный поиск информации.

Этапы внедрения:

  1. Настройка сервера ELK: Был выделен отдельный сервер для развертывания системы ELK, что обеспечило необходимую производительность и независимость от основной инфраструктуры сайта.
  2. Индексирование товаров: Все товары и их свойства были загружены в индекс Elasticsearch с предварительной разметкой данных. Это позволило системе понимать структуру информации и обеспечивать более точные результаты поиска.
  3. Регулярное обновление данных: Была настроена система регулярного обновления и удаления товаров в индексе, что гарантировало актуальность информации и соответствие текущему состоянию товарной базы.
  4. Разработка кастомного модуля поиска: Вместо стандартного поискового модуля Bitrix был создан собственный, который направляет запросы непосредственно к серверу ELK. Полученные оттуда идентификаторы товаров затем обрабатываются стандартными командами Bitrix. Такой подход значительно ускорил процесс поиска: один запрос обрабатывается примерно за 50 миллисекунд.
  5. Кэширование частых запросов: Для обеспечения мгновенного отклика для наиболее популярных запросов было внедрено кэширование, что позволило пользователям получать результаты поиска практически моментально.
  6. Мониторинг и анализ эффективности поиска: Была внедрена система учета пользовательских запросов и оценки их эффективности. Теперь можно отслеживать, перешел ли пользователь на страницу товара после поиска или нет, что помогает в дальнейшем улучшать алгоритмы поиска.
  7. Интеграция с аналитической системой заказчика: Все данные о поисковых запросах и поведении пользователей были выгружены в аналитическую систему заказчика, предоставляя ему ценные инсайты для принятия обоснованных бизнес-решений.

Результаты и выводы:

  • Улучшенный поиск: Теперь система способна обрабатывать сложные запросы, учитывая различные вариации написания артикулов и названий товаров, что особенно важно для тендерных заявок.
  • Снижение нагрузки на базу данных: Нагрузка на основную базу данных снизилась на 30%, что положительно сказалось на общей производительности сайта и скорости его работы.
  • Понимание интересов клиентов: Заказчик получил возможность анализировать, какие товары наиболее интересны посетителям, и соответственно корректировать ассортимент на складе в соответствии с актуальными запросами.
  • Повышение скорости и точности поиска: Пользователи теперь могут находить необходимые товары быстрее и с большей точностью, что повышает их удовлетворенность и лояльность к компании.
  • Расширенные аналитические возможности: Интеграция с аналитической системой позволила заказчику глубже понимать поведение пользователей на сайте и принимать обоснованные решения для дальнейшего развития бизнеса.

Внедрение системы ELK и разработка кастомного модуля поиска позволили компании не только решить существующие проблемы с поиском товаров, но и значительно улучшить пользовательский опыт, повысить эффективность работы сайта и получить ценные данные для стратегического планирования. Такой подход демонстрирует, как современные технологии могут быть успешно интегрированы в бизнес-процессы для достижения ощутимых результатов и укрепления позиций на рынке.

Внедрение учета товара с учетом нескольких оффлайн-магазинов

Как мы внедрили учет товара для ITKKIT с учетом нескольких оффлайн-магазинов

В современном мире интернет-торговли важно не только эффективно управлять онлайн-магазином, но и учитывать потребности оффлайн-точек продаж. Перед нами стояла интересная и сложная задача: разработать систему, которая бы позволила менеджерам двух оффлайн-магазинов ITKKIT видеть актуальные остатки товаров не только в их собственных магазинах, но и на других складах, включая интернет-магазин. Это решение помогло бы повысить продажи и улучшить логистику внутри компании.

Исходные данные

Заказчик — ITKKIT, у которого есть:

  • Интернет-магазин с высокой посещаемостью и большим количеством товаров.
  • Два оффлайн-магазина, каждый из которых имеет свой склад.
  • Система учета в 1С, которая уже используется для управления товарными остатками.

Основные вызовы проекта

  1. Высокая нагрузка на сайт. База данных интернет-магазина уже работала на пределе возможностей, поэтому любые массовые операции могли привести к снижению производительности и сбоям.
  2. Кеширование данных. Сайт активно использовал кеширование, что делало невозможным получение остатков товаров в реальном времени.

Эти ограничения заставили нас искать эффективные решения, которые не перегружали бы базу данных и обеспечивали бы актуальность информации.

Реализация решения

1. Интеграция данных из 1С

Первым этапом мы проработали взаимодействие с учетной системой 1С, где уже велся учет остатков товаров на всех складах. Совместно со специалистом Заказчика мы настроили выгрузку двух новых свойств для каждого товара:

  • Остатки в первом оффлайн-магазине.
  • Остатки во втором оффлайн-магазине.

Таким образом, мы получили структурированные данные, которые могли быть загружены в базу интернет-магазина.

2. Оптимизированное обновление данных

Поскольку база данных сайта испытывала большую нагрузку, мы не могли просто взять и массово обновить остатки товаров за раз. Вместо этого мы разработали метод постепенного обновления:

  • Каждые 5 минут отправлялись небольшие пачки запросов по 10 товаров.
  • В течение недели система обновила данные по всем товарам и их размерам, не создавая излишней нагрузки на сервер.

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

3. Асинхронная система отображения данных

Следующим шагом стало создание удобного интерфейса для менеджеров магазинов. Поскольку получить актуальные данные в реальном времени из-за кеширования было невозможно, мы реализовали систему асинхронных запросов:

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

Таким образом, менеджеры могли мгновенно видеть актуальную информацию об остатках товаров, не создавая дополнительную нагрузку на сервер.

4. Автоматизация списания товаров и отчетности

Чтобы система работала полноценно, мы внедрили две ключевые функции:

  • Автоматическое списание товаров. При оформлении покупки товар резервировался и списывался с соответствующего склада.
  • Отчетность по остаткам. Мы настроили систему отчетов, позволяющую анализировать данные по продажам и остаткам в удобном формате.

Итоги проекта

В результате проделанной работы система товарного учета в ITKKIT вышла на новый уровень. Теперь менеджеры в каждом магазине:

  • Видят не только остатки своего магазина, но и количество товара в другом оффлайн-магазине и интернет-магазине.
  • Могут быстро ориентироваться в наличии товара и перенаправлять покупателей в нужную точку продаж.
  • Работают в удобном интерфейсе без задержек и перегрузок системы.

Это решение не только повысило удобство работы сотрудников, но и позволило увеличить продажи за счет оптимального распределения товарных остатков.

Наша команда успешно справилась с задачей, несмотря на технические ограничения, и помогла ITKKIT вывести управление товарами на новый уровень!

Используйте всю мощь ChatGPT: ассистент для разработчиков

В современном мире разработки, надежные источники информации имеют первостепенное значение. Разработчики часто сталкиваются со сложными задачами и всегда находятся в поиске эффективных решений. Таким источником может стать ChatGPT — революционная языковая модель, разработанная OpenAI. Обратившись за помощью к ChatGPT, разработчики получают множество преимуществ, среди которых:

1. Обширные знания: ChatGPT основывается на большом объёме информации, включающей актуальные знания по различным областям. Обученная на разнообразных темах в 2021 году, модель является ценным ресурсом для разработчиков, нуждающихся в руководстве по языкам программирования, фреймворкам, алгоритмам и многому другому. ChatGPT может обращаться к этоим данным в любой момент времени, поэтому способен быстро и точно отвечать на запросы.

2. Быстрые и отзывчивые ответы: ChatGPT работает в режиме реального времени, обеспечивая максимально быструю помощь разработчикам, когда им это наиболее необходимо. Модель доступна круглосуточно, поэтому вопрос рабочих часов и часовых поясов полностью снимается, позволяя разработчикам получать оперативную помощь вне зависимости от того в какой точке планеты они находятся. Будь то неторопливая отладка кода или важный проект с горящим дедлайном, ChatGPT всегда готов помочь разработчикам преодолеть трудности и решить все вопросы.

3. Индивидуальные решения: Гибкость ChatGPT — важное преимущество. Модель понимает и отвечает на запросы естественным языком, позволяя разработчикам выражать свои мысли таким образом, чтобы это звучало естественно и интуитивно понятно. Эта гибкость гарантирует, что разработчики могут получать персонализированную помощь, адаптированную к их конкретным потребностям. Будь то разбор кода, разбор сложных концепций или изучение передовых практик, ChatGPT может предоставить исчерпывающее количество информации.

4. Обучение в процессе: С каждым взаимодействием ChatGPT учится и улучшает свои последующие ответы. По мере того, как все больше разработчиков обращается за помощью, модель вносит уточнения в свою базу знаний, включая новую информацию и улучшая свое понимание проблем, с которыми сталкиваются разработчики. Этот постоянный процесс обучения гарантирует, что ChatGPT всегда будет развивться вместе с постоянно меняющимся миром разработки, предоставляя актуальную и релевантную помощь.

5. Поддержка собщества разработчиков: ChatGPT стимулирует сотрудничество и обмен знаниями в сообществе разработчиков. Предоставляя помощь и решая наши проблемы, модель провоцирует разработчиков делиться своими опытом, способствуя активному обмену знаниями и профессиональному росту. Разработчики могут не только обращаться за помощью, но и вносить свой вклад, делая платформу еще более полезной.

Обращение к ChatGPT за помощью предоставляет разработчикам множество преимуществ. Обширные знания, высокая скорость ответа, индивидуальные решения, постоянное обучение и клиентоориентированность делают ChatGPT незаменимым инструментом в арсенале современного разработчика. Используя всю мощь ChatGPT, разработчики могут быстрее решать встречаемые проблемы, повысить эффективность при работе над своими проектами и выйти на совершенно новый профессиональный уровень. Рекомендуем попробовать воспользоваться ChatGPT и вам обязательно понравится!

rsync — просто и быстро копируем файлы на другой сервер

Перед внесением изменений бывает полезно сохранить файлы в безопасном месте, чтобы можно было их восстановить. С этой задачей поможет утилита rsync, которая минимизирует трафик, копируя только изменившиеся части файлов.

Первым делом установим пакет на оба сервера, если его ещё нет. Используем следующую команду:

sudo apt-get install rsync (для пользователей CentOS используем yum вместо apt-get)

Для копирования с удалённого сервера нам естественно понадобится доступ к нему, так как перед началом копирования придётся ввести пароль. В нашем примере данные будут скопированы из директории /remote/source в /local/destination причём в случае отсутствия директории она будет создана, а существующие в ней файлы не будут перезаписаны:

rsync -avzP --stats [email protected]:/remote/source/ /local/destination/
  • -a сохраняет информацию о датах, симлинках и разрешениях файлов
  • -z архивирует данные
  • -v увеличивает детализацию сообщений процесса работы программы
  • -P сочетает в себе «progress» (отображение прогресса во время копирования) и «partial» (для продолжения копирования при разрыве связи)

При желании убедиться, что всё пройдёт хорошо, можно дополнительно дописать опцию «dry-run» — в этом случае утилита запустит симуляцию копирования с записью лога, но реального копирования файлов не произойдёт.

Для копирования на удалённый сервер устанавливаем подключение для директории, куда будет вестись копирование:

rsync -avzP --stats /local/source/ [email protected]:/remote/destination/

Ремарка о закрывающем слэше:

При указании пути к директории в качестве источника, следует обращать внимание на закрывающий слэш – символ / в конце имени директории. Закрывающий слэш означает внутреннее содержимое, т.е. если в конце /source/ есть слэш, rsync скопирует содержимое /source/ в /destination/. Но если слэша в /source не будет, то rsync создаст директорию dir внутри /destination/ и скопирует все содержимое /source/ в /destination/source/. При этом, наличие или отсутствие закрывающего слэша в имени директории, в которую будет происходить копирование, значения не имеет.

Источники:

  • https://help.ubuntu.com/community/rsync
  • https://www.servers.ru/knowledge/linux-administration/how-to-copy-files-between-linux-servers-using-rsync

Массово уменьшаем размер изображений при помощи ImageMagick

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

  1. Устанавливаем пакет на рабочий сервер: sudo apt install ImageMagick (для пользователей CentOS используем yum вместо apt)
  2. Убеждаемся, что установка прошла успешно, выполняем команду identify -version и смотрим версию ImageMagick

За наиболее эффективный инструмент для уменьшения веса изображений возьмём понижение их качества-quality, установим качество в 50% от оригинальногоСтоит учитывать, что ImageMagick не заточен под обработку png изображений, поэтому укажем ей, что работать нужно только с jpg изображениями -type f ( -name «*.jpg» -o -name «*.jpeg» ).

  1. Перемещаемся в директорию с изображениями и готовимся начать обработку, полная команда будет выглядеть так: find . -type f ( -name «*.jpg» -o -name «*.jpeg» ) -execdir mogrify -quality 50 {} +
  2. После завершения работы команды проверяем изображения. Программа должна была обработать  в том числе и файлы во вложенных директориях

Обратите внимание: при копировании вышенаписанных команд следите, чтобы кавычки были простыми, а не фигурными.

Мы рассмотрели частный случай работы с понижением качества, однако инструментов очень много: для изменения размеров используется команда -resize, для обрезки есть -crop, для изменения формата существует -format и т.д. С полным списком всех возможностей ImageMagick можно ознакомиться в официальной документации.

Подготовка VDS сервера для Bitrix

Стартовые задачи на голом VSD

Инструментарий

  1. Pytty + настроенное подключение с правами ROOT
  2. Хостинг + учетная запись
  3. WinCSP + настроенное подключение
  4. Notepad++

Подготовка пользователя

В Ubuntu крайне не рекомендуется работать под учетной записью ROOT, поэтому сначала создадим своего пользователя с правами sudo

  1. Посмотреть список всех пользователей: nano /etc/passwd
  2. Создать нового пользователя с консолью sudo useradd -s /bin/bash username
  3. Задать пароль пользователю sudo passwd username
  4. Сделать пользователя sudo usermod -aG sudo username
  5. Зайти под пользователем username.
  6. Создать домашний каталог: sudo mkdir /home/username
  7. Переподключиться с пользователем rush
  8. Пользователя добавляем в группу www-data sudo usermod -a -G www-data username

Установка ПО и обновление системы

  1. Получить информацию о свежих версиях пакетов: sudo apt-get update
  2. Установка MC: sudo apt-get install mc
  3. Установка tasksel: sudo apt-get install tasksel
  4. Установка git: sudo apt-get install git

Установка LAMP

  1. Запуск установки sudo tasksel install lamp-server
  2. Генерируем пароль mysql через http://www.onlinepasswordgenerator.ru/ — 10 знаков со спец-символами
  3. Заполняем пароль на доске “Информация о проектах”
  4. Задаем root-пароль mysql в графическом интерфейсе консоли
  5. Установка завершится
  6. Запуск Apache sudo /etc/init.d/apache2 restart

Настройка Apache

  1. Проверка доступности по ip — в браузере в качестве адреса IP сервера. Если все ок — покажет страницу Apache
  2. Создаем копию файла конфигурации Apache
    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/yoursite.conf
  3. Подключаемся к серверу через root учетку по WinCSP
  4. Создаем папку сайта через WinCSP или консоль
  5. Создаем в папке сайта тестовый index.html
  6. Правим файл /etc/apache2/sites-available/yoursite.conf

    ServerAdmin [email protected]
    DocumentRoot /var/www/yoursite
    ErrorLog /var/www/yoursite_error.log
    CustomLog /var/www/yoursite_access.log combined
  7. Деактивация старого сайта sudo a2dissite 000-default
  8. Активация нового сайта sudo a2ensite yoursite
  9. Рестарт Apache sudo service apache2 restart
  10. Если все ОК — то при переходе на ip — отобразится наша тестовая страница.
  11. /etc/apache2/apache2.conf

    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

Настройка модулей Apache

  1. sudo apt-get install php-mbstring
  2. sudo phpenmod mbstring
  3. sudo phpenmod mcrypt
  4. sudo a2enmod rewrite
  5. sudo a2enmod ssl
  6. sudo service apache2 restart

Установка phpmyadmin

  1. sudo apt-get install phpmyadmin php-mbstring php-gettext
  2. sudo service apache2 restart

Настройка Mysql

  1. В файле /etc/mysql/conf.d
    [mysqld]
    sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVI
    SION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  2. sudo service mysql restart

Настройка прав доступа

  1. Нам нужно установить владельца/группу для корневого каталога (и любых внутренних директорий и файлов): sudo chown -R www-data:www-data /var/www
  2. Чтобы никто кроме текущего пользователя (www-data) не имел доступа к содержимому директории web-root. sudo chmod go-rwx /var/www
  3. Далее нужно разрешить пользователям из той же группы (и ‘other’) открывать директорию /var/www sudo chmod go+x /var/www
  4. Далее изменяем права доступа всех директорий и файлов в корневом каталоге для той же группы (www-data): sudo chgrp -R www-data /var/www
  5. C помощью команд chmod сделайте так, чтобы только один пользователь мог осуществлять доступ к контенту: sudo chmod -R go-rwx /var/www
  6. Сделайте так, чтобы любой пользователь из той же группы мог читать/записывать и выполнять директории и файлы в корневом каталоге на сервере: sudo chmod -R g+rx /var/www
  7. Лично я дал группе право записывать – это нужно для тех пользователей, которые редактируют контент. Выглядит это следующим образом: sudo chmod -R g+rwx /var/www

Настройка php

/etc/php/7.0/apache2/php.ini после изменения — рестарт апача и проверка через phpinfo.php

  1. short_open_tag = On
  2. mbstring.internal_encoding = UTF-8
  3. mbstring.func_overload = 2

Перенос сайта на Bitrix. Подготовка к развертыванию резервной копии.

Часто сервер носит имя домена, который на нем будет крутиться. Это порождает такую проблему: ping с VDS сервера на домен идет на 127.0.0.1, а для развертывания копии надо по имени домена стучаться на «хостинговый» IP адрес.

Для правки в файле /etc/hosts VDS сервера прописываем строчку вида
87.236.16.31 yoursite.ru

И комментим строчку вида
127.0.1.1 yoursite.ru yoursite

чтобы она выглядела так:
# 127.0.1.1 yoursite.ru yoursite

сохраняем и запускаем проверку
ping yoursite.ru

После разворачивания резервной копии возвращаем все как было! Иначе при изменении правок — будут вноситься правки на “старый” боевой сайт.

Подготовка резервной копии на боевом

  1. Проверить свободное место на боевом через хостинг, если места мало — временно увеличиваем дисковую квоту
  2. Создаем полную резервную копию Bitrix на боевом
  3. Оттуда же качаем файл restore.php
  4. Размещаем его в корне папки сайта
  5. Запускаем по IP http://yourip/restore.php
  6. Действуем по запросам системы.
  7. Ждем развертывания.

Подготовка перенесенного сайта

  1. Заходим по IP в VDS в админку Bitrix
  2. Смотрим http://yourip/bitrix/admin/site_checker.php?lang=ru
  3. Если все ОК — идем дальше.

Импорт экспорт базы данных средствами SSH

Работает быстрее и надежнее чем через phpmyadmin и с БД любых размеров.

На больших базах данных чтобы не обрушить сервер используем конфигурацию
mysqldump -u USER -p —single-transaction —quick —lock-tables=false DATABASE | gzip > OUTPUT.gz

  1. Заходим на SSH сервера клиента
  2. Проверяем подключение к Mysql mysql -u [DB_username] -p (спросит пароль)
  3. Смотрим тот ли пользователь (список баз данных) show databases;
  4. Проверяем наличие свободного места на хостинге клиента (при возможности)
  5. Заходим в тот каталог куда хотим получить дамп
  6. Делаем Дамп mysqldump -u [Username] -p [DBname] > [filename].sql (спросит пароль и молча начнет работать. Т.е. надо подождать пока появится приглашение BASH для ввода — это значит файл готов)
  7. Копируем созданный файл на сервер разработки в папку /var/www/html/storage/db
  8. Заходим в phpmyadmin на сервер разработки
  9. Переименовываем целевую базу данных если она есть, дописывая индекс _1, _2 или очередной после ее имени ВНИМАТЕЛЬНО! через раздел Операции (operations)
  10. Создать пользователя БД (как на хостинге)
  11. При создании пользователя поставить галочку “Create database with same name and grant all privileges.”
  12. Создаем новую базу данных с нужным именем (раздел home) — кодировка новой базы данных должна быть такой же как и у скопированной!!
  13. Заходим в созданную базу данных раздел Privileges и проверяем что пользователь с именем этой базы данных имеет к ней полный доступ
  14. Заходим по SSH на сервер разработки
  15. Переходим в папку /var/www/html/storage/db
  16. Выполняем команду mysql -u [DBUsername] -p [DBName] < [filename].sql если все ОК — надо будет подождать аналогично п. 7
  17. Проверяем базу данных через phpmyadmin
  18. Проверяем работу сайта
  19. Удаляем сделанную на шаге 9 базу данных.

 

Источник: http://qaru.site/questions/114074/how-can-i-slow-down-a-mysql-dump-as-to-not-affect-current-load-on-the-server

Что такое майнинг и куда делись все видеокарты?

Простыми словами: что такое майнинг и куда делиcь все видеокарты

Вы наверняка слышали из новостей, что из продажи пропали все видеокарты. Вы даже узнали оттуда, кто все скупил — майнеры. Они «майнят» криптовалюту на своих «фермах». Уверен, что вы слышали про самую известную криптовалюту — Биткойн.

Но еще я полагаю, что вы не очень понимаете, почему это началось именно сейчас, в чем конкретно состоит этот самый майнинг и почему вообще так много шума вокруг каких-то странных «электронных фантиков». Может, если все занялись майнингом, то и вам надо? Давайте разберемся в сути происходящего.

Блокчейн

Для начала немного основ биткойна и блокчейна. Подробнее вы можете почитать об этом в другой нашей статье, а тут я напишу совсем коротко.

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

«Технология блокчейн, на мой взгляд, — это новый интернет. Это идея такого же уровня, как интернет.«

Герман Греф

Блокчейн — это такой интернет-дневник. Блокчейн представляет собой последовательную цепочку блоков, в каждом из которых записаны транзакции: кто и кому сколько биткойнов перевел. На английском его еще называют ledger — буквально «гроссбух». Собственно, гроссбух и есть — но с парой важных особенностей.

Первая ключевая особенность блокчейна — все полноценные участники сети Биткойн хранят всю цепочку блоков со всеми транзакциями за все время. И постоянно дописывают в конец новые блоки. Повторю, весь блокчейн у каждого пользователя хранится целиком — и он точно такой же, как у всех остальных участников.

Второй ключевой момент: блокчейн основан на криптографии (отсюда и «крипто» в слове криптовалюта). Правильная работа системы гарантирована математикой, а не репутацией какого-то человека или организации.

Те, кто создают новые блоки, называются майнерами. В награду за каждый новый блок его создатель сейчас получает 12,5 биткойнов. По курсу на 1.07.2017 — это примерно $30 000. Чуть позже мы поговорим об этом подробнее.

Кстати, награды за создание блоков — это единственный способ эмиссии биткойна. То есть все новые биткойны создаются именно с помощью майнинга.

Новый блок создаётся только раз в 10 минут. На это есть две причины.

Во-первых, сделано это для стабильной синхронизации — чтобы за 10 минут успеть распространить блок по всему интернету. Если бы блоки создавались непрерывно всеми желающими, то интернет был бы заполонен разными версиями, и было бы сложно понять, какую из этих версий все должны в итоге дописать в конец блокчейна.

Во-вторых, эти 10 минут тратятся на то, чтобы сделать новый блок «красивым» с математической точки зрения. Только правильный и только красивый блок дописывается в конец дневника-блокчейна.

Почему блоки должны быть «красивыми»

Правильный блок — это значит, что в нем все верно, все по правилам. Основное правило: тот, кто передает деньги, действительно имеет столько денег.

А красивый блок — это такой, свертка от которого имеет много нулей в начале. Подробнее о том, что такое свертка (или «хэш» — результат некоего математического преобразования блока) вы опять-таки можете вспомнить отсюда. Но для нас сейчас это совершенно непринципиально. Важно то, что для получения красивого блока его нужно «трясти». «Трясти» означает незначительно менять блок — а потом проверять, а не стал ли он вдруг красивым.

Каждый майнер непрерывно «трясёт» блоки-кандидаты и надеется, что именно ему повезет первому «натрясти» красивый блок, который и будет включен в конец блокчейна, — а значит, именно этот майнер получит награду в $30 000.

При этом, если вдруг майнеров станет в десять раз больше, то блокчейн автоматически потребует, что для признания нового блока достойным записи в блокчейн он теперь должен быть в десять раз «красивее». Тем самым скорость появления новых блоков сохранится — будет появляться все равно один блок раз в 10 минут. А вот вероятность какого-то конкретного майнера получить награду уменьшится в 10 раз.

Теперь мы готовы ответить на вопрос, зачем же блоки должны быть красивыми. Это сделано для того, чтобы какой-нибудь условный Вася не мог взять и просто переписать всю историю транзакций.

У Васи не выйдет заявить: «Нет, не отправлял я Мише 10 биткоинов, в моем варианте истории нет такого — верьте мне». Ведь в этом поддельном варианте истории блоки обязаны быть красивыми, а как мы знаем, чтобы натрясти хотя бы один такой блок, надо, чтобы все майнеры работали целых 10 минут, куда уж одному Васе справиться.

Майнеры

Концепция понятна, теперь давайте повнимательнее посмотрим на майнеров.

В 2009 году, когда о Биткойне знали только энтузиасты (или скорее даже только его создатели) и стоил он по пять центов за штуку, майнить было легко. Майнеров было немного, допустим, сто. А значит, в среднем за сутки условному майнеру Иннокентию хоть раз выпадала удача натрясти блок и получить награду.

К 2013 году, когда курс Биткойна подрос до сотни долларов за штуку, энтузиастов-майнеров было уже столько, что ждать удачи пришлось бы месяцами. Майнеры стали объединяться в «пулы». Это такие картели, которые трясут один и тот же блок-кандидат все вместе, а потом делят награду на всех по справедливости (пропорционально затраченным усилиям).

Потом появились специальные устройства — ASIC. Это такие микросхемы, которые созданы специально для выполнения конкретной задачи. В данном случае «асики» узко заточены под то, чтобы как можно более эффективно «трясти» блоки Биткойна.

Майнинг-мощность «асиков» несопоставимо больше мощности обычного компьютера, который умеет выполнять любые расчеты. В Китае, Исландии, Сингапуре и других странах стали строить огромные «фермы» из систем на ASIC. Выгодно расположить ферму в шахте под землей, потому что там холодно. Еще выгоднее рядом построить ГЭС, чтобы электричество было дешевле.

Итогом этой гонки вооружений стало то, что майнить именно биткойны в домашних условиях стало совершенно неоправданно.

Майнинг альткоинов или почему видеокарты пропали именно сейчас

Биткойн — первая и самая популярная криптовалюта. Но с приходом популярности криптовалют как явления как грибы стали появляться конкуренты. Сейчас существует порядка сотни альтернативных криптовалют — так называемых альткоинов.

Каждый создатель альткоина не хочет, чтобы майнить его монетки было сразу очень сложно и дорого, поэтому он придумывает новые критерии красоты блоков. Желательно такие, чтобы создание специализированных устройств (ASIC) было затруднено или максимально отсрочено.

Все делается для того, чтобы любой фанат этого альткоина мог взять свой обычный компьютер, вносить ощутимый вклад в суммарную мощность сети и получать награду. Для «тряски» при этом используется обычная видеокарта — так уж вышло, что видеокарты хорошо подходят для подобных вычислений. Таким образом при помощи доступности процесса майнинга можно увеличить популярность этого альткоина.

Обратите внимание на вторую строчку в таблице выше — Ethereum. Это сравнительно новая криптовалюта (появилась в 2015 году), но с особыми возможностями. Если коротко, то главное нововведение Ethеreum — возможность включать в блокчейн не только статичную информацию о проведенных платежах, но и интерактивные объекты — смарт-контракты, — которые работают по запрограммированным правилам.

Почему это создало такой ажиотаж мы поговорим в отдельной статье. Пока будет достаточно сказать, что новые свойства Ethereum обеспечили большой интерес «криптоивесторов» и, как следствие, бурный рост ее биржевой цены. Если на начало 2017 года один «эфир» стоил $8, то уже к 1 июня курс пробил отметку в $200.

Майнить именно Ethereum стало особенно выгодно, поэтому майнеры и скупили видеокарты.

Видеокарта Gigabyte специально для майнинга — сразу без всяких ненужных вещей вроде выхода на монитор. Источник

Что будет, если майнеры перестанут майнить

Предположим, что майнить стало невыгодно (прибыль не окупает затраты на оборудование и электричество), и майнеры перестают майнить или начинают майнить какую-то другую валюту. Что тогда? Правда ли, что если майнеры перестанут майнить, то Биткойн перестанет работать или будет работать слишком медленно?

Нет. Как мы с вами выяснили выше, блокчейн постоянно адаптирует критерии «красоты» создаваемых блоков, чтобы в среднем скорость их создания была постоянной. Если будет в 10 раз меньше майнеров, новый блок придется «трясти» в 10 раз меньше, но сам блокчейн при этом будет полностью исполнять свои функции.

Пока рост биржевого курса с лихвой компенсирует падение награды, но когда-нибудь основная прибыль будет поступать с комиссий за переводы, которые тоже забирает себе майнер. Без работы и без награды они не останутся.

Заключение

Мы разобрались, что же на самом деле из себя представляет майнинг, зачем он нужен, кому и когда выгодно майнить, куда из магазинов пропали все видеокарты, и почему некоторые производители теперь выпускают видеокарты сразу без выхода на монитор.

Материал был взят с сайта: https://blog.kaspersky.ru/