Configurer Apache pour écouter sur un port autre que 80

102

J'utilise le serveur centOS. Je veux configurer apache pour écouter sur le port 8079. J'ai ajouté la directive LISTEN 8079 dans httpd.conf.
J'ai ouvert le port 8079 dans iptables et redémarré iptables. J'ai même arrêté le service iptables.

"netstat -nal | grep 8079" shows "tcp  0 0 :::8079 :::* LISTEN"

Si j'essaye d'accéder http://localhost:8079ou http://myserver.com:8079depuis cette machine, je peux accéder à cette page. MAIS à partir de toute autre machine, je ne peux pas accéder au site sur un port autre que 80. Sur le port 80, cela fonctionne. Sur le port 8079, ce n'est pas le cas.

Que dois-je configurer d'autre?

vivek.m
la source

Réponses:

138

Dans /etc/apache2/ports.conf, changez le port comme

Listen 8079

Ensuite, allez dans /etc/apache2/sites-enabled/000-default.conf

Et changez la première ligne comme

<VirtualHost *: 8079>

Maintenant redémarrez

sudo service apache2 restart

Apache va maintenant écouter sur le port 8079 et rediriger vers / var / www / html

Shankar ARUL - jupyterdata.com
la source
1
Non, juste le message ennuyeux "Cette page Web n'est pas disponible". Juste pour clarifier, le port 80 fonctionne parfaitement. Changer à la fois le VirtualHost et le Listen ne le résout pas pour moi. (AWS ubuntu). BTW, la raison pour laquelle j'en ai besoin pour écouter un port différent est parce que j'ai également configuré nginx pour écouter 80.
Tomer
1
question rapide: avez-vous ouvert le port entrant dans les groupes de sécurité alors que vous dites que vous êtes sur AWS ubuntu?
Shankar ARUL - jupyterdata.com
1
s'il y a une ligne NameVirtualHost *:80au Listen 80- dessus , changez-la également ......
Haider Ali
75

Ouvrez le fichier httpd.conf dans votre éditeur de texte. Trouvez cette ligne:

Listen 80

et changez-le

Listen 8079

Après le changement, enregistrez-le et redémarrez apache.

