Aquests dies el bloc ha estat una mica animat amb el tema dels servidors, el nostre amic Fico ens ha anat donant càtedra sobre les xarxes d'ordinadors en la seva sèrie Xarxes de Ordinadors per a les PIMES, A més d'un parell d'articles per a instal·lar i configurar servidors web a Com instal · lar i configurar XAMPP en GNU / Linux y Com instal·lar Nginx amb Google Page Speed en Ubuntu automàticament.
Com el món del programari lliure és tan nodrit, de vegades simple i altres vegades una mica més complex, el dia d'avui li portem un petit bash de 5 línies, que ens permet crear un simple servidor web.
Shinatra
Shinatra és el nom de l'bash realitzat per Ben Rady i que ha estat distribuït de manera lliure, és tan efectiu com cal, simplement vam crear o descarreguem el bash amb les línies de codi necessàries i executem el bash amb el port + el missatge que volem allotjar.
Aquest script que ens permet crear un simple servidor web, funciona en diverses distros GNU / Linux i en OS X, no necessita instal·lació, és flexible en les rutes que es volen utilitzar, permet tot tipus de contingut, a més que pot a arribar a ser una eina molt útil, en el cas que desitgis col·locar informació de manera ràpida en qualsevol servidor.
Com utilitzar Shinatra
Shinatra està compost per les següents línies de codi:
#! / Bin / bash RESPONSE = "HTTP / 1.1 200 OK \ r \ nConnection: keep-alive \ r \ n \ r \ n $ {2: -" OK "} \ r \ n" while {echo -en " $ RESPONSE "; } | nc -l "$ {1: -8080}"; do echo "=============================================== = "done
Pots simplement crear un arxiu .sh, amb el nom que desitgis i després executar de la manera següent:
./shinatra.sh [port] [response]
També pots obtenir el script actualitzat des dels repositoris oficials, per a això segueix els següents passos:
git clone https://github.com/benrady/shinatra.git cd shinatra / ./shinatra.sh 80 'Missatge de Resposta de l'Servidor'
A l'script pots enviar-li el que vulguis, per exemple:
Sens dubte una manera ràpida, senzilla i fàcil de posar a funcionar un servidor web, la utilitat i l'abast de la mateixa és variada. Quin ús li donaries a aquest script? Et sembla útil ?.
Fa un temps vaig fer jo un script semblant en què podies definir vàries de les respostes segons la ruta i tot. No eren 5 línies però podíem fer diverses coses: http://totaki.com/poesiabinaria/2015/03/mini-servidor-web-con-bash-y-netcat-para-paginas-en-mantenimiento/
El dolent de fer-ho a l'estil netcat és que no aprofitem concurrència, i els recursos es malgasten molt, però és un bonic experiment 🙂
Una altra forma és amb python (que ve pràcticament en totes les distros)
suo python -m SimpleHTTPServer 80
Funciona diferent, aquesta forma serveix els arxius que estiguin en el directori on s'executi el servidor, però és una altra forma simple
una altra amb php és
php -S 127.0.0.1:9000
Aquest post el vaig llegir fa un anyet, per si volen una llista completeta de servidors web per línia de comandes.
https://www.busindre.com/servidor_web_por_linea_de_comandos.
Pots transferir un arxiu en un servidor que no té res instal·lat, i no tens permís ROOT:
#! / Bin / bash
file = »$ 1"
port = 8080
n = »\ r \ n»
body = »$ (base64« $ {file} »)»
RESPONSE = »HTTP / 1.1 200 OK»
RESPONSE = »$ {RESPONSE} $ {n} Connection: keep-alive»
RESPONSE = »$ {RESPONSE} $ {n} Content-Type: application / octet-stream»
RESPONSE = »$ {RESPONSE} $ {n} Content-Disposition: inline; filename = \ »$ {file} \» »
RESPONSE = »$ {RESPONSE} $ {n} $ {n} $ {body}»
while {echo -en «$ RESPONSE»; } | nc -l «$ {port}»; do
fet «================================================ »
fet
Després, a l'rebre-ho transformes novament amb «base64 -d filename»
Hi ha molts exemples més a:
$ Man nc
A Linux i macOS, es pot utilitzar l'administrador de shell i paquets preferit. Al Windows 10, pot instal · lar Windows Subsystem per a Linux per obtenir una versió d'Ubuntu i Bash integrada amb Windows, molt bon tutorial.
https://clongeek.com/como-instalar-macos-desde-usb/