Este projeto consiste em um servidor Node.js simples integrado ao Apache para servir um frontend estático e encaminhar requisições da API para o backend.
- Servidor rodando Linux (Ubuntu recomendado)
- Apache instalado e configurado
- Node.js e npm instalados
-
Instale o Apache:
sudo apt update sudo apt install apache2
-
Ative os módulos necessários:
sudo a2enmod proxy proxy_http rewrite sudo systemctl restart apache2
-
Configure o VirtualHost do Apache:
sudo nano /etc/apache2/sites-available/meuprojeto.conf
Adicione o seguinte conteúdo:
<VirtualHost *:80> ServerName SERVER_IP DocumentRoot /var/www/html/meuprojeto <Directory "/var/www/html/meuprojeto"> AllowOverride All Require all granted </Directory> ProxyPass "/api" "http://SERVER_IP:3000/" ProxyPassReverse "/api" "http://SERVER_IP:3000/" ErrorLog ${APACHE_LOG_DIR}/meuprojeto_error.log CustomLog ${APACHE_LOG_DIR}/meuprojeto_access.log combined </VirtualHost>
-
Ative a configuração e reinicie o Apache:
sudo a2ensite meuprojeto sudo systemctl restart apache2
-
Clone este repositório:
git clone https://github.com/seuusuario/node-simple-server.git cd node-simple-server -
Instale as dependências:
npm install
-
Execute o servidor:
node server.js
📂 node-simple-server
│── server.js
│── package.json
│── public/
│ ├── index.html
│ ├── style.css
│ ├── script.js
- Acesse o frontend via http://SERVER_IP
- A API está disponível em http://SERVER_IP/api
Você pode testar a API no navegador ou via curl:
curl http://SERVER_IP/api- Certifique-se de que o Node.js está rodando na porta 3000
- Se necessário, abra as portas no firewall:
sudo ufw allow 80/tcp sudo ufw allow 3000/tcp
- Para rodar o backend em background, utilize pm2:
npm install -g pm2 pm2 start server.js
Sinta-se à vontade para contribuir com melhorias! Basta abrir um Pull Request ou relatar um problema via Issues.
Desenvolvido por ROARenan