© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
5 января 2018 г. 7:11

DjangoDjango - Урок 030. Возможности VDS сервера за 5 долларов для проекта на Django

Ubuntu, Django, VDS

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

Я решил рассказать об этом именно сейчас, поскольку неделю назад я расширил мощность сервера, докупив дополнительную память.

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

Конфигурация сервера

Изначально сайт работал на минимальной конфигурации, которую мне удалось взять. Стоимость тарифа 260 руб/месяц. Кстати, у моего провайдера есть и более дешёвый тариф (190 руб/месяц), но он является фиксированным, тогда как мой текущий тариф позволяет настраивать необходимую мне конфигурацию и увеличивать мощность сервера до такой, которая не предоставляется на фиксированных тарифах.

Конфигурация:

  1. Ядра процессора: 2 x 2,7 ГГц
  2. RAM: 512 Mb
  3. SSD: 5Gb
  4. ОС: Ubuntu 16.04
  5. Доступ в интернет: 100 Mbit/s

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

22 июня 2017 г. 10:17

LinuxНастройка HTTPS от Let`s Encrypt с помощью Certbot

LetsEncrypt, Ubuntu, Nginx, HTTPS, SSL, HTTP

Некоторое время назад на сайте перестал обновляться SSL сертификат от Let`s Encrypt . Судя по ошибкам, несколько поменялась структура  файлов для организации ключей. После исследования проблемы наиболее простым вариантом представилась установка SSL сертификатов с помощью специальной утилиты Certbot . Данная утилита производит установку сертификатов в автоматическом режиме, а также автоматически создаёт задачу по обновлению сертификата, которая базируется либо в планировщике cron либо в systemd.

Поскольку сервер сайта работает на Ubuntu 16.04, то и комплект установки был выбран для этой ОС. В случае других ОС на сайте Certbot предоставляются мануалы и для других систем.

