Pular para o conteúdo

Servidor HTTP em Bash

Esse script é um servidor HTTP funcional que responde a métodos GET. Porém perceba que ele só serve para aprender bash script, pois ele é bem inseguro e ainda tem vários bugs.

Para fazer esse script eu precisei instalar o programa socket (# aptitude install socket). Como só dá para subir um script, eu não pude mandar um script de inicialização que fiz (está no código fonte). Para inicializá-lo digite (como root):

# socket -lcsp ./servidor.bash 80

Ele busca as páginas em /var/www por padrão.
Eduardo bolche
Hits: 6.651 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Esse script é um servidor HTTP funcional que responde a métodos GET. Porém perceba que ele só serve para aprender bash script, pois ele é bem inseguro e ainda tem vários bugs.

Para fazer esse script eu precisei instalar o programa socket (# aptitude install socket). Como só dá para subir um script, eu não pude mandar um script de inicialização que fiz (está no código fonte). Para inicializá-lo digite (como root):

# socket -lcsp ./servidor.bash 80

Ele busca as páginas em /var/www por padrão.
Download servidor.bash Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

#!/bin/bash
#Esse programa deve ser iniciado pelo script de inicialização "iniciaServidor"
#Esse lançador vai garantir que a entrada e a saída padrão desse script seja a porta 80 (a porta http)

#Pasta onde estão os arquivos do servidor
PASTA="/var/www"
#Arquivo padrão quando nenhum for especificado
INDEX="index.html"

#Lê da entrada padrão (no caso, a porta 80) e grava a primeira palavra em $METODO, a segunda em $PEDIDO e a terceira em PROTOCOLO
read METODO PEDIDO PROTOCOLO

#Esse servidor só entende métodos GET
if [ "$METODO" = "GET" ]
then
    #Método GET recebido: estão pedindo um arquivo
    #Se for encontrado e for uma pasta, retorna o INDEX
    if [ -d "$PASTA$PEDIDO" ]
    then
   PEDIDO="$PEDIDO$INDEX"
    fi
    #Se o arquivo não for encontrado...
    if [ ! -e "$PASTA$PEDIDO" ]
    then
   #Retorna um erro 404
   echo "HTTP/1.x 404 Not Found"
   echo "Date: `date -R`"
   echo "Server: Servidor Bash"
   echo "Content-Length: 0"
   echo ""
    else
   #Se for encontrado retorna o arquivo
   echo "HTTP/1.x 200 OK"
   echo "Date: `date -R`"
   echo "Server: Servidor Bash"
   echo "Content-Length: `stat -c%s $PASTA$PEDIDO`"
   echo "Connection:Close"
   echo ""
   cat "$PASTA$PEDIDO"
    fi
else
    echo "HTTP/1.x 501 Not implemented"
    echo ""
fi

#Abaixo segue como deve ser o script de inicialização.
iniciaServidor.bash:

#!/bin/bash
socket -lcsp ./servidor.bash 80
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Iniciar firewall quando houver rede habilitada (Internet)

Limpando Arquvios Core

Bash script para converter decimal para hexadecimal mole!

Projeto Mg-Renders

Adicionando "automagicamente" usuários

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.