Configurar apache para escuchar en un puerto que no sea 80

102

Yo uso el servidor centOS. Quiero configurar apache para escuchar en el puerto 8079. Agregué la directiva LISTEN 8079 en httpd.conf.
Abrí el puerto 8079 en iptables y reinicié iptables. Incluso detuve el servicio iptables.

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

Si intento acceder http://localhost:8079o http://myserver.com:8079desde esa máquina, puedo acceder a esa página. PERO desde cualquier otra máquina no puedo acceder al sitio en ningún puerto que no sea el 80. En el puerto 80, funciona. En el puerto 8079 no lo hace.

¿Qué más necesito configurar?

vivek.m
fuente

Respuestas:

138

En /etc/apache2/ports.conf, cambie el puerto como

Listen 8079

Luego vaya a /etc/apache2/sites-enabled/000-default.conf

Y cambia la primera línea como

<VirtualHost *: 8079>

Ahora reinicia

sudo service apache2 restart

Apache ahora escuchará en el puerto 8079 y lo redireccionará a / var / www / html

Shankar ARUL - jupyterdata.com
fuente
1
No, solo el molesto mensaje "Esta página web no está disponible". Solo para aclarar, el puerto 80 funciona perfectamente. Cambiar tanto el VirtualHost como el Listen no lo resuelve para mí. (AWS ubuntu). Por cierto, la razón por la que lo necesito para escuchar un puerto diferente es porque también configuré nginx para escuchar 80.
Tomer
1
pregunta rápida: ¿abrió el puerto de entrada en los grupos de seguridad cuando dice que está en AWS ubuntu?
Shankar ARUL - jupyterdata.com
1
si hay una línea NameVirtualHost *:80arriba Listen 80, cambie eso también ......
Haider Ali
75

Abra el archivo httpd.conf en su editor de texto. Encuentra esta línea:

Listen 80

y cámbialo

Listen 8079

Después del cambio, guárdelo y reinicie Apache.

ismailperim
fuente
3
sí, pero mencioné en la primera línea que ya probé esta "Agregué la directiva LISTEN 8079 en httpd.conf": ((
vivek.m
Oh, lo siento. Yo no lo vi. ¿Puede publicar el archivo httpd.conf en cualquier lugar? ¿Está utilizando software de terceros como Wamp, Xampp, Appserv?
ismailperim
puede obtener httpd.conf aquí fileuploading.net/860467 nada como WAMP, Xampp, Appserv. Todo lo que he hecho es compilar el conector apache, tomcat y jk desde la fuente y hacer todo lo posible para que funcionen juntos.
vivek.m
No encontré el problema :( todo parece normalmente. Intenté agregar la línea Listen 8076 en mi servidor local pero funcionó normalmente. ¿Puedes intentar volver a configurar Apache si es posible?
ismailperim
2
Una cosa que todo el mundo parece olvidar al responder a este tipo de preguntas es mencionar la ubicación del archivo. El archivo se encuentra en /etc/apache2/ports.conf
Mateus Viccari
23

Fue un problema de firewall. Había un firewall de hardware que bloqueaba el acceso a casi todos los puertos. (Desactivar el firewall del software / SELinux bla bla no tuvo ningún efecto)

Luego escaneé los puertos abiertos y usé el puerto que estaba abierto.

Si se enfrenta al mismo problema, ejecute el siguiente comando

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

Buscará todos los puertos abiertos en su sistema. Se puede acceder a cualquier puerto que esté abierto desde el exterior.

Ref .: Http://www.go2linux.org/which_service_or_program_is_listening_on_port

vivek.m
fuente
netstat -anp | grep apache2 (Puede ver el puerto de escucha y el PID de esto si se está ejecutando. Ubuntu)
ImranNaqvi
Mi proveedor de servicios en la nube tenía un firewall en la parte superior que estaba bloqueando el puerto. Compruebe los cortafuegos que no estén en el servidor de destino.
Yamada
15

Si necesita un puerto de escucha de Apache que no sea 80, debe agregar el siguiente archivo en ubuntu

"/etc/apache2/ports.conf"

la lista de puertos de escucha

Listen 80
Listen 81
Listen 82

Después de que tenga que ir a su archivo de configuración de hosts virtuales y definir el siguiente

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


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


<VirtualHost *:82>
  #...host 3
</VirtualHost>
dmitri
fuente
7

Esto me funciona en Centos

Primero: en el archivo /etc/httpd/conf/httpd.conf

añadir

Listen 8079 

después

Listen 80

Esto hasta que su servidor escuche el puerto 8079

Segundo: vaya a su host virtual por ej. /etc/httpd/conf.d/vhost.conf

y agregue este código a continuación

<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>

Esto significa que cuando accedes a tu www.example.com:8079redireccionamiento a

/ var / www / html / api_folder

Pero primero debes reiniciar el servicio

sudo service httpd restart

Ahmed Al Bermawy
fuente
2

Si está utilizando Apache en Windows :

  1. Verifique el nombre del servicio Apache con Win+ R+ services.msc+ Enter(si no es ApacheX.Y, debería tener el nombre del software que está usando con apache, por ejemplo: "wampapache64");
  2. Inicie un símbolo del sistema como administrador (usar Win+ R+ cmd+ Enterno es suficiente);
  3. Cambie al directorio de Apache, por ejemplo cd c:\wamp\bin\apache\apache2.4.9\bin:;
  4. Compruebe si el archivo de configuración está bien con: httpd.exe -n "YourServiceName" -t(reemplace el nombre del servicio por el que encontró en el paso 1);
  5. Asegúrese de que el servicio esté detenido: httpd.exe -k stop -n "YourServiceName"
  6. Empiece con: httpd.exe -k start -n "YourServiceName"
  7. Si comienza bien, el problema ya no existe, pero si obtiene:

    AH00072: make_sock: no se pudo vincular a la dirección IP: PORT_NUMBER

    AH00451: no hay tomas de escucha disponibles, apagándose

    Si el número de puerto no es el que deseaba usar, abra el archivo de configuración de Apache (por ejemplo, C:\wamp\bin\apache\apache2.4.9\conf\httpd.confábralo con un editor de código o un bloc de notas , pero no el bloc de notas ; no lee las nuevas líneas correctamente) y reemplace el número en la línea que comienza. con Listenel número del puerto que desea, guárdelo y repita el paso 6. Si es el que desea usar, continúe:

  8. Verifique el PID del proceso que está usando ese puerto con Win+ R+ resmon+ Enter, haga clic en la pestaña Red y luego en la subpestaña Puertos ;
  9. Mátalo con: taskkill /pid NUMBER /f(lo /ffuerza);
  10. Vuelva resmona verificar para confirmar que el puerto está libre ahora y repita el paso 6.

Esto asegura que el servicio de Apache se inició correctamente, la configuración en el archivo de configuración de hosts virtuales como sarul mencionó (por ejemplo :)C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf es necesaria si está configurando la ruta de sus archivos allí y también cambiando el puerto. Si cambia de nuevo, recuerde que debe reiniciar el servicio: httpd.exe -k restart -n "YourServiceName".

Armfoot
fuente
1

Para servidor FC22

cd / etc / httpd / conf editar httpd.conf [entrar]

Cambiar: Escuche 80 para: Escuche cualquier número

Guarda el archivo

systemctl reinicie httpd.service [entrar] si es necesario, abra cualquier número en su enrutador / firewall

Fedora
fuente