O Sails é uma estrutura Model-View-Controller (MVC) em tempo real, projetada para a construção de aplicativos corporativos Node.js prontos para produção. Esta ferramenta é altamente eficaz para acelerar o desenvolvimento e prototipagem de sites. Construído sobre o Node.js e o Express.js, o Sails oferece compatibilidade total com as funcionalidades dessas plataformas, garantindo uma transição suave para quem já está familiarizado com elas. Além disso, o Sails oferece suporte a WebSockets escalonáveis, uma arquitetura orientada a serviços e permite a integração de múltiplos armazenamentos de dados em um único projeto. Além disso, proporciona recursos de segurança básica e controle de acesso baseado em funções.
Neste guia, mostraremos como instalar o Sails.js com o Apache como proxy reverso no Ubuntu 22.04.
Pré-requisitos:
- Um servidor executando Ubuntu 22.04.
- Acesso com senha root configurado no servidor.
Começando:
Antes de iniciar o processo de instalação do Sails.js, é recomendável atualizar todos os pacotes do sistema para a versão mais recente. Isso pode ser feito executando o seguinte comando no terminal:
sudo apt update && sudo apt upgrade ou
apt update -y
apt upgrade -y
Depois que todos os pacotes forem atualizados, instale outras dependências necessárias usando o seguinte comando:
apt-get install curl wget gnupg2 -y
Esse comando instalará as ferramentas essenciais que serão utilizadas durante o processo de instalação e configuração do Sails.js. Quando a instalação estiver concluída, você estará pronto para prosseguir para a próxima etapa do processo.
Instale o Node.js.
Após atualizar as dependências necessárias, o próximo passo é instalar o Node.js e o NPM para criar um aplicativo Sails.js. Siga estas etapas:
curl -sL https://deb.nodesource.com/setup_16.x | bash -
Depois que o repositório for adicionado, instale o pacote Node.js com o seguinte comando:
apt-get install nodejs -y
Após a instalação, você pode verificar a versão do Node.js usando o seguinte comando:
node --version
Este comando mostrará a versão do Node.js instalada. Por exemplo, a saída pode ser algo como:
v16.17.1
Com estas etapas concluídas, você terá o Node.js e o NPM instalados em seu sistema, prontos para criar e executar aplicativos Sails.js.
Instale Sails.js
Em seguida, você precisará instalar o Sails.js em seu servidor. Você pode instalar o Sails usando o Node Package Manager.
npm -g install sails
Depois que o Sails estiver instalado, você pode verificá-lo com o seguinte comando:
sails --version
Você obterá a versão do Sails na seguinte saída:
1.5.3
Crie um aplicativo Sails.js
Depois de instalar o Sails, vamos criar um aplicativo Sails simples usando o seguinte comando:
sails new sails-app
Você deve obter a seguinte saída:
Choose a template for your new Sails app: 1. Web App · Extensible project with auth, login, & password recovery 2. Empty · An empty Sails app, yours to configure (type "?" for help, or <CTRL+C> to cancel) ? 2 info: Installing dependencies... Press CTRL+C to cancel. (to skip this step in the future, use --fast) info: Created a new Sails app `sails-app`!
Você pode verificar todos os arquivos criados pelo Sails usando o seguinte comando:
ls sails-app
Você deve obter a seguinte saída:
api app.js assets config Gruntfile.js node_modules package.json package-lock.json README.md tasks views
Você pode verificar todos os arquivos criados pelo Sails usando o seguinte comando:
cd sails-app
sails lift
Você deverá ver a seguinte saída:
info: Starting app... info: info: .-..-. info: info: Sails <| .-..-. info: v1.5.3 |\ info: /|.\ info: / || \ info: ,' |' \ info: .-'.-==|/_--' info: `--'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted in `/root/sails-app` info: To shut down Sails, press + C at any time. info: Read more at https://sailsjs.com/support. debug: ------------------------------------------------------- debug: :: Sun Sep 25 2022 05:43:59 GMT+0000 (Coordinated Universal Time) debug: Environment : development debug: Port : 1337 debug: -------------------------------------------------------
Pressione CTRL+C para interromper o aplicativo. Criaremos um arquivo de serviço systemd para iniciar e gerenciar o aplicativo Sails.
Crie um arquivo de serviço Systemd para Sails.js
Em seguida, você precisará criar um arquivo de serviço systemd para gerenciar o aplicativo Sails.js. Você pode criá-lo com o seguinte comando:
nano /etc/systemd/system/sails-app.service
Adicione as seguintes linhas:
[Unit] After=network.target [Service] Type=simple User=root WorkingDirectory=/root/sails-app ExecStart=/usr/bin/sails lift Restart=on-failure [Install] WantedBy=multi-user.target
Salve e feche o arquivo e recarregue o daemon systemd para aplicar as alterações:
systemctl daemon-reload
Em seguida, inicie o serviço Sails.js e habilite-o para iniciar na reinicialização do sistema:
systemctl start sails-app
systemctl enable sails-app
Agora você pode verificar o status do aplicativo Sails com o seguinte comando:
systemctl status sails-app
Você deve obter a seguinte saída:
? sails-app.service Loaded: loaded (/etc/systemd/system/sails-app.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-25 05:44:42 UTC; 6s ago Main PID: 2896 (node) Tasks: 22 (limit: 4579) Memory: 159.2M CPU: 3.676s CGroup: /system.slice/sails-app.service ??2896 node /usr/bin/sails lift ??2903 grunt "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "> Sep 25 05:44:44 ubuntu2204 sails[2896]: info: ____---___--___---___--___---___--___-__ Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Server lifted in `/root/sails-app` Sep 25 05:44:44 ubuntu2204 sails[2896]: info: To shut down Sails, press + C at any time. Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Read more at https://sailsjs.com/support. Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: ------------------------------------------------------- Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: :: Sun Sep 25 2022 05:44:44 GMT+0000 (Coordinated Universal Time) Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Environment : development Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Port : 1337 Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: -------------------------------------------------------
Neste ponto, o aplicativo Sails é iniciado e escuta na porta 1337. Agora você pode prosseguir para a próxima etapa..
Configure o Apache como um proxy reverso para Sails.js
Configurar o Apache como proxy reverso para acessar o aplicativo Sails é uma boa ideia. Primeiro, instale o servidor Apache com o seguinte comando:
apt install apache2 -y
Depois que o pacote Apache estiver instalado, crie um arquivo de configuração do host virtual Apache com o seguinte comando:
nano /etc/apache2/sites-available/sails.conf
Adicione as seguintes linhas:
<VirtualHost *:80> ServerName sailsapp.example.com ServerAdmin webmaster@example.com DocumentRoot /root/sails-app ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <LocationMatch "^/(?!js|css|media)" > ProxyPass http://127.0.0.1:1337 ProxyPassReverse http://127.0.0.1:1337 </LocationMatch> <Location "/dist/"> ProxyPass ! </Location> RewriteEngine On RewriteCond %{REQUEST_URI} ^/socket.io [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /(.*) ws://localhost:1337/$1 [P,L] </VirtualHost>
Salve e feche o arquivo e ative o host virtual Sails com o seguinte comando:
a2ensite sails.conf
Em seguida, habilite outros módulos do Apache com o seguinte comando:
a2enmod headers proxy_http xml2enc proxy ssl proxy_wstunnel rewrite proxy_ajp deflate proxy_balancer proxy_connect proxy_html
Em seguida, reinicie o serviço Apache para aplicar as alterações:
systemctl restart apache2
Agora você pode verificar o status do serviço Apache com o seguinte comando:
systemctl status apache2
Você deve obter a seguinte saída:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-25 05:46:54 UTC; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 3986 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 3990 (apache2) Tasks: 55 (limit: 4579) Memory: 6.8M CPU: 90ms CGroup: /system.slice/apache2.service ??3990 /usr/sbin/apache2 -k start ??3991 /usr/sbin/apache2 -k start ??3992 /usr/sbin/apache2 -k start Sep 25 05:46:54 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
Atualmente, o servidor web Apache está instalado e configurado como proxy reverso para o aplicativo Sails.js. Agora você pode prosseguir para a próxima etapa.
Acesse a IU da Web Sails.js
Agora você pode abrir seu navegador e acessar a interface da web Sails.js usando o URL http://sailsapp.example.com. Você deverá ver a IU da web Sails.js na tela a seguir:
Conclusão
Parabéns! Você instalou Sails.js com sucesso com Apache como proxy reverso no Ubuntu 22.04. Agora você pode hospedar um aplicativo da web escalonável e pronto para produção usando a estrutura Sails.js. Sinta-se à vontade para me perguntar se tiver alguma dúvida.