Если Вы производите настройку SSL сертификата впервые, то можно воспользоваться руководством на сайте Certbot, если Вы уже производили настройку сертификата с помощью других утилит, например, с помощью пакета letsencrypt без использования certbot, как показано в следующей статье , то скорее всего понадобится сделать небольшую чистку перед установкой Certbot `a.

16 сентября 2016 г. 17:56

DjangoDjango - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

Ubuntu, Gunicorn, Django, PostgreSQL, Nginx

После того, как доступ к серверу с Ubuntu 16.04 был настроен в одной из предыдущих статей , настало время развернуть на нём всё необходимое для работы сайта, а именно:

  • Django - фреймворк для разработки web-приложений на языке Python;
  • PostgreSQL - базу данных SQL ;
  • Gunicorn - WSGI HTTP сервер на Python для UNIX систем;
  • Ngnix - HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения;
  • Supervisor - это менеджер процессов, который существенно упрощает управление долго работающими программами, в частности сайтами, которые необходимо автоматически перезапускать после падений.
16 сентября 2016 г. 5:38

PostgreSQLИсправление кодировки базы данных PostgreSQL с LATIN1 на UTF8

PostreSQL, UTF8, LATIN1, Ubuntu

В процессе настройки сервера для сайта, пришлось столкнуться с некоторыми проблемами. В частности с проблемой кодировки базы данных PostgreSQL. Дело в том, что при установке PostgreSQL, шаблоны баз данных создавались с кодировкой LATIN1, а сайт работает на Django, с использованием кодировки UTF8. В результате, при попытке вставки данных выпадала следующая ошибка:

ERROR: encoding UTF8 does not match locale en_US Detail: The chosen LC_CTYPE setting requires encoding LATIN1.

Поискав информацию, удалось найти несколько решений, среди которых было решение, которое позволяет пересоздать шаблон базы данных с кодировкой UTF8. Но пройдёмся внимательно по симптомам задачи.

14 сентября 2016 г. 17:18

LinuxПервоначальная настройка доступа к VDS на Ubuntu 16.04

Linux, VDS, Ubuntu

В связи с развитием ресурса EVILEG, было принято решение по плавному переезду на домен COM, а также переводу сайта с CMS Wordpress на фреймворк Django. С Ruby On Rails как-то не заладилось, а вот с Django процесс пошёл практически сразу.

Выбирать другой хостинг я не стал, и остался с текущим хостингом TIMEWEB , кстати рекомендую тем, кто ещё не определился со своим будущим хостингом VDS.

А теперь приступим к первоначальной настройке доступа к VDS, который предоставляет TIMEWEB.

28 февраля 2016 г. 15:17

QtQt Linux - Урок 002. Глобальный HotKey в Linux в приложении на Qt 5

Ubuntu, HotKey, linux, Qt, XCB, XLib

Работа с глобальными хоткеями в Windows является более тривиальной задачей, чем в Linux, поскольку в WinAPI имеются для этого подготовленные методы, которые не требуют большого количества кода. А также каждому хоткею устанавливается в соответствие ID , по которому данный хоткей можно удалить.

В Linux/Unix , которые используют графический сервер X11, применительно к Qt необходимо использовать функции для регистрации/разрегистрации хоткеев из библиотеки XLib, но обрабатывать приходится получаемые значения с помощью функционала библиотеки XCB, которая разрабатывается как аналог библиотеки XLib , но является более низкоуровневой и написана на языке программирования Си. Как и в случае с Windows, для обработки глобальных хоткеев в Qt 5.5 используется метод nativeEventFilter. Предлагаю сделать отдельный класс, наследованный от QAbstractNativeEventFilter для обработки хоткеев и установить данный фильтр на всё приложение.

Для установки хоткеев будут использоваться функции XKeysymToKeycode (для получения кода клавиши из последовательности KeySym) и XGrabKey (для установки хоткея).

Для разрегистрации хоткея будет использоваться функция XUngrabKey .

Структура проекта

  • GlobalHotkeyLinux.pro - профайл проекта;
  • mainwindow.h - заголовочный файл главного окна приложения;
  • mainwindow.cpp - файл исходных кодов главного окна приложения;
  • mainwindow.ui - файл формы главного окна приложения;
  • main.cpp - основной файл исходных кодов;
  • nativeeventfilter.h - заголовочный файл фильтра событий хоткеев;
  • nativeeventfilter.cpp - файл исходных кодов фильтра событий хоткеев.
15 февраля 2016 г. 15:07

QtQt Linux - Урок 001. Автозапуск Qt приложения под Linux

Qt, Linux, Ubuntu, autorun, автозапуск

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

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

Допустим название проекта и соответственно название исполняемого файла будет AutorunLinux, тогда потребуется создать исполняемый файл AutorunLinux.desktop по следующему пути:

~/.config/autostart/AutorunLinux.desktop

Содержимое исполняемого файла нужно сделать аналогичным другим файлам автозапуска других приложений, чтобы гарантировано получить требуемый результат. В случае с Ubuntu Linux 15.04/15.10 содержимое файла получилось следующее:

[Desktop Entry]
Type=Application
Exec=/home/dekadent/QT/Projects/build-AutorunLinux-Desktop_Qt_5_5_1_GCC_64bit-Debug/AutorunLinux
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_GB]=AutorunLinux
Name=AutorunLinux
Comment[en_GB]=AutorunLinux
Comment=AutorunLinux
19 октября 2018 г. 8:05
Василий Ильченко

C++ - Тест 001. Первая программа и типы данных

  • Результат:66баллов,
  • Очки рейтинга-1
18 октября 2018 г. 16:14
druidx

C++ - Тест 002. Константы

  • Результат:25баллов,
  • Очки рейтинга-10
18 октября 2018 г. 15:58
druidx

C++ - Тест 001. Первая программа и типы данных

  • Результат:80баллов,
  • Очки рейтинга4
Последние комментарии
19 октября 2018 г. 7:59
Евгений Легоцкой

Python 3 - Урок 001. Введение

Добрый день! Вот это линуксовая директива #!/usr/bin/python3 Указывает, где находится python пакет в системе. А вы видимо под windows разрабатываете. Попробуйте просто у...
19 октября 2018 г. 7:54
Abdurashid Parpieff

Python 3 - Урок 001. Введение

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> #!/usr/bi...
18 октября 2018 г. 8:31
Евгений Легоцкой

Qt/C++ - Урок 006. QSqlQueryModel - Таблицы в Qt с помощью SQL-запросов

Как-то даже странно, а вы что ли в отдельный поток убрали базу данных? То есть изначально инстанс создаётся в одном потоке, а все QSqlQuery в другом потоке? Они должны находиться в одном поток...
17 октября 2018 г. 8:43
pasagir

Qt/C++ - Урок 006. QSqlQueryModel - Таблицы в Qt с помощью SQL-запросов

Не получается bool DataBase::insertDataIntoDB(QVariantList data){ QSqlQuery query(db); QString str; qDebug()<<"InsertInsertInsertInsertInsert"<<QThread::curre...
17 октября 2018 г. 7:09
Евгений Легоцкой

Qt/C++ - Урок 006. QSqlQueryModel - Таблицы в Qt с помощью SQL-запросов

Попробуйте передать инстанс базы данных в конструктор QSqlQuery QSqlQuery q(db);
Сейчас обсуждают на форуме
19 октября 2018 г. 11:52
Евгений Легоцкой

Уведомления о лайках и дислайках

Вообще планируется система ачивок. А рейтинг есть в зачаточном состоянии. Но для системы ачивок нужно собраться с духом и выделить приличную кучку времени. Помимо того, что сами ачивки п...
18 октября 2018 г. 12:15
Михаиллл

Настройка Qt Creator для Android

все галочки включены.
18 октября 2018 г. 8:16
Allyans .

Работа с WinAPI в QT(изменение title bar)

Хорошо, я попробуй по вашей статье.
15 октября 2018 г. 12:45
Allyans .

QGraphicsItem change color

Хорошо)
11 октября 2018 г. 10:13
Arrow

Работа с WebView в QML

Нашел в чем проблема. Пишу на случай если кому-то попадется такое же счастье с WebView как и мне. Проблема как оказалась с Debug версией, так как в Release и Profile все работает (...
Присоединяйтесь к нам в социальных сетях