Как создать простой веб-сервер с 5 строками bash

В наши дни блог немного оживлен темой серверов, наш друг Фико читал нам лекцию о компьютерных сетях в своей серии Компьютерные сети для малого и среднего бизнеса, плюс пара статей по установке и настройке веб-серверов в Как установить и настроить XAMPP в GNU / Linux y Как установить NGINX с Google Page Speed ​​на Ubuntu автоматически.

Каким образом мир бесплатного программного обеспечения так питателен, иногда прост, а иногда немного сложнее, сегодня мы предлагаем вам небольшую попытку из 5 строк, которая позволяет нам создать простой веб-сервер.

Шинатра

Шинатра это название попытки, предпринятой Бен ради и что он распространяется свободно, он столь же эффективен, сколь и точен, мы просто создаем или загружаем bash с необходимыми строками кода и выполняем bash с портом + сообщение, которое мы хотим разместить.

Этот скрипт, который позволяет нам создать простой веб-сервер, работает в различных дистрибутивах GNU / Linux и в OS X, он не требует установки, он гибок в путях, которые вы хотите использовать, он допускает все виды контента, а также может достигать быть очень полезным инструментом, если вы хотите быстро разместить информацию на любом сервере.

Как использовать Шинатру

Шинатра Он состоит из следующих строк кода:

#! / bin / bash RESPONSE = "HTTP / 1.1 200 OK \ r \ nСоединение: keep-alive \ r \ n \ r \ n $ {2: -" OK "} \ r \ n" while {echo -en " $ ОТВЕТ "; } | nc -l "$ {1: -8080}"; do echo "============================================== = "готово

Вы можете просто создать файл .sh с любым именем, а затем запустить его следующим образом:

./shinatra.sh [port] [response]

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

git clone https://github.com/benrady/shinatra.git cd shinatra / ./shinatra.sh 80 'Ответное сообщение сервера'

В скрипт можно отправить все, что угодно, например:

Создайте простой веб-сервер

Несомненно, это быстрый, простой и легкий способ запустить веб-сервер, его полезность и объем разнообразны. Какую пользу вы бы использовали в этом сценарии? Считаете ли вы это полезным?


7 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Гаспар Фернандес сказал

    Некоторое время назад я сделал похожий скрипт, в котором можно было определить несколько ответов в зависимости от маршрута и всего остального. Это не было 5 строк, но мы могли сделать несколько вещей: http://totaki.com/poesiabinaria/2015/03/mini-servidor-web-con-bash-y-netcat-para-paginas-en-mantenimiento/

    Обратной стороной использования стиля netcat является то, что мы не пользуемся преимуществами параллелизма, а ресурсы тратятся впустую, но это хороший эксперимент 🙂

  2.   Гонсало Мартинес сказал

    Другой способ - использовать python (который присутствует практически во всех дистрибутивах).

    sudo python -m SimpleHTTPServer 80

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

  3.   Хосе Перес сказал

    другой с php
    PHP-S 127.0.0.1:9000

  4.   Изображение местозаполнителя для Antonio Cifuentes сказал

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

    https://www.busindre.com/servidor_web_por_linea_de_comandos.

  5.   Эдуардо Куомо сказал

    Вы можете передать файл на сервер, на котором ничего не установлено, и у вас нет разрешения ROOT:

    #! / Bin / Баш
    file = »$ 1 ″
    Порт = 8080

    п = »\ г \ п»
    body = »$ (base64« $ {файл} »)»

    RESPONSE = »HTTP / 1.1 200 ОК»
    RESPONSE = »$ {RESPONSE} $ {n} Connection: keep-alive»
    RESPONSE = »$ {RESPONSE} $ {n} Content-Type: application / octet-stream»
    RESPONSE = »$ {RESPONSE} $ {n} Content-Disposition: встроенный; filename = \ »$ {файл} \» »
    RESPONSE = »$ {RESPONSE} $ {n} $ {n} $ {body}»

    в то время как {echo -en "$ RESPONSE"; } | nc -l "$ {порт}"; делать
    эхо «============================================== »
    сделанный

    Затем, когда вы его получите, вы снова преобразуете его с помощью "base64 -d filename"

  6.   Эдуардо Куомо сказал

    Есть еще много примеров в:
    $ человек нк

  7.   Хосе Мария Гарсия сказал

    В Linux и macOS можно использовать предпочитаемую оболочку и диспетчер пакетов. В Windows 10 вы можете установить подсистему Windows для Linux, чтобы получить версию Ubuntu и Bash, интегрированную с Windows, очень хорошее руководство.

    https://clongeek.com/como-instalar-macos-desde-usb/