Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Problema de sintaxe (eu acho)

ao finalizar o desenvolvimento da minha api, resolvi utilizá-la através de docker, compose, com um contênier sendo o servidor nginx e o outro o php com a minha api, mas tive alguns problemas. Finalmente ao entender o que estava acontecendo graças ao curso, percebi os logs do docker compose e vi que por algum motivo, o ngnix não está permitindo o diretivo 'server'.

2 respostas
solução!

Olá, Miguel!

A diretiva 'server' é essencial para a configuração do NGINX, então é importante garantir que ela esteja corretamente definida no seu arquivo de configuração.

Aqui estão alguns passos que podem te ajudar a resolver esse problema:

  1. Verifique o arquivo de configuração do NGINX: Certifique-se de que a sintaxe do seu arquivo nginx.conf está correta. Um exemplo básico de configuração seria:

    events {}
    
    http {
        server {
            listen 80;
            server_name localhost;
    
            location / {
                proxy_pass http://php-container:9000;
                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;
            }
        }
    }
    

    Certifique-se de que o nome do contêiner PHP (php-container no exemplo) corresponde ao nome definido no seu docker-compose.yml.

  2. Verifique o docker-compose.yml: Certifique-se de que os serviços estão definidos corretamente. Um exemplo básico seria:

    version: '3'
    services:
      nginx:
        image: nginx:latest
        ports:
          - "80:80"
        volumes:
          - ./nginx.conf:/etc/nginx/nginx.conf
        depends_on:
          - php
      php:
        image: php:7.4-fpm
        volumes:
          - ./api:/var/www/html
    
  3. Logs do Docker: Continue verificando os logs do Docker para identificar mensagens de erro específicas. Use o comando docker-compose logs nginx para ver os logs do serviço NGINX.

  4. Validação da configuração: Você pode validar a configuração do NGINX diretamente dentro do contêiner. Primeiro, entre no contêiner do NGINX com docker exec -it <nginx-container-id> /bin/bash e, em seguida, execute nginx -t para verificar a configuração.

Espero ter ajudado e bons estudos!

Muito obrigado pela resposta, eu acabei de perceber que esqueci de encapsular no http, acredito que esse seja o problema. Mas caso haja mas problemas, vou usar o código passado. Muito obrigado pela resposta