Nginx não está respondendo com o aplicativo rails implementado na instância aws ec2 usando o capistrano

1

Eu tenho um aplicativo rails implantado por meio do capistrano em uma instância do aws ec2 e tenho o nginx de passageiro instalado no servidor também. Sempre que tento acessar meu aplicativo usando o DNS ou o IP público fornecido, tudo que consigo é o carregamento do navegador por um tempo sem resposta, nem mesmo uma página de erro do nginx. Aqui está minha configuração nginx (/ etc / nginx / sites-enabled / default)

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        server_name <public ip>;
        passenger_enabled on;
        rails_env    production;
        root         /home/ubuntu/myapp/current/public;

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

Ao executar o comando "sudo nginx", esta é a resposta que recebo:

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

Eu passei horas procurando uma solução, mas não consegui acessar meu aplicativo. Qualquer ajuda, mesmo orientação para a direção certa seria muito apreciada. Se mais informações forem necessárias, por favor me avise.

EDITAR

Dentro do error.log, é isso que tenho recebido:

[ 2015-07-21 12:59:54.2681 21794/7eff039a4700 age/Cor/Main.cpp:507 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) t$
[ 2015-07-21 12:59:54.2681 21794/7eff0a1747c0 age/Cor/Main.cpp:876 ]: Received command to shutdown gracefully. Waiting until all clients have di$
[ 2015-07-21 12:59:54.2682 21794/7eff031a3700 Ser/Server.h:752 ]: [ApiServer] Freed 0 spare client objects
[ 2015-07-21 12:59:54.2682 21794/7eff031a3700 Ser/Server.h:443 ]: [ApiServer] Shutdown finished
[ 2015-07-21 12:59:54.2683 21794/7eff039a4700 Ser/Server.h:752 ]: [ServerThr.1] Freed 128 spare client objects
[ 2015-07-21 12:59:54.2683 21794/7eff039a4700 Ser/Server.h:443 ]: [ServerThr.1] Shutdown finished
[ 2015-07-21 12:59:54.2688 21794/7eff0a1747c0 age/Cor/Main.cpp:942 ]: Passenger core shutdown finished

[ 2015-07-21 12:59:54.2695 21799/7fb5deb62700 age/Ust/Main.cpp:337 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) t$
[ 2015-07-21 12:59:54.2695 21799/7fb5e536d7c0 age/Ust/Main.cpp:399 ]: Received command to shutdown gracefully. Waiting until all clients have di$
[ 2015-07-21 12:59:54.2695 21799/7fb5deb62700 Ser/Server.h:752 ]: [LoggerApiServer] Freed 0 spare client objects
[ 2015-07-21 12:59:54.2696 21799/7fb5deb62700 Ser/Server.h:443 ]: [LoggerApiServer] Shutdown finished
[ 2015-07-21 12:59:54.2697 21799/7fb5e536d7c0 age/Ust/Main.cpp:424 ]: Passenger UstRouter shutdown finished
[ 2015-07-21 12:59:55.3126 21887/7f0fcdb1e7c0 age/Wat/Main.cpp:1274 ]: Starting Passenger watchdog...
[ 2015-07-21 12:59:55.3190 21890/7f1083bfc7c0 age/Cor/Main.cpp:957 ]: Starting Passenger core...
[ 2015-07-21 12:59:55.3191 21890/7f1083bfc7c0 age/Cor/Main.cpp:234 ]: Passenger core running in multi-application mode.
[ 2015-07-21 12:59:55.3288 21890/7f1083bfc7c0 age/Cor/Main.cpp:707 ]: Passenger core online, PID 21890
[ 2015-07-21 12:59:55.3356 21895/7fc7fb8a07c0 age/Ust/Main.cpp:430 ]: Starting Passenger UstRouter...
[ 2015-07-21 12:59:55.3445 21895/7fc7fb8a07c0 age/Ust/Main.cpp:311 ]: Passenger UstRouter online, PID 21895

Eu até tentei liberar a porta 80: usando

sudo fuser -k 80/tcp

que resultou em:

80/tcp:              22143 22146 22147 22148 22149

Isso significa que ele destruiu 5 conexões para a mesma porta, o que pode ser o problema? Se sim, existe uma maneira de manter apenas uma única conexão com essa porta, a conexão do processo que está executando o meu aplicativo.

Depois disso eu reiniciei o nginx e é o mesmo resultado, e ao digitar sudo nginx eu recebo a mesma resposta que eu postei acima

EDIT 2

Depois de pesquisar muito, eu encontrei este comando "sudo lsof-i: 80" e aqui está a saída que ele produz, se isso ajudar, por favor sugira suas soluções, já faz algum tempo desde que fiquei preso nessa questão. / p>

nginx   18275     root    6u  IPv4 1213246      0t0  TCP *:http (LISTEN)
nginx   18276 www-data    6u  IPv4 1213246      0t0  TCP *:http (LISTEN)
nginx   18277 www-data    6u  IPv4 1213246      0t0  TCP *:http (LISTEN)
nginx   18278 www-data    6u  IPv4 1213246      0t0  TCP *:http (LISTEN)
nginx   18279 www-data    6u  IPv4 1213246      0t0  TCP *:http (LISTEN)

O que eu acredito é que existem múltiplas conexões rodando na porta 80 que eventualmente estão sufocando a resposta, eu posso estar errado, mas por favor sugira suas soluções.

Eu até removi o arquivo padrão de / etc / nginx / sites-enabled / default, criei um novo arquivo de configuração e também o vinculei, mas o problema continua o mesmo.Também verifiquei meu grupo de segurança de instância ec2, permite o tráfego de entrada na porta 80 de qualquer lugar. Pode haver algum outro problema ou estou procurando na direção errada por soluções?

executando sudo netstat -tulpn | grep :80 fornece a seguinte saída

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      18878/nginx 

Também para destacar que implantei uma ramificação do repositório do meu projeto e não a ramificação principal em si, uma vez que ela esteja implantada e funcionando, planejo mesclar a ramificação para mestre e implantá-la novamente.

EDIT3

Eu tentei isso no meu terminal local:

telnet <public ip> 80

e esta é a resposta que recebo

Trying <public ip>.
Connected <public ip>.
Escape character is '^]'.
    
por Zaeem Asif 21.07.2015 / 00:42

1 resposta

0

Você já tem um processo que se liga à porta 80. Confira via

netstat -ntp | find "80"

Depois de obter o PID (1234, por exemplo), envie um sinal para encerrar o processo normalmente:

kill -15 1234

Se isso não ajudar e o processo ainda estiver em execução, espere um pouco e envie outro tipo de sinal para o PID:

kill -9 1234

Depois disso, você pode iniciar o Nginx novamente sem problemas.

    
por 21.07.2015 / 08:57