Warum läuft Apache auf Port 8080 statt auf Port 80?

7

Ich bin verwirrt, warum Apache auf Port 80 nicht reagiert ...

$ wget http://localhost:80  
--2014-05-06 15:32:44--  http://localhost/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:80... failed: Connection refused.

... aber stattdessen auf Post 8080 ...

$ wget http://localhost:8080
--2014-05-06 15:32:38--  http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 177 [text/html]
Saving to: index.html

100%[=================================================>] 177 --.-K/s   in 0s

2014-05-06 15:32:38 (16,4 MB/s) - index.html saved [177/177]

Nicht zu viel zu sehen in der Ausgabe von apache2ctl :

$ apache2ctl -t -D DUMP_VHOSTS
VirtualHost configuration:
*:80 is a NameVirtualHost
   default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
   port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
   port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)

Allerdings netstat bestätigt den Hafen:

$ sudo netstat -anp | grep :8080
tcp6       0      0 :::8080        :::*       LISTEN      5353/apache2

Wie von Joel gefragt , ist hier das ports.conf:

$ sudo cat /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default

Listen 8080

<IfModule ssl_module>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
# NameVirtualHost *:8800
Listen 8800
JJD
quelle
Was ist der Wert der ListenDirektive in der Konfigurationsdatei?
Bratchley
@ JoelDavis Seltsam. Wie kommt es? Ich kann mich nicht erinnern, dass ich den Port manuell konfiguriert habe (dies ist eine frisch installierte Ubuntu-Maschine). Bitte wandeln Sie Ihren Kommentar in eine Antwort um, wenn dies die endgültige Lösung ist.
JJD

Antworten:

1

Was ist der Wert der ListenDirektive in der Konfigurationsdatei in /etc/apache2/ports.conf?

Bratchley
quelle
5

Warum läuft Apache auf Port 8080 statt auf Port 80?

Der übliche Grund, warum Apache häufig so konfiguriert ist, dass er diesen Port überwacht, ist, dass ein Prozess unter dem Root-Konto ausgeführt werden muss oder dass bestimmte Berechtigungen erteilt werden müssen, um TCP-Ports überwachen zu können, die niedriger als 1024der Port sind, und dazu gehört natürlich auch der Port 80.

Durch die Verwendung einer höheren, nicht privilegierten Portnummer kann Apache unter einem regulären Konto ohne bestimmte Konfiguration ausgeführt werden.

8080ist ein leicht zu merkender Ersatz für 80.

jlliagre
quelle
Gibt es einen Punkt in der Installation von Apache2, an dem der Benutzer entscheiden kann, mit welchem ​​Konto der Dienst ausgeführt wird?
JJD
2
@ jillagre Apache httpdhat diese Einschränkung nicht. Es soll immer als root beginnen und dann auf das von der UserDirektive angegebene Konto fallen . Tomcat hat diese Einschränkung (muss als Root- oder Nicht-80-Port ausgeführt werden), da es sich um einen Anwendungsserver handelt, da solche Dinge nicht im Vordergrund stehen.
Bratchley
1
bei JJD Soweit ich weiß, nicht mit Ubuntu Apache2 Paket. @JoelDavis Sie haben Recht 8080 ist der Standard-Tomcat-Port, und gepackter Apache2 soll als Root starten. Sollte jedoch ein Benutzer ohne Rootberechtigung Apache von der Quelle installieren möchten oder sollte Apache2 aus einem anderen Grund als Nicht-Root installiert und gestartet werden, ist der Punkt weiterhin gültig. Apache verlangt nicht, als Root ausgeführt zu werden.
Jlliagre