Antecedentes
Então ontem eu estava brincando com o nosso servidor.
Nele, temos um processo de composição do docker que executa 6 ou mais contêineres, sendo um deles o Nginx. Antes de brincar com isso ontem, estava servindo arquivos muito bem.
O que eu fiz
Eu notei no DO que eu poderia atualizar minhas métricas executando curl -sSL https://agent.digitalocean.com/install.sh | sh
. Quão legal né?
Bem depois que eu fiz isso, coisas estranhas começaram a acontecer. Não posso ter certeza de que é causalidade, mas certamente é correlação.
O que eu tentei
Eu tenho meu droplet DO e executo docker-compose up -d
e obtenho um:
ERROR: for root_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint root_nginx_1: Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
Ok, isso é estranho ...
Ele estava funcionando antes e agora nem inicia?
Eu corro ps aux -P | grep nginx
para ver o que está acontecendo e obtenho:
root 1514 0.0 0.1 124972 1388 ? Ss 12:57 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 1517 0.0 0.2 125332 2960 ? S 12:57 0:00 nginx: worker process
root 5716 0.0 0.0 12944 940 pts/1 S+ 13:16 0:00 grep --color=auto nginx
Hmm, por que existem esses outros processos nginx?
ok, eu então corro pkill nginx
para me livrar deles e então novamente docker-compose up -d
e tudo começa bem e dandy, sem erros.
No entanto, agora, quando vou para o meu site example.com
, não obtenho resposta.
Pensando que pode ser um problema de configuração, eu corro docker logs root_nginx_1
e não há NADA. Deve haver pelo menos alguns cabeçalhos ou solicitações sendo registradas.
Então, em uma tentativa final desesperada eu corro sudo shutdown -r now
e começo todo o processo.
O mesmo resultado com o processo nginx em execução no servidor.
Então,
- É normal que este processo nginx esteja sendo executado no servidor na inicialização?
- Como posso obter meu contêiner nginx para escutar na porta 80 sem um conflito?