Middle
O que acontece no Nginx?
sobes.tech IA
Resposta da IA
Uma aplicação escrita em Ruby (por exemplo, usando o framework Rails ou Sinatra) é executada num servidor de aplicações web (por exemplo, Puma, Unicorn, Passenger). O Nginx atua como servidor frontal, recebendo as requisições HTTP entrantes dos clientes e redirecionando-as para o servidor de aplicações.
As funções principais do Nginx neste contexto:
- Proxy de requisições: O Nginx atua como um proxy reverso. Recebe as requisições dos navegadores dos clientes e as encaminha para o servidor web da aplicação Ruby. Após obter a resposta do servidor de aplicações, o Nginx devolve-a ao cliente.
- Serviço de ficheiros estáticos: O Nginx pode servir eficientemente ficheiros estáticos (CSS, JavaScript, imagens) diretamente, evitando sobrecarregar o servidor web da aplicação Ruby. Isto descarrega a aplicação e melhora o desempenho.
- Balanceamento de carga: Se tiver várias instâncias do servidor web da aplicação Ruby, o Nginx pode distribuir as requisições entre elas, garantindo tolerância a falhas e escalabilidade.
- Terminação SSL: O Nginx pode gerir a encriptação SSL/TLS, descarregando essa tarefa do servidor web da aplicação Ruby.
- Caching: O Nginx pode armazenar em cache as respostas, acelerando o carregamento das páginas para requisições repetidas.
- Compressão (gzip): O Nginx pode comprimir as respostas antes de as enviar ao cliente, reduzindo a quantidade de dados transmitidos.
A configuração do Nginx para uma aplicação Ruby geralmente inclui:
- Definir um host virtual para o seu domínio.
- Configurar o proxy de requisições para o servidor web da aplicação Ruby (por exemplo, via socket ou porta TCP).
- Definir caminhos para ficheiros estáticos.
- Configurar SSL/TLS (se necessário).
- Configurar o balanceamento de carga (se necessário).
# Exemplo de configuração simples de Nginx para Rails com Puma
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
location / {
# Proxy de requisições para Puma através de socket
proxy_pass http://unix:/path/to/your/app/shared/sockets/puma.sock;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ {
# Serviço de ficheiros estáticos
root /path/to/your/app/public;
expires max;
add_header Cache-Control public;
}
# Adicione outros blocos location para outros recursos estáticos, se necessário
}
Resumindo, o Nginx funciona como uma ferramenta multifuncional à frente do servidor web da aplicação Ruby, melhorando o seu desempenho, segurança e escalabilidade.