Hvordan lage en enkel webserver med 5 linjer bash

I disse dager har bloggen vært litt livlig med temaet servere, vår venn Fico har holdt oss et foredrag om datanettverk i serien sin Datanettverk for SMB, pluss et par artikler for installering og konfigurering av webservere i Hvordan installere og konfigurere XAMPP på GNU / Linux y Slik installerer du NGINX med Google Page Speed ​​på Ubuntu automatisk.

Hvordan verden av gratis programvare er så nærende, noen ganger enkel og andre ganger litt mer kompleks, i dag gir vi deg et lite 5-linjers forsøk, som lar oss lage en enkel webserver.

shinatra

shinatra er navnet på forsøket gjort av Ben raady og at den har blitt distribuert fritt, den er like effektiv som den er nøyaktig, vi oppretter eller laster bare ned bash med de nødvendige kodelinjene og kjører bash med porten + meldingen som vi ønsker å være vert.

Dette skriptet som lar oss lage en enkel webserver, fungerer i forskjellige GNU / Linux distroer og i OS X, det trenger ikke installasjon, det er fleksibelt i banene du vil bruke, det tillater alt slags innhold, pluss det kan være et veldig nyttig verktøy, i tilfelle du vil legge informasjon raskt til en hvilken som helst server.

Hvordan du bruker Shinatra

shinatra Den består av følgende kodelinjer:

#! / bin / bash RESPONSE = "HTTP / 1.1 200 OK \ r \ nTilkobling: hold i live \ r \ n \ r \ n $ {2: -" OK "} \ r \ n" mens {echo -en " $ RESPONSE "; } | nc -l "$ {1: -8080}"; gjør ekko "================================================== = "ferdig

Du kan ganske enkelt opprette en .sh-fil, med hvilket navn du vil, og deretter kjøre den som følger:

./shinatra.sh [port] [response]

Du kan også få det oppdaterte skriptet fra de offisielle arkivene. For å gjøre dette, følg disse trinnene:

git clone https://github.com/benrady/shinatra.git cd shinatra / ./shinatra.sh 80 'Server Reply Message'

Til skriptet kan du sende hva du vil, for eksempel:

Lag en enkel webserver

Uten tvil er det en rask, enkel og enkel måte å sette en webserver på jobb, verktøyet og omfanget av det er variert. Hva ville du bruke dette skriptet? Synes du det er nyttig?


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Gaspar Fernandez sa

    For en tid siden laget jeg et lignende skript der du kunne definere flere svar i henhold til ruten og alt. Det var ikke 5 linjer, men vi kunne gjøre flere ting: http://totaki.com/poesiabinaria/2015/03/mini-servidor-web-con-bash-y-netcat-para-paginas-en-mantenimiento/

    Det dårlige med å gjøre det netcat-stil er at vi ikke benytter oss av samtidighet, og ressurser blir kastet bort mye, men det er et fint eksperiment

  2.   Gonzalo martinez sa

    En annen måte er med python (som kommer i praktisk talt alle distroer)

    sudo python -m SimpleHTTPServer 80

    Det fungerer annerledes, denne måten serverer filene som er i katalogen der serveren kjører, men det er en annen enkel måte

  3.   Jose Perez sa

    en annen med php er
    php -S 127.0.0.1:9000

  4.   Antonio Cifuentes plassholderbilde sa

    Jeg leste dette innlegget for et år siden, i tilfelle du vil ha en komplett liste over kommandolinjeservere.

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

  5.   Edward Cuomo sa

    Du kan overføre en fil til en server som ikke har noe installert, og du har ikke ROT-tillatelse:

    #! / Bin / bash
    fil = »$ 1 ″
    port = 8080

    n = »\ r \ n»
    body = »$ (base64« $ {file} »)»

    SVAR = »HTTP / 1.1 200 OK»
    RESPONSE = »$ {RESPONSE} $ {n} Tilkobling: hold i live»
    RESPONSE = »$ {RESPONSE} $ {n} Innholdstype: applikasjon / oktettstrøm»
    RESPONSE = »$ {RESPONSE} $ {n} Innholdsdisponering: innebygd; filnavn = \ »$ {fil} \» »
    RESPONSE = »$ {RESPONSE} $ {n} $ {n} $ {body}»

    mens {ekko -en "$ RESPONSE"; } | nc -l "$ {port}"; gjøre
    ekko «================================================== »
    gjort

    Når du mottar den, forvandler du den igjen med "base64 -d filnavn"

  6.   Edward Cuomo sa

    Det er mange flere eksempler i:
    $ mann nc

  7.   Jose Maria Garcia sa

    På Linux og macOS kan den foretrukne skall- og pakkebehandleren brukes. På Windows 10 kan du installere Windows Subsystem for Linux for å få en versjon av Ubuntu og Bash integrert med Windows, veldig god opplæring.

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