Skip to content

Este diretório contém um exemplo de estrutura para rodar múltiplos projetos web (backend e frontend) utilizando Docker, Nginx e Traefik como proxy reverso. O objetivo é facilitar o desenvolvimento local de aplicações que simulam ambientes reais, com URLs personalizadas e serviços como MySQL e Redis.

Notifications You must be signed in to change notification settings

Tellys/traefik-nginx-php-mysql-redis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

traefik-nginx-vhost

Este diretório contém um exemplo de estrutura para rodar múltiplos projetos web (backend e frontend) utilizando Docker, Nginx e Traefik como proxy reverso. O objetivo é facilitar o desenvolvimento local de aplicações que simulam ambientes reais, com URLs personalizadas e serviços como MySQL e Redis.

Estrutura dos diretórios

  • project1/ e project2/: Cada pasta representa um projeto independente, com backend (PHP), frontend (HTML/JS), banco de dados (MySQL) e cache (Redis).
  • traefik/: Contém a configuração do Traefik, que atua como proxy reverso para rotear o tráfego entre os projetos.

Como funciona

  • Traefik: Gerencia o roteamento das requisições HTTP para os containers corretos, usando regras baseadas no nome do host (ex: api.project1.test, project1.test).
  • Nginx: Serve tanto o backend (PHP) quanto o frontend (arquivos estáticos) de cada projeto.
  • Docker Compose: Orquestra todos os serviços, facilitando o start/stop dos ambientes com um único comando.

Principais arquivos

traefik/docker-compose.yml

Configura o serviço Traefik, que escuta na porta 80 (HTTP) e 8080 (dashboard). Ele lê as regras dos containers Docker e direciona o tráfego conforme os domínios configurados.

project1/docker-compose.yml e project2/docker-compose.yml

Definem os serviços de cada projeto:

  • php: Backend em PHP-FPM.
  • nginx: Servidor web para o backend.
  • nginx_frontend: Servidor web para o frontend.
  • mysql: Banco de dados MySQL.
  • redis: Cache Redis.

Cada serviço está conectado à rede web, compartilhada com o Traefik.

Arquivos de configuração Nginx

  • nginx.conf: Configuração do backend (PHP).
  • nginx.frontend.conf: Configuração do frontend (HTML/JS).

Como acessar

Após subir os containers, você poderá acessar os projetos pelos domínios locais:

  • Backend: http://api.project1.test e http://api.project2.test
  • Frontend: http://project1.test e http://project2.test

Como usar

  1. Certifique-se de ter Docker e Docker Compose instalados.
  2. Suba a rede compartilhada:
    docker network create web
  3. Inicie o Traefik:
    cd traefik
    docker-compose up -d
  4. Inicie cada projeto:
    cd project1
    docker-compose up -d
    cd ../project2
    docker-compose up -d
  5. Adicione os domínios ao seu arquivo /etc/hosts:
    127.0.0.1 project1.test api.project1.test project2.test api.project2.test
    
  6. Acesse os domínios no navegador.

Observações

  • O Traefik Dashboard estará disponível em http://localhost:8080.
  • Os logs dos serviços podem ser encontrados nas pastas logs/ de cada projeto.
  • Para adicionar novos projetos, basta seguir a mesma estrutura.

About

Este diretório contém um exemplo de estrutura para rodar múltiplos projetos web (backend e frontend) utilizando Docker, Nginx e Traefik como proxy reverso. O objetivo é facilitar o desenvolvimento local de aplicações que simulam ambientes reais, com URLs personalizadas e serviços como MySQL e Redis.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published