Что входит в понятие «поднять сервер»? — Хабр Q&A
- Прийти в серверную, взять сервер и приподнять его. Проблемы: обычно сервера прикручены к стойкам. Легко поднять неприкрученный сервер, прикрученный следует открутить, отсоединить и тогда уже поднимать. Не забудьте потом всё опустить и подключить как было.
- Взять и купить на месяцок самую дешевую виртуалку (VDS) на каком-нибудь лоу-кост хостинге. Выберите ubuntu, поставьте docker, запустите в отдельных контейнерах (и пропишите в контаб) VPN, прокси для Телеграма, сервер майнкрафта. Каждое из этих действий делается одной командой. Проблемы: осторожно, на такой сервер легко подсесть. Стабильно работающий телеграм, отсутствие блокировок сайтов, свой ламповый сервачок майнкрафта — к этому быстро привыкаешь. Потом захочется поднять своё облако, запустить свою интернет-радиостанцию для друзей… Будьте осторожны, если борода прорастёт сквозь свитер, от них будет трудно избавиться.
- Внимательно изучите предметную область в рамках которой вы проходите стажировку и, наверно, станет понятно о каком сервере тут может идти речь.
- Наверно ваш вопрос разумно задать тем, кто поставил такую задачу, а не неопределенной группе лиц, которые помогают новичкам решать технические задачи.
Ответ написан
Комментировать
Ну нужны им сильные разработчики.
Чёж тут непонятного?!)))
Поднять сервер — означает поставить на сервер серверную операционную систему, настроить права пользователей и файрволл (межсетевой экран), установить и настроить работу типовых программных интернет-серверов: веб-сервер, днс-сервер, почтовый сервер, докер и т.д.
Ответ написан 2020, в 12:52″> более двух лет назад
Комментировать
Установить и настроить сервер так, чтобы он работал и выполнял свои функции.
Ответ написан
Комментировать
к примеру вот это https://www.howtoforge.com/tutorial/install-apache…
Ответ написан
Комментировать
Сервера могут быть разными, от банального, который принимает число и возвращает его удвоенное кол-во, до продвинутого (например игрового) сервера. Для стажировки может подойти нечто среднее, к примеру прокси-сервер.
Ответ написан
Комментировать
Поднятие сервера можно вычеркнуть поскольку установив чистый линукс вы уже подняли сервер ssh
думаю тут можно было бы переименовать в «собственный сервер»
в таком разрезе это клиент серверное приложение, где сервер слушает порт.
Ответ написан
Комментировать
Поднять сервер значит запустить серверное приложение, к которому можно подключиться извне, получив от него ответ.
Например, установить Апачи, и в браузере открыть веб страничку, которую отдает данный сервер. Или установить почтовый сервер, и подключившись к нему отослать письмо. Тем самым удостоверившись в работоспособности.
При этом, если сервер запущен, но результат не получаете(страничка не открывается, почта не уходит), необходимо устранить неисправность, и обеспечить работоспособность.
Ответ написан
Комментировать
Как настроить локальный сервер для тестирования? — Изучение веб-разработки
Эта статья объясняет как установить простой локальный тестовый сервер на вашем компьютере, а так же основы его использования.
Требования: | Сначала вам необходимо изучить как работает интернет, а также что такое веб-сервер (en-US). |
---|---|
Цель: | Вы научитесь как устанавливать локальный тестовый сервер. |
На протяжении всего обучения, вы будете открывать примеры непосредственно в браузере — двойным кликом по HTML файлу, перетаскиванием файла в окно браузера, или через меню File > Open… и указывая необходимый HTML файл. Существует множество способов как это сделать.
Если веб-адрес начинается с file://
в котором далее прописан путь к файлу на вашем локальном жёстком диске, значит используется локальный файл. В противоположность этому, если вы откроете на просмотр один из наших примеров, расположенных на GitHub (или пример расположенный на любом другом удалённом сервере), веб-адрес будет начинаться с http://
или https://
, что означает что файл был получен через HTTP.
Некоторые примеры могут не запуститься, если вы попробуете открыть их как локальные файлы. Это может произойти по нескольким причинам, самые распространённые из которых:
- Они содержат асинхронные запросы. Некоторые браузеры (включая Chrome) не будут запускать асинхронные запросы (см. Fetching data from the server), если вы просто запускаете пример из локального файла. Это связано с ограничениями безопасности (для получения дополнительной информации о безопасности в Интернете, ознакомьтесь с Website security).
- Они имеют серверный язык. Серверные языки (например, PHP или Python) требуют специального сервера для интерпретации кода и предоставления результатов.
Чтобы обойти проблему асинхронных запросов, нам нужно протестировать такие примеры, запустив их через локальный веб-сервер. Один из самых простых способов сделать это для наших целей — использовать модуль SimpleHTTPServer
Python.
Для этого нужно:
- Установить Python. Если вы пользуетесь Linux или Mac OS X, всё уже готово в вашей системе. Если вы пользователь Windows, вы можете скачать установочный файл с домашней страницы Python:
- Зайдите на python. org
- В секции загрузок, выберите линк для Python «3.xxx».
- Внизу страницы выберите Windows x86 executable installer и скачайте его.
- После загрузки файла запустите его.
- На первой странице инсталлятора выберите чекбокс «Add Python 3.xxx to PATH».
- Нажмите Install, затем нажмите Close когда установка закончится.
- Откройте командную строку (Windows)/ (OS X/Linux). Для проверки установки Python введите следующую команду:
python -V
- Система вернёт вам номер версии установленной программы. В случае успешного выполнения команды
python -V
нужно перейти в директорию с вашим проектом, используя командуcd
:# include the directory name to enter it, for example cd Desktop # use two dots to jump up one directory level if you need to cd ..
- Введите команду для запуска сервера в том каталоге:
# If Python version returned above is 3.
- По умолчанию это приведёт к запуску содержимого каталога на локальном веб-сервере на порту 8000. Вы можете перейти на этот сервер, перейдя на URL-адрес
localhost: 8000
в своём веб-браузере. Здесь вы увидите содержимое указанного каталога — щёлкните файл HTML, который вы хотите запустить.
Примечание: . Если у вас уже есть что-то на порту 8000, вы можете выбрать другой порт, запустив команду сервера, за которой следует альтернативный номер порта, например: python -m http.server 7800
(Python 3.x) или python -m SimpleHTTPServer 7800
(Python 2.x). Затем вы можете получить доступ к своему контенту на localhost: 7800
.
Модуль Python SimpleHTTPServer (python 2.0) http.server (python 3.0)
- Для запуска кода на стороне сервера Python вам необходимо использовать веб-инфраструктуру Python. Вы можете узнать, как использовать структуру Django, прочитав Django Web Framework (Python). Flask также является хорошей (чуть менее тяжёлой) альтернативой Django. Чтобы запустить это, ознакомьтесь с install Python/PIP, а затем установите Flask с помощью
pip3 install flask
. На этом этапе вы сможете запустить примеры Python Flask, используя, например,python3 python-example.py
, затем перейдя наlocalhost: 5000
в свой браузер. - Чтобы запустить серверный код Node.js (JavaScript), вам нужно использовать Node.js или фреймворк, построенный поверх него. Express — хороший выбор — см. Express Web Framework (Node.js/JavaScript).
- Чтобы запустить PHP-серверный код, вам понадобится настройка сервера, которая может интерпретировать PHP. Хорошими вариантами для локального тестирования PHP являются MAMP (Mac и Windows), AMPPS (Mac, Windows, Linux) и LAMP (Linux, Apache, MySQL и PHP / Python / Perl). Это полные пакеты, которые создают локальные настройки, позволяющие запускать базы данных Apache, PHP и MySQL.
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
Want to get more involved?
Learn how to contribute.
This page was last modified on by MDN contributors.
python — Есть ли способ поднять код состояния сервера в качестве клиента?
спросил
Изменено 2 года, 7 месяцев назад
Просмотрено 831 раз
Иногда из-за плохой конструкции сервера я получаю код состояния 200, хотя он должен быть другим.
В таких случаях, как я могу сам на стороне клиента поднять соответствующий ответ (например, 404
). Это будет имитировать, как если бы оно было возвращено сервером?
Я видел несколько ответов через django
. Это единственный способ?
Также я не видел ничего подобного в стандартных исключениях python здесь. Почему это невозможно с помощью стандартных исключений Python?
Вот как я сейчас справляюсь с этим:
время импорта импорт aiohttp отсрочка импорта @backoff.on_exception(backoff.expo, aiohttp.ClientError, max_tries=5, max_time=5) async def _fetch_url (сеанс, URL, msg_handler): время простоя = 1 время простоя < 60: async с ожиданием session.get(url, raise_for_status=True) в качестве ответа: результат = ожидание msg_handler (ответ, URL-адрес) # пустые результаты означают ошибку в запросе, но код состояния 200. если len(результат) == 0: время простоя = время простоя * 2 time. sleep(время простоя) еще: вернуть результат
- python
- исключение
- python-запросы
- http-status-code-404
14
Судя по вашему коду, вы пытаетесь инициировать действие, которое должно запускаться при возникновении ошибки запроса. Однако коды состояния поступают с сервера и не контролируются клиентом . Если сервер возвращает 200, это означает, что он получил и ответил на ваш запрос правильно.
Декоратор запускается любым исключением типа aiohttp.ClientError
. Таким образом, чтобы запустить его вручную, вам просто нужно вызвать исключение этого типа (или любых производных от него типов). На этой странице приведен список всех исключений aiohttp
.
Итак, вы можете просто использовать следующее, чтобы вызвать исключение, когда вы обнаружите ошибку в ответе сервера:
поднять aiohttp. ClientError('Ответ сервера пуст')
Предположим, вы работаете SimpleHTTPServer
, самый простой способ — использовать SimpleHTTP404Server
, вы можете установить его просто, запустив
pip install SimpleHTTP404Server
Перейдите в каталог и выполните следующую команду, чтобы серверировать его через порт 8000.
python -m SimpleHTTP404Server
Исключение должно относиться к одной из следующих категорий:
- Синтаксические ошибки
- Обработка исключений
- Вызов исключений
Очевидно, вы ищете решение не в том месте. То, что вы, возможно, хотите сделать, это поднять определяемое пользователем исключение по определенным критериям.
Рассмотрим простой пример ниже:
# определение определяемых пользователем исключений Python Ошибка класса (исключение): """Базовый класс для других исключений""" проходить класс ValueTooSmallError (Ошибка): """Вызывается, когда входное значение слишком мало""" проходить класс ValueTooLargeError (ошибка): """Вызывается, когда входное значение слишком велико""" проходить # вам нужно угадать это число число = 10 # пользователь угадывает число, пока не угадает его правильно пока верно: пытаться: i_num = int(input("Введите число:")) если i_num < число: поднять ValueTooSmallError Элиф i_num > число: поднять ValueTooLargeError перерыв кроме ValueTooSmallError: print("Это значение слишком мало, попробуйте еще раз!") Распечатать() кроме ValueTooLargeError: print("Это значение слишком велико, попробуйте еще раз!") Распечатать() print("Поздравляем! Вы угадали правильно. ")
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
python — могу ли я вызвать исключение внутри функции в блоке «try:», когда клиент отключается от сервера?
Задавать вопрос
спросил
Изменено 2 года, 2 месяца назад
Просмотрено 222 раза
Я пытаюсь создать простой серверно-клиентский чат с сокетом python.
у меня есть следующий код:
def handle_connection(client): пока (1): пытаться: сообщение = получить_сообщение () трансляция (сообщение ["данные"]) кроме: # пока мне все равно какое исключение print("клиент отключен") защита Receive_message (client_socket): пытаться: message_header = client_socket.recv(ЗАГОЛОВОК) если len(message_header) == 0: вернуть ложь message_length = int (message_header.decode («utf-8»)) сообщение = client_socket.recv(длина_сообщения).декодировать("utf-8") вернуть {"заголовок": message_header, "данные": сообщение} кроме: # скорее всего сработает, когда клиент отключится вернуть ложь
, где receive_message()
вызывает внутри себя client.recv(HEADER)
и возвращает либо False
, когда сообщения нет, либо {"header": msg_header, "data": msg}
, когда все в порядке.
мой вопрос: если client.recv()
завершается сбоем внутри receive_message()
из-за закрытия CLI клиента, будет ли это вызывать исключение и печатать "клиент отключен"
, или нет?
я придумал следующее решение, которое, я думаю, работает:
Я определил функцию с именем handle_disconnection()
, которая обрабатывает все содержимое внутри , кроме
в приведенном выше коде.
по определению handle_connection (client_socket): пока 1: пытаться: сообщение = получить_сообщение () если не сообщение: handle_disconnection (client_socket) перерыв трансляция (сообщение ["данные"]) кроме: # клиент отключен handle_disconnection (client_socket) перерыв
это допустимый и/или правильный программный подход к проблеме? если этот подход неверен, как я могу правильно с ним справиться?
- python
- python-3.