Question Comment configurer Apache sous Ubuntu 14.04 si Nginx est déjà installé


J'ai suivi le tutoriel sur Digital Ocean et installé LEMP serveur avec succès.

Ensuite, j'ai lu sur le reverse-proxy utilisant Nginx et APache pour héberger plusieurs sites Web sur le même droplet.

Comme j'ai une grosse gouttelette grosse, j'aimerais héberger deux applications basées sur Laravel sur la même gouttelette.

Donc, en utilisant ce tutoriel, j'ai installé apache2 LIEN 

Mais malheureusement, Apache ne fonctionne pas

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

Donc j'ai fait

 sudo netstat -tlpn

et a obtenu cette table

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

Je suis un utilisateur de Windows et je n'ai aucune idée sur la façon de résoudre ce problème.

Quelqu'un peut m'aider .

Merci,


2
2018-01-13 12:33


origine




Réponses:


Nginx fonctionne sur le port 80 et ça va. Le port par défaut pour Apache httpd est le port 80, et c'est un problème.

Reconfigurez Apache httpd

  • Utilisez le port 8080 pour votre Apache httpd. Ouvrir ports.conf

    sudo nano vi /etc/apache2/ports.conf
    

    et remplacer

    Listen 80
    

    avec

    Listen 8080
    

    Faites de même pour les hôtes virtuels, si nécessaire.

  • Redémarrez Apache httpd

    sudo systemctl restart apache2
    

    ou sur Trusty avec

    sudo service apache2 restart
    
  • Vérifiez la sortie de netstat

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

    Et oui, même avec la sortie ci-dessus, httpd écoute sur le port TCP 80.

  • Reconfigurez nginx pour fonctionner en tant que proxy et utilisez votre Apache httpd en tant que backend, par ex. pour le port 80 en éditant /etc/nginx/sites-available/default

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

    et ajoutez les paramètres de proxy ci-dessous dans le location section

    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;
    
  • Redémarrez nginx

    sudo systemctl restart nginx
    

    ou sur Trusty avec

    sudo service nginx restart
    
  • Vérifiez la sortie 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 
    

Et c'est une bonne idée de configurer httpd pour écouter uniquement sur 127.0.0.1.


4
2018-01-13 15:22



En tant qu’expert nginx, c’est la façon de procéder, d’arrêter temporairement nginx, d’installer Apache, de changer Apache pour qu’il soit sur un autre port, de démarrer nginx. :) - Thomas Ward♦
@ ThomasW. Oui bien sûr. :) Mais il est vraiment nécessaire d'arrêter nginx pour installer httpd? - A.B.
Installations Out Of The Box d'Apache et d'Autodefault nginx sur le Port 80 pour la fonctionnalité "Out Of The Box". Il n’ya aucun moyen de contourner le problème - que Apache ou Nginx soit installé en premier, apt-get pour travailler correctement et configurer la chose, puis changez-en un pour être sur un port différent et démarrez l'autre. Sinon, vous n'arrivez pas à configurer les problèmes. - Thomas Ward♦
@ ThomasW. Je n'ai pas arrêté nginX pendant que j'essayais d'installer apache2 Je pense qu'il y a une erreur à ce sujet, Pouvez-vous me dire comment je peux tout restaurer et faire une nouvelle installation? - Vikram
Pourquoi une nouvelle installation? - A.B.


En bref, vous devez exécuter apache sur différents ports (Listen), car le port 80 est déjà utilisé par nginx.


-1
2018-01-13 14:30



C'est l'explication TRÈS basique de ce qui se passe; il serait utile que vous donniez une solution ou une méthode réelle pour résoudre ce problème, plutôt que de simplement dire quel est le conflit. - Thomas Ward♦