Instalando o H2O Web Server

em Desenvolvimento.

O H2O é um novo servidor web de código aberto que provê um menor tempo de resposta com menos consumo de CPU quando comparado com servidores tradicionais como o Apache e Nginx.

Apesar de ser compatível com HTTP/1.1, ele foi desenvolvido desde o início para tirar o máximo proveito possível do HTTP/2 e inclui recurso com priorização de recursos e server push. Por isso mesmo ele tem uma das implementações mais completas do protocolo até agora e promete uma excelente experiência aos visitantes do seu website.

Uma das grandes vantagens de se utilizar o um IaaS como o Cloud Server Pro ou o VPS Locaweb é a liberdade que se tem fazer experimentações.

Os benchamarks feitos pelos desenvolvedores do H2O impressionam bastante. Abaixo você pode conferir os resultados de alguns delesGráfico comparando o tempo de download do H2O com Apache e Nginx com Firefox, Chrome e SafariGrafico comparando tempo para servir arquivos estáticos com HTTP 1, 1.1 e 2 entre Nginx e H20
Para saber mais sobre os benchmarcks, consulte a página do desenvolvedor: https://h2o.examp1e.net/benchmarks.html.

Além disso, alguns dos principais recursos do H2O incluem:

  • Suporte HTTP/1.0 e HTTP/1.1
  • HTTP/2
    • suporte completo a priorização de dependências com configurações no server-side
    • server push sensível a cache
  • TCP Fash Open
  • TLS
    • resumo de sessão (standalone e memcached)
    • tickets de sessão com geração automática de chaves
    • OCSP stapling automático
    • cifras fast AEAD e forward secrecy
    • proteção de chave privada usando separação de privilégios
  • envio de arquivos estáticos
  • FastCGI
  • proxy reverso
  • automação com scripts utilizando mruby (baseado no Rack)
  • restart amigável e auto-atualizável

Compilando o código fonte.

Por ser bastante recente, o H2O ainda não está disponível no repositório padrão das principais distribuições. A seguir, veremos como instalá-lo em distribuições Debian/Ubuntu a partir do código fonte, mas nada impede que você compile o projeto em outras distribuições de forma semelhante, caso esteja procurando aventurar-se.

Neste caso, faremos a instalação a partir do código fonte. Para isso precisaremos instalar os seguintes pacotes (em versões mais recentes to APT, não é necessário mais digitar o -get):

sudo apt install git build-essential ruby-dev cmake pkg-config zlib1g-dev checkinstall libuv-dev

Em seguida faremos o clone do projeto a partir do repositório Github onde o código encontra-se hospedado:

git clone https://github.com/h2o/h2o.git

Por padrão, o H2O embarca o LibreSSL, que é um toolkit de critografia considerado, por muitos profissionais, mais seguro que o OpenSSL. Vamos utilizar essa configuração padrão e compilá-lo utilizando o cmake.

cmake -DWITH_BUNDLED_SSL=on .
make
sudo checkinstall

Siga as instruções do checkinstall até que o processo esteja completo. Se tudo der certo, será gerado um arquivo .deb semelhante a h2o_20161216-1_amd64.deb na mesma pasta. O número depois do h2o vai depender da data em que você efetuar o processo.

Uma vez feito isso, basta instalar o deb digitando sudo dpkg -i h2o_20161216-1_amd64.deb.

Instalação no Fedora/CentOS

A instalação em sistemas RPM é um pouco mais simples, caso você opte pela utilização de um repositório não-oficial no Bintray. Para isso, coloque o conteúdo abaixo no arquivo /etc/yum.repos.d/tatsushid-h2o-rpm.repo. A configuração abaixo está ajustada para CentOS. Caso esteja utilizando o Fedora, ajuste as linhas do arquivo:

#bintray-tatsushid-h2o-rpm - packages by tatsushid from Bintray
[bintray-tatsushid-h2o-rpm]
name=bintray-tatsushid-h2o-rpm
#Se estiver em um sistema CentOS
baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/centos/$releasever/$basearch/
#Se estiver em um sistema Fedora
#baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/fedora/$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1#bintray-tatsushid-h2o-rpm - packages by tatsushid from Bintray
[bintray-tatsushid-h2o-rpm]
name=bintray-tatsushid-h2o-rpm
#Se estiver em um sistema CentOS
baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/centos/$releasever/$basearch/
#Se estiver em um sistema Fedora
#baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/fedora/$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1

Feito isso, basta instalar a aplicação utilizando o yum:

sudo yum install h20

Ou o dnf no Fedora:

sudo dnf install h20

Configurando o servidor

Os arquivos de configuração do H2O são bastante simples e de fácil leitura: nada de XML! O código fonte do H2O trás alguns exemplos de configuração que você pode utilizar para criar o seu. Basta olhar em examples/h2o, especialmente o arquivo h2o.conf.

Crie um backup do arquivo e altere as configurações de acordo com as suas necessidades, sem se esquecer de alterar as portas da 8080 para a 80 e da 8081 para a 443. Caso contrário, você precisará abrir essas portas no painel do Cloud Server Pro.

Para testar se tudo está funcionando, execute o h2o utilizando o parâmetro -c para especificar o arquivo de configuração: h2o -c examples/h2o/h2o.conf

Se tudo ocorrer bem, você poderá acessar o IP do seu servidor e visualizar a imagem abaixo:

hello world do H2O

Caso esteja satisfeito, mova o arquivo para o diretório padrão /etc/ para que você não precise especificá-lo ao iniciar a aplicação.

O pacote RPM do H2O já trás scripts para o systemd, de forma que é possível iniciar o serviço via:

systemctl enable h2o.service
systemctl start h2o.service

Já na instalação por código fonte, você precisará criar seu próprio script ou iniciar o H2O via cronjobs.

Caso queira saber mais sobre o projeto, ou se aprofundar na documentação, visite o website do projeto em https://h2o.examp1e.net.

Para saber mais sobre o Cloud Server Pro ou o VPS Locaweb, visite a página http://www.locaweb.com.br/cloud/#solucoes-em-cloud

Você também pode gostar