Instalando Monkey Server

Instalando Monkey Server

Se o que você procura é um http server leve e poderoso, que tenha um baixo consumo de memória e processamento, você precisa conhecer o Monkey.

O Monkey é um servidor web otimizado para funcionar em sistemas Linux e, atualmente, no OSX, desenvolvido para ser escalável com baixo consumo de memória e CPU, uma ótima opção para Sistemas Embarcados funcionando bem em arquiteturas ARM, x86 e x86_64.

Seu projeto teve início no ano de 2001, desenvolvido por Eduardo Silva, tendo como foco sistemas embarcados utilizando Linux. Possui todas as funcionalidades em seu pacote padrão, possuindo a possibilidade de utilizar plugins para adicionar novas, como SSL/TLS etc. Para maiores informações acessem o site do projeto.

Por onde começar?

A instalação é bem simples, se você possui uma máquina com Debian/Ubuntu, basta, primeiro, adicionar a chave GPG do servidor em seu chaveiro:

$ wget -qO - http://apt.monkey-project.com/monkey.key | sudo apt-key add -

Em seguida adicionar o repositório oficial em seu /etc/apt/sources.list utilizando o editor de textos que preferir:

Ubuntu 15.04 (vivid)

deb http://apt.monkey-project.com/ubuntu vivid main

Debian 8 (jessie)

deb http://apt.monkey-project.com/debian jessie main

Assim, é atualizar a base de dados do repositório e instalar o monkey:

$ sudo apt-get update
$ sudo apt-get install monkey

Mas, se você não utiliza nenhum dos dois citados acima, ou prefere compilar, você pode baixar o pacote mais recente até 2015-10-21T11:53:27 aqui e prosseguir:

$ tar zxfv monkey-1.6.3.tar.gz
$ cd monkey-1.6.3
$ ./configure --bindir=/usr/bin/ --datadir=/var/www/monkey --logdir=/var/log/monkey --plugdir=/var/www/monkey/plugins --sysconfdir=/etc/monkey

Onde:

  • /usr/bin/: é o diretório onde serão colocados os executaveis;

  • /var/www/monkey: diretório onde estarão as páginas web;

  • /var/log/monkey: onde se encontrarão os logs;

  • /var/www/monkey/plugins: local onde estarão os plugins;

  • /etc/monkey: onde os arquivos de configuração ficarão;

Já tendo executado o comando configure, é necessário efetuar a instalação.

$ sudo make
$ sudo make install

Verifique qual a porta está sendo utilizada no arquivo /etc/monkey/monkey.conf:

$ sudo vim /etc/monkey/monkey.conf

# Monkey HTTP Server - Configuration
# ==================================
# These are the main variables and their descriptions, defined in respect
# to the configuration of the different types of directives.

[SERVER]
    # Listen:
    # -------
    # The Listen directive maps the port and optionally restricts the
    # network interface from where Monkey will be listens for incoming
    # connections. Multiple Listen directives are allowed.
    #
    # The Listen directive requires a port number, preceded by an
    # optional IPv4 or IPv6 address separated by a colon (:).
    # IPv6 addresses must be enclosed in brackets ([]), e.g:
    #
    # Listen 127.0.0.1:2001
    # Listen [::1]:2001

    Listen 80

No meu caso, coloquei para o servidor funcionar na porta 80, mas fica a seu critério. Nota: desabilite qualquer outro server, caso estejam usando a mesma porta.

Feito isso, é só executar o comando para iniciar o server e testar para saber se está funcionando:

$ sudo monkey -D

Assim, você pode acessar através do seu browser http://ip-do-seu-servidor:porta para ver a tela de apresentação do server.

Caso queira outras opções no configure, verifique a página oficial.

Configurando o server

Eis a estrutura das configurações do server:

conf/                                 # diretório base
    /monkey.conf                      # arquivo de configuração do server
    /monkey.mime                      # contém lista de extensões de arquivos associados com o mime type correto
    /plugins.load                     # arquivo para habilitar os plugins
    /sites/                           # diretório contendo os hosts virtuais
          /default                    # arquivo de configuração de um host virtual
    /plugins/                         # diretório contendo os arquivos de configuração dos plugins
            /security                 # diretório com o nome do plugin instalado
            /security/security.conf   # arquivo de configuração do plugin

Não há muito o que configurar de início, apenas o arquivo default em /etc/monkey/sites..Nesse arquivo, você somente colocará as informações necessárias, para que seu site possa ser entregue corretamente:

$ sudo vim /etc/monkey/sites/default

# Default Host - Configuration
# ============================
# Here the variable principals of the program are defined in respect
# to the configuration of the different types of directives.

[HOST]
    # ServerName:
    # -----------
    # Allow you to set a host and domain name (e.g monkey.linuxchile.cl). If
    # you are working in a local network just set your IP address or if you
    # are working like localhost set your loopback address (127.0.0.1).

    ServerName 127.0.0.1

    # DocumentRoot:
    # -------------
    # This variable corresponds to the location of the main server directory
    # of the web pages, where the files of your site are located.
    #
    # Example:
    #      DocumentRoot /home/krypton/htdocs

    DocumentRoot /usr/share/monkey

    # Redirect:
    # ---------
    # Under specific conditions, you may want the server performs a HTTP
    # redirect when this Virtual Host is reach. If that is the case, append
    # to the Redirect key the value of the address where to redirect the
    # HTTP client.
    #
    # Redirect http://monkey-project.com

[LOGGER]
    # AccessLog:
    # ----------
    # Registration file of correct request.

    AccessLog /var/log/monkey/access.log

    # ErrorLog:
    # ---------
    # Registration file of incorrect request.

    ErrorLog /var/log/monkey/error.log

[ERROR_PAGES]
    404  404.html

[HANDLERS]
    # FastCGI
    # =======
    # Match /.*\.php fastcgi

    # CGI
    # ===
    # Match /cgi-bin/.*\.cgi cgi

Logo acima temos o exemplo que vem por padrão no monkey, onde podemos identificar cada item necessário para fazê-lo funcionar:

  • ServerName: o domínio do seu servidor, podendo ser example.com.br ou, se for rede local, o ip que definiu para ele;

  • DocumentRoot: o local onde os documentos da sua página se encontram, geralmente está em /var/www ou /srv/www, no entanto pode ser utilizada uma pasta no diretório pessoal de um usuário;

  • Redirect: utilizado em casos específicos, onde desejamos redirecionar o acesso a este site para outro;

  • AccessLog: localização do arquivo de log de acessos;

  • ErrorLog: localização do arquivo de log de erros;

  • [ERROR PAGES]: a numeração dos erros, seguidos pela página a ser carregada;

  • [HANDLERS]: quais as instruções de plugin serão utilizadas;

Estou começando a configuração de meu server Debian e gostaria de uma forma mais automatizada

No caso de iniciantes ou até mesmo usuários avançados, que queiram apenas testar o server em uma máquina limpa recém instalada, podem utilizar o script de instalação do EkaatyLinux que pode ser encontrado aqui.

Testei o script, trocando o link de download encontrado na linha 125 pela versão mais recente do pacote, e foi bem simples.

#E aí, o que achou?

Deixe seu comentário, dúvida, crítica ou sugestão aqui embaixo.