ismailperim
la source
3
oui, mais j'ai mentionné dans la première ligne que j'ai déjà essayé cette "J'ai ajouté la directive LISTEN 8079 dans httpd.conf": ((
vivek.m
Oh sory. Je ne l'ai pas vu. Pouvez-vous publier le fichier httpd.conf n'importe où? Et utilisez-vous des logiciels tiers Wamp, Xampp, Appserv?
ismailperim
vous pouvez obtenir httpd.conf ici fileuploading.net/860467 rien de tel que WAMP, Xampp, Appserv. Tout ce que j'ai fait, c'est compiler les connecteurs apache, tomcat et jk à partir de la source et faire de mon mieux pour les faire fonctionner ensemble.
vivek.m
Je n'ai pas trouvé le problème: (tout semble normalement. J'ai essayé d'ajouter la ligne Listen 8076 sur mon serveur local mais cela fonctionnait normalement. Pouvez-vous essayer de réinstaller Apache si c'est possible?
ismailperim
2
Une chose que tout le monde semble oublier en répondant à ce genre de questions est de mentionner l'emplacement du fichier. Le fichier se trouve dans /etc/apache2/ports.conf
Mateus Viccari
23

C'était un problème de pare-feu. Il y avait un pare-feu matériel qui bloquait l'accès à presque tous les ports. (La désactivation du pare-feu logiciel / SELinux bla bla n'a eu aucun effet)

Ensuite, j'ai scanné les ports ouverts et utilisé le port qui était ouvert.

Si vous rencontrez le même problème, exécutez la commande suivante

sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000

Il recherchera tous les ports ouverts sur votre système. Tout port ouvert est accessible de l'extérieur.

Réf .: Http://www.go2linux.org/which_service_or_program_is_listening_on_port

vivek.m
la source
netstat -anp | grep apache2 (Vous pouvez voir le port d'écoute et le PID de celui-ci s'il est en cours d'exécution.Ubuntu)
ImranNaqvi
Mon fournisseur de services cloud avait un pare-feu sur le dessus qui bloquait le port. Vérifiez les pare-feu placés ailleurs que sur le serveur cible.
Yamada le
16

Si vous avez besoin d'un port d'écoute apache autre que 80, vous devez ajouter le fichier suivant sous ubuntu

"/etc/apache2/ports.conf"

la liste des ports d'écoute

Listen 80
Listen 81
Listen 82

Une fois que vous devez accéder à votre fichier de configuration des hôtes virtuels et définir le suivant

<VirtualHost *:80>
  #...v host 1
</VirtualHost>


<VirtualHost *:81>
  #...host 2
</VirtualHost>


<VirtualHost *:82>
  #...host 3
</VirtualHost>
Dmitri
la source
7

Cela fonctionne pour moi sur Centos

Premièrement: dans le fichier /etc/httpd/conf/httpd.conf

ajouter

Listen 8079 

après

Listen 80

Ceci jusqu'à ce que votre serveur écoute le port 8079

Deuxièmement: accédez à votre hôte virtuel par exemple. /etc/httpd/conf.d/vhost.conf

et ajoutez ce code ci-dessous

<VirtualHost *:8079>
   DocumentRoot /var/www/html/api_folder
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin [email protected]
   ErrorLog logs/www.example.com-error_log
   CustomLog logs/www.example.com-access_log common
</VirtualHost>

Cela signifie que lorsque vous accédez à votre www.example.com:8079redirection vers

/ var / www / html / api_folder

Mais vous devez d'abord redémarrer le service

sudo service httpd restart

Ahmed Al Bermawy
la source
2

Si vous utilisez Apache sous Windows :

  1. Vérifiez le nom du service Apache avec Win+ R+ services.msc+ Enter(si ce n'est pas ApacheX.Y, il devrait avoir le nom du logiciel que vous utilisez avec apache, par exemple: "wampapache64");
  2. Démarrez une invite de commande en tant qu'administrateur (l'utilisation de Win+ R+ cmd+ Enterne suffit pas);
  3. Accédez au répertoire d'Apache, par exemple cd c:\wamp\bin\apache\apache2.4.9\bin:;
  4. Vérifiez si le fichier de configuration est OK avec: httpd.exe -n "YourServiceName" -t(remplacez le nom du service par celui que vous avez trouvé à l'étape 1);
  5. Assurez-vous que le service est arrêté: httpd.exe -k stop -n "YourServiceName"
  6. Commencez avec: httpd.exe -k start -n "YourServiceName"
  7. Si ça commence bien, le problème n'est plus là, mais si vous obtenez:

    AH00072: make_sock: impossible de se lier à l'adresse IP: PORT_NUMBER

    AH00451: pas de prises d'écoute disponibles, arrêt

    Si le numéro de port n'est pas celui que vous vouliez utiliser, ouvrez le fichier de configuration Apache (par exemple, C:\wamp\bin\apache\apache2.4.9\conf\httpd.confouvrez avec un éditeur de code ou un bloc - notes , mais pas le bloc - notes - il ne lit pas correctement les nouvelles lignes) et remplacez le numéro sur la ligne qui commence avec Listenle numéro du port souhaité, enregistrez-le et répétez l'étape 6. Si c'est celui que vous vouliez utiliser, continuez:

  8. Vérifiez le PID du processus qui utilise ce port avec Win+ R+ resmon+ Enter, cliquez sur l' onglet Réseau puis sur le sous - onglet Ports ;
  9. Tuez-le avec: taskkill /pid NUMBER /f( /fforce);
  10. Vérifiez resmonà nouveau que le port est libre maintenant et répétez l'étape 6.

Cela garantit que le service Apache a été démarré correctement, la configuration sur le fichier de configuration des hôtes virtuels comme sarul mentionné (par exemple :)C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf est nécessaire si vous définissez le chemin de vos fichiers là-dedans et changez également le port. Si vous changez encore, souvenez - vous de redémarrer le service: httpd.exe -k restart -n "YourServiceName".

Armfoot
la source
1

Pour serveur FC22

cd / etc / httpd / conf modifier httpd.conf [entrée]

Changement: écouter 80 à: écouter quel que soit le nombre

Enregistrez le fichier

systemctl restart httpd.service [enter] si nécessaire, ouvrez le numéro de votre routeur / pare-feu

Feutre
la source