Servidor HTTP em Bash
Publicado por Eduardo 01/02/2008
[ Hits: 6.382 ]
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.
#!/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
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGANDO MSG ANTIGAS DA MBOX - TODOS OS USUARIOS
Script para fazer funcionar o bloqueio por horário - Squid
Script de Instalação Zabbix Server - Debian
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalando Google Chrome no Debian 13
Falha add cluster Proxmox (2 nós) (2)
Software livre - será que eu estou tão errado assim? (18)
O que você está ouvindo agora? [2] (218)
Dificuldade com Ocs 2.12.3 no Debian 13 com Apache2 - Can't load ... (4)