Здесь я собираю свои заметки по администрированию Linux-серверов. В основном - это CentOS, иногда Ubuntu Server. Моей настольной ОС является также Linux. В настоящее время - Manjaro, раньше были Fedora, Mint, Ubuntu. Поэтому здесь я также складываю свои соображения по поводу настройки этой системы
Сегодня редко какой сервер общается с клиентом по незащищённому каналу, через 80-й порт. Такие сервера устанавливают, как правило, локально, где шифровать данные особого смысла не имеет. Другое дело - WWW. Правилом хорошего тона на текущий момент является использование защищённого соединения, чаще всего через 443-й порт Для того, чтобы веб-сервер мог начать работу в таком режиме, необходимо каким-то образом получить SSL сертификаты и указать серверу, где они лежат. Для локальных задач можно использовать самоподписанные сертификаты. Однако, если таким сертификатом пользоваться в интернете, браузер заблокирует показ страниц, закодированных с помощью самоподписанного сертификата. И далеко не каждый пользователь сможет открыть такие страницы. Поэтому возникает задача получения сертификата, подписанного доверенной организацией, известной браузеру. Раньше эта услуга была платной. Теперь с конца 2015 года появилась возможность получить на 90 дней бесплатный криптографический сертификат от открытого Центр Сертификации Let's Encrypt. Я расскажу, как можно получить и установить такой сертификат у себя на сайте. Веб-сервер - Nginx, ОС - Ubuntu Server 18.04.
Часто необходимо добавить пользователя в Linux в определённую группу. Делается это с помощью команды usermod.
Самым популярным фреймворком для веб-разработки на Python является Django. Бекэнд пишется очень быстро, работа с БД очень простая. В процессе отладки на локальном компьютере можно пользоваться встроенным в него простым веб-сервером через вызов
python manage.py runserver
Однако для реального "боевого" сервера нужно решение понадежнее. Чаще всего выбирают связку Nginx + uWSGI. Как нам говорит Википедия uwsgi - веб-сервер и сервер веб-приложений, первоначально реализованный для запуска приложений Python через протокол WSGI. В свою очередь WSGI (Web Server Gateway Interface) - стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером. В этой заметке я рассматриваю как развернуть uWSGI на сервере (CentOS 7). Предполагается, что Nginx уже установлен, также предполагается, что установлен Python 3. Если он ставился из исходников, то исполняемые файлы лежат, скорее всего, в /usr/local/bin. Исходя из всего этого, давайте установим uWSGI в нашу систему.
CentOS 7 - стабильная операционная система, основанная на RedHat Enterprise Linux. Эти системы работают по принципу "если работает - не трогай". Поэтому они поставляются с довольно старыми, но зато проверенными версиями пакетов. Во многих случаях этот подход себя оправдывает, но иногда хочется видеть на своём сервере пакеты более свежих версий. Это касается, например, Python 3. Его вообще нет официальных репозиториях (есть только версии 2.7). А 3-й пайтон нужен для фреймворка Django. Поэтому приходится прилагать некоторые усилия, чтобы поставить на сервер Python самой последней версии.
Установка на сервере программ из исходников считается дурным тоном. Пакеты принято устанавливать через пакетные менеджеры (yum на RHEL / CentOS / Oracle или dpkg на Ubuntu Server / Debian). Но на домашней машине установка из исходников вполне себя оправдывает. В этом случае мы полностью контролируем процесс компиляции и самой установки: указываем в какой каталог устанавливать файлы, какие модули компилировать, какие библиотеки подключать и т.д. Вообщем, такой себе путь Gentoo или даже LFS. Итак, займемся компилированием из исходников PostgreSQL самой свежей версии на текущий момент - 13.1.