Integração com NGINX
NGINX o proxy reverso para o Netuno
O Netuno, apesar de ser também um servidor web, não consegue, como é natural, ter a mesma performance e versatilidade neste campo que se obtém com o NGINX. No entanto, dado a integração do NGINX com o Netuno é fácil, podemos desta forma beneficiar do melhor dos dois mundos.
Instalar o NGINX
Para instalar o NGINX é muito simples, em qualquer distribuição Linux deverá ter disponível nos seus pacotes o NGINX.
Em distribuições Ubuntu ou Debian:
apt install nginx
Em distribuições CentOS, Fedora ou RedHat:
yum install nginx
No MacOS X está disponível no brew e no macports.
Para Windows pode fazer o download do instalador em: http://nginx.org/en/download.html
Configuração
Para este exemplo, vamos assumir que já tem o Netuno instalado e em execução em /srv/netuno
.
Para configurar um novo site no NGINX navegue até à pasta de configuração:
- Distribuições Linux costuma estar em:
/etc/nginx
- MacOS X com brew:
/usr/local/etc/nginx
Crie um novo ficheiro de configuração para o novo site em sites-available/netuno
.
E o conteúdo deste ficheiro será:
server {
listen 127.0.0.1:80;
server_name netuno-app-name.localhost;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host
}
location ~ ^/(netuno|apps/.*/public)/ {
root /srv/netuno/web;
}
}
Pode alterar a linha onde diz listen 127.0.0.1:80
para o seu IP externo e respetivo porto.
E onde diz netuno-app-name.localhost
deverá ser o nome da sua app seguido pelo ponto e o nome do seu domínio. Como por exemplo: minhaapp.localhost
Isto porque o Netuno procura automaticamente por uma app com o nome correspondente ao subdomínio.
Neste exemplo estamos a assumir que o Netuno está em execução na porta 9000
e no caminho /src/netuno
, valide esta informação e adapte se for necessário.
O conteúdo web público do Netuno está na pasta web
, mas nem tudo deverá ser exposto, apenas a pasta netuno
e a pasta public
de cada app.
Ativar a Configuração do Novo Site
Agora é preciso criar um link simbólico para o nosso novo ficheiro de configuração para ativar o nosso novo site.
Isto porque a metodologia de configuração de sites do NGINX em Linux baseia-se em conter os ficheiros de configuração dentro da pasta sites-available
mas o que está ativo fica definido na pasta sites-enabled
.
Assim a criação do link simbólico é importante para evitar a duplicação de ficheiros e garantir que qualquer alterações seja feita num único ficheiro.
Em Linux cria-se o link simbólico desta forma:
ln -s /etc/nginx/sites-available/netuno /etc/nginx/sites-enabled/netuno
Reload das configurações do NGINX
Lembre-se que para esta configuração ter efeito é necessário recarregar as configurações do NGINX.
Reload:
nginx -s reload
Ou reinicie:
killall nginx
nginx
Ou da forma mais elegante:
service nginx restart
Ou ainda páre completamente o servidor e inicie novamente:
service nginx stop
service nginx start
Pode verificar o estado do NGINX com o comando:
service nginx status
Os ficheiros de logs do NGINX ficam na pasta /var/log/nginx
.
Testar
Caso esteja a fazer um teste local deverá forçar a resolução do endereço no seu ficheiro de hosts, no caso do Linux edite o ficheiro:
/etc/hosts
E acrescente a linha:
127.0.0.1 netuno-app-name.localhost
Agora basta verificar no seu browser através do endereço:
http://netuno-app-name.localhost
Certifique-se sempre que onde referimos netuno-app-name
deverá ser o nome da sua app! Por exemplo: http://minhaapp.localhost
Em caso de alguma correção, principalmente do ficheiro hosts
do sistema operacional, poderá ser preciso reiniciar o browser devido ao cache de resolução de DNS.
Caso seja necessário corrigir alguma configuração no NGINX não se esqueça de recarregar sempre as configurações.