Como configurar o Apache no Ubuntu 14.04 se o Nginx já estiver instalado

2

Eu segui o Tutorial on Digital Ocean e instalei o servidor LEMP com êxito.

Depois, leio sobre o proxy reverso usando Nginx e APache para hospedar vários sites no mesmo droplet.

Como eu tenho uma gota grande e gorda, gostaria de hospedar dois aplicativos baseados no Laravel na mesma gota.

Então, usando este tutorial eu instalei o apache2 LINK

Mas, infelizmente, o apache não está sendo executado

$ sudo service apache2 reload
 * Reloading web server apache2                                               *
 * Apache2 is not running

Então eu fiz

 sudo netstat -tlpn

e peguei essa tabela

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         Stat     e       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LIST     EN      5377/nginx
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LIST     EN      1233/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LIST     EN      3529/mysqld
tcp6       0      0 :::80                   :::*                    LIST     EN      5377/nginx
tcp6       0      0 :::22                   :::*                    LIST     EN      1233/sshd

Eu sou um usuário do Windows e não tenho ideia sobre como corrigir isso.

Alguém pode me ajudar.

Obrigado,

    
por Vikram 13.01.2016 / 13:33

2 respostas

4

O Nginx é executado na porta 80 e tudo bem. A porta padrão para o Apache httpd é a porta 80 também, e isso é um problema.

Reconfigure o httpd

do Apache
  • Use a porta 8080 para seu httpd Apache. Abra ports.conf

    sudo nano vi /etc/apache2/ports.conf
    

    e substitua

    Listen 80
    

    com

    Listen 8080
    

    Faça o mesmo para hosts virtuais, se necessário.

  • Reinicie o httpd

    do Apache
    sudo systemctl restart apache2
    

    ou no Trusty com

    sudo service apache2 restart
    
  • Verifique a saída de netstat

    $ sudo netstat -tulpn | grep apache2
    tcp6   0  0 :::8080   :::*  LISTEN  22769/apache2
    

    E sim, também com a saída acima, o httpd está escutando na porta 80 do tcp.

  • Reconfigure o nginx para funcionar como proxy e use seu httpd Apache como backend, por exemplo, para a porta 80, editando /etc/nginx/sites-available/default

    sudo nano /etc/nginx/sites-available/default
    

    e adicione as configurações de proxy abaixo na seção location

    proxy_pass http://127.0.0.1:8080;
    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 http;
    proxy_set_header X-Forwarded-Port 80;
    proxy_set_header Host $host;
    
  • Reinicie o nginx

    sudo systemctl restart nginx
    

    ou no Trusty com

    sudo service nginx restart
    
  • Verifique a saída de netstat

    $ sudo netstat -tulpn | grep -P 'nginx|apache2'
    tcp  0  0 0.0.0.0:80  0.0.0.0:*  LISTEN  22973/nginx -g daem
    tcp6 0  0 :::80       :::*       LISTEN  22973/nginx -g daem
    tcp6 0  0 :::8080     :::*       LISTEN  22769/apache2 
    

E é uma boa ideia configurar o httpd para ouvir apenas no 127.0.0.1.

    
por A.B. 13.01.2016 / 16:22
-1

Longa história curta - você tem que executar o apache escutando na porta diferente (Listen), já que a porta 80 já está em uso pelo nginx.

    
por Jacek 13.01.2016 / 15:30