Traffic Cardinal Traffic Cardinal написал 26.02.2024

Как создать сервер на домашнем ПК

Traffic Cardinal Traffic Cardinal написал 26.02.2024
6 мин
0
939
Содержание

Всем привет! Не так давно мы писали о том, как развернуть сервер на телефоне с помощью Termux. Это довольно удобный способ разжиться сервером для тестов, но все же телефон не является полноценной заменой компьютеру. Поэтому сегодня мы расскажем о том, как развернуть Python-сервер на ПК. Причем на ПК под ОС Windows — без необходимости установки специализированной серверной ОС. Не будем ходить вокруг да около — погнали!

banner banner

Подготовка к созданию сервера

По умолчанию Винда не особо заточена под «серверные делишки». Более того, не заточена она и под работу с Python. Поэтому первое, что нам нужно будет сделать, — установить интерпретатор для этого языка программирования. Вероятно, все это звучит непонятно, но на деле это не сложнее установки любой другой программы.

Нужно лишь:

  1. Зайти на официальный сайт Python в раздел загрузок.
  2. Выбрать последнюю версию, поддерживаемую вашей ОС.
  3. Скачать установочный файл.
  4. Далее мы советуем проставить галочки напротив пунктов «Использовать права администратора» и добавить python.exe в PATH.

* Важное уточнение — следует понимать, что это небезопасно, так как создает дополнительные уязвимости на вашем ПК. Однако так как мы рассматриваем развертывание сервера исключительно в качестве «тестового полигона», то для удобства идем на этот шаг. Если же вы планируете использовать ПК как сервер на постоянной основе — рекомендуем изучить вопрос безопасности глубже, чтобы понимать, к чему приведут те или иные действия с вашей стороны.

  1. Дожидаемся завершения установки.

Настройка сервера Python

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

python -m pip install --upgrade pip

Затем мы советуем ввести команду для установки git-модуля. Это необязательно, но, скорее всего, он вам пригодится.

pip install gitpython

По такому же принципу советуем установить модули requests и asyncio.

pip install requests

pip install asyncio

В целом вы можете ставить любые нужные вам модули через pip install название модуля — если они есть в официальном репозитории Python, они будут установлены.

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

  • numpy — модуль для работы с многомерными массивами.

  • pandas — модуль для обработки и анализа больших объемов данных.

  • matplotlib или seaborn — модули для визуализации данных.

  • scikit-learn — модуль для машинного обучения.

  • datetime — модуль для временных меток и иных функций, использующих значение даты/времени.

  • os и shutil — модули для работы с ОС.

  • random — модуль для генерации случайных чисел.

  • re — модуль для регулярных выражений.

  • virtualenv или venv — модули для создания изолированной виртуальной среды.

  • requests — модуль для отправки HTTP-запросов.

  • pytest — фреймворк для тестов.

Теперь перейдем к самим серверам. Сразу уточним, что ниже приведен лишь перечень модулей под разные типы серверов. Настройка сервера каждого конкретного типа — это отдельная тема, которая будет упираться в ваши конкретные задачи. Поэтому дать универсальное решение в рамках одной статьи невозможно. Тем не менее для общего понимания того, что можно сделать с помощью Винды и Python, приводим вам список серверных модулей. Все они также устанавливаются через команду pip install название_модуля:

HTTP-серверы:

  • Flask.

  • Django.

  • Bottle.

WebSocket-серверы:

  • Flask-SocketIO (требует Flask).

  • Tornado.

  • websockets

RESTful API-серверы:

  • FastAPI.

  • Flask-RESTful.

  • Django REST framework (требует Django)

SMTP/POP3/IMAP-серверы:

  • twisted.mail.

  • aiosmtpd.

  • Inbox.

FTP-серверы:

  • pyftpdlib.

  • ftplib.

  • asyncftp.

SSH-серверы:

  • paramiko.

  • asyncssh.

  • Twisted Conch.

DNS-серверы:

  • dnspython.

  • PowerDNS.

  • minidns.

SQL-серверы:

  • SQLAlchemy.

  • Pony ORM.

  • Django ORM.

RPC-серверы:

  • xmlrpc.server.

  • JSON-RPC.

  • GRPC.

Список выше не является исчерпывающим.

Демонстрация

Чтобы более наглядно продемонстрировать, зачем все это надо, приведем пример развертывания телеграм-бота на сервере на домашнем ПК.

На скриншоте видно взаимодействие с серверами Телеги — запрос на СМС-авторизацию и получение информации о комментариях под постами.

Вот еще один пример — также запрос на авторизацию и получение отчета об отправке сообщений.

Важный нюанс

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

И если с железом еще все не так критично, то серверная ОС уже вполне себе значима, так как ее архитектура позволяет добиться более стабильной, быстрой и безопасной работы сервера. Обычные же «ОС для простых смертных» в принципе можно обвешать разными костылями и превратить в аналог серверной — но оно того не стоит. Быстрее и проще будет сразу установить серверную ось. Это актуально и для Винды, и для Линукса, и для всего остального.

Подводя итоги

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

Здравствуйте! У вас включен блокировщик рекламы, часть сайта не будет работать!