Konfigurieren Sie Apache so, dass es einen anderen Port als 80 überwacht

102

Ich benutze CentOS Server. Ich möchte Apache so konfigurieren, dass es Port 8079 überwacht. Ich habe die Anweisung LISTEN 8079 hinzugefügt httpd.conf.
Ich habe Port 8079 in iptables geöffnet und iptables neu gestartet. Ich habe sogar den iptables-Dienst eingestellt.

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

Wenn ich versuche, zuzugreifen http://localhost:8079oder http://myserver.com:8079von dieser Maschine, kann ich die Seite zugreifen. ABER von jedem anderen Computer aus kann ich nicht über einen anderen Port als 80 auf die Site zugreifen. Auf Port 80 funktioniert es. Auf Port 8079 ist dies nicht der Fall.

Was muss ich noch konfigurieren?

vivek.m
quelle

Antworten:

138

In /etc/apache2/ports.confÄndern Sie den Port als

Listen 8079

Gehen Sie dann zu /etc/apache2/sites-enabled/000-default.conf

Und ändern Sie die erste Zeile als

<VirtualHost *: 8079>

Starten Sie jetzt neu

sudo service apache2 restart

Apache überwacht jetzt Port 8079 und leitet zu / var / www / html um

Shankar ARUL - jupyterdata.com
quelle
1
Nein, nur die nervige Meldung "Diese Webseite ist nicht verfügbar". Zur Verdeutlichung funktioniert Port 80 perfekt. Das Ändern von VirtualHost und Listen löst das Problem für mich nicht. (AWS Ubuntu). Übrigens, der Grund, warum ich es brauche, um einen anderen Port abzuhören, ist, dass ich nginx auch so konfiguriert habe, dass es 80
abhört
1
Kurze Frage: Haben Sie den eingehenden Port in den Sicherheitsgruppen geöffnet, als Sie sagten, dass Sie sich auf AWS Ubuntu befinden?
Shankar ARUL - jupyterdata.com
1
Wenn es eine Zeile NameVirtualHost *:80darüber Listen 80gibt, ändern Sie dies ebenfalls ......
Haider Ali
76

Öffnen Sie die Datei httpd.conf in Ihrem Texteditor. Finden Sie diese Zeile:

Listen 80

und ändere es

Listen 8079

Speichern Sie es nach der Änderung und starten Sie Apache neu.

ismailperim
quelle
3
Ja, aber ich erwähnte in der ersten Zeile, dass ich diese "Ich habe die LISTEN 8079-Direktive in httpd.conf hinzugefügt" bereits ausprobiert habe: ((
vivek.m
Oh sory. Ich habe es nicht gesehen. Können Sie die httpd.conf-Datei irgendwo posten? Und verwenden Sie Software von Drittanbietern Wamp, Xampp, Appserv?
ismailperim
Sie können httpd.conf hier fileuploading.net/860467 nichts wie WAMP, Xampp, Appserv bekommen. Alles, was ich getan habe, ist, Apache, Tomcat und JK Connector aus dem Quellcode zu kompilieren und mein Bestes zu geben, damit sie zusammenarbeiten.
vivek.m
Ich habe das Problem nicht gefunden :( Alles scheint normal zu sein. Ich habe versucht, die Listen Listen 8076-Zeile in meinem lokalen Server hinzuzufügen, aber es hat normal funktioniert. Können Sie versuchen, Apache neu
einzurichten,
2
Eine Sache, die jeder bei der Beantwortung dieser Art von Fragen zu vergessen scheint, ist die Angabe des Dateispeicherorts. Die Datei befindet sich in /etc/apache2/ports.conf
Mateus Viccari
23

Es war ein Firewall-Problem. Es gab eine Hardware-Firewall, die den Zugriff auf fast alle Ports blockierte. (Das Ausschalten der Software-Firewall / SELinux bla bla hatte keine Auswirkung.)

Dann habe ich die offenen Ports gescannt und den offenen Port verwendet.

Wenn Sie mit demselben Problem konfrontiert sind, führen Sie den folgenden Befehl aus

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

Es wird nach allen offenen Ports auf Ihrem System gesucht. Auf jeden offenen Port kann von außen zugegriffen werden.

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

vivek.m
quelle
netstat -anp | grep apache2 (Sie könnten den Überwachungsport und die PID von diesem sehen, wenn es läuft. Ubuntu)
ImranNaqvi
Mein Cloud-Dienstanbieter hatte oben eine Firewall, die den Port blockierte. Überprüfen Sie andere Firewalls als auf dem Zielserver.
Yamada
15

Wenn Sie einen anderen Apache-Listen-Port als 80 benötigen, sollten Sie die nächste Datei unter Ubuntu hinzufügen

"/etc/apache2/ports.conf"

die Liste der Listen-Ports

Listen 80
Listen 81
Listen 82

Nachdem Sie die Konfigurationsdatei Ihres virtuellen Hosts aufrufen und als Nächstes definieren müssen

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


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


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

Das funktioniert bei Centos für mich

Erstens: in der Datei /etc/httpd/conf/httpd.conf

hinzufügen

Listen 8079 

nach dem

Listen 80

Dies bis Ihr Server den Port 8079 abhört

Zweitens: Gehen Sie zum Beispiel zu Ihrem virtuellen Host. /etc/httpd/conf.d/vhost.conf

und fügen Sie diesen Code unten hinzu

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

Dies bedeutet, wenn Sie zu Ihrer www.example.com:8079Weiterleitung zu gehen

/ var / www / html / api_folder

Sie müssen jedoch zuerst den Dienst neu starten

sudo service httpd restart

Ahmed Al Bermawy
quelle
2

Wenn Sie Apache unter Windows verwenden :

  1. Überprüfen Sie den Namen des Apache-Dienstes mit Win+ R+ services.msc+Enter (wenn es nicht ApacheX.Y ist, sollte es den Namen der Software enthalten, die Sie mit Apache verwenden, z. B.: "Wampapache64");
  2. Starten Sie eine Eingabeaufforderung als Administrator (die Verwendung von Win+ R+ cmd+ Enterreicht nicht aus).
  3. Wechseln Sie in das Apache-Verzeichnis, z. cd c:\wamp\bin\apache\apache2.4.9\bin ;
  4. Überprüfen Sie, ob die Konfigurationsdatei in Ordnung ist mit: httpd.exe -n "YourServiceName" -t (Ersetzen Sie den Dienstnamen durch den in Schritt 1 gefundenen);
  5. Stellen Sie sicher, dass der Dienst beendet ist: httpd.exe -k stop -n "YourServiceName"
  6. Beginnen Sie mit: httpd.exe -k start -n "YourServiceName"
  7. Wenn es in Ordnung beginnt, ist das Problem nicht mehr da, aber wenn Sie bekommen:

    AH00072: make_sock: konnte nicht an Adresse IP: PORT_NUMBER gebunden werden

    AH00451: Keine Abhörbuchsen verfügbar, heruntergefahren

    Wenn die Portnummer nicht diejenige ist, die Sie verwenden C:\wamp\bin\apache\apache2.4.9\conf\httpd.confmöchten, öffnen Sie die Apache-Konfigurationsdatei (z. B. mit einem Code-Editor oder einem Wordpad öffnen, aber nicht mit einem Editor - neue Zeilen werden nicht richtig gelesen) und ersetzen Sie die Nummer in der beginnenden Zeile mit Listender Nummer des Ports , die Sie wollen, speichert es und wiederholen Sie Schritt 6. Wenn es die, die Sie verwenden wollten, dann weiter:

  8. Überprüfen Sie die PID des Prozesses, der diesen Port verwendet, mit Win+ R+ resmon+ Enter, klicken Sie auf die Registerkarte Netzwerk und dann auf die Unterregisterkarte Ports .
  9. Töte es mit: taskkill /pid NUMBER /f( /ferzwingt es);
  10. Überprüfen Sie erneut resmon, ob der Port jetzt frei ist, und wiederholen Sie Schritt 6.

Dies stellt sicher, dass der Apache-Dienst ordnungsgemäß gestartet wurde. Die Konfiguration in der Konfigurationsdatei für virtuelle Hosts, wie in Sarul erwähnt (z. B. :),C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf ist erforderlich, wenn Sie dort Ihren Dateipfad festlegen und auch den Port ändern. Wenn Sie es erneut ändern, denken Sie daran, den Dienst neu zu starten : httpd.exe -k restart -n "YourServiceName".

Armfuß
quelle
1

Für FC22 Server

cd / etc / httpd / conf bearbeite httpd.conf [enter]

Ändern: Hören Sie 80 zu: Hören Sie, was auch immer

Speicher die Datei

systemctl Starten Sie bei Bedarf httpd.service [enter] neu und öffnen Sie die Whatevernumber in Ihrem Router / Ihrer Firewall

Fedora
quelle