Здесь я собираю свои заметки по администрированию Linux-серверов. В основном - это CentOS, иногда Ubuntu Server. Моей настольной ОС является также Linux. В настоящее время - Manjaro, раньше были Fedora, Mint, Ubuntu. Поэтому здесь я также складываю свои соображения по поводу настройки этой системы
Я уже поднимал тему о том, как запускать на продакшне django-проекты, используя связку uwsgi+nginx. Сегодня рассмотрим другую возможность поднять django-проект на боевом сервере. Для этих целей будем использовать WSGI-сервер Gunicorn. Он представляет собой портированный на Python проект Unicorn для Ruby. Gunicorn прост в настройке, лекго устанавливается. Многие админы рекомендуют его в качестве WSGI-сервера для Django-проектов.
Настройка почтовой системы в Linux считается одной из самых сложных. Такое мнение сложилось ещё со времён, когда единственным MTA был Sendmail. Его конфигурирование действительно сложно. Сегодня у владельцев Linux-серверов есть замечательные альтернативы: Postfix и Exim. Они гораздо проще в настраивании, хотя и требует определённой квалификации со стороны системного администратора. В этой замете я опишу процесс установки и настройки сервера Postfix, который будет работать в связке с Dovecot - IMAP и POP3 сервером. Также мы установим и настроим Postfixadmin - удобный и простой веб-интерфейс к нашей почтовой системе, позволяющий довольно просто создавать почтовые домены и почтовые ящики. В качестве СУБД мы будем использовать PostgreSQL.
Сегодня редко какой сервер общается с клиентом по незащищённому каналу, через 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 в нашу систему.