Warum zeigt mein A-Eintrag auf meinen Apache-Server?

Warum zeigt mein A-Eintrag auf meinen Apache-Server?

Ich habe zwei Webserver, nginx und apache2. Ich habe einen A-Eintrag für mail.aboutryansam.com und einen CNAME webmail.aboutryansam.com. Ich habe versucht, einen Postfix- und Dovecot-Mailserver einzurichten, der auf mail.aboutryansam.com gehostet wird, und einen Roundcube-Mailclient, der auf webmail.aboutryansam.com gehostet wird. Ich verwende Ubuntu 18. Ich habe zwei Verzeichnisse /var/www/nginx/mail.aboutryansam.com/ für den Mailserver. Und ich habe /var/www/html für Roundcube. Standardmäßig laufen Apache2 und nginx auf demselben Port, also habe ich nginx geändert, um Port 81 zu verwenden. Ich habe die Standard-HTML-Seite im Apache-Verzeichnis und ich habe eine benutzerdefinierte in meinem nginx-Verzeichnis erstellt. Wenn ich mail.aboutryansam.com besuche, werde ich immer noch auf die Apache-HTML-Seite weitergeleitet, aber ich habe die conf-Datei, um vom nginx-Verzeichnis aus zu arbeiten

server {
  listen 81;
  server_name mail.aboutryansam.com;

  location {
    root /var/www/nginx/mail.aboutryansam.com
    index index.html index.htm;

    # proxy_pass http://localhost:3010;
    # proxy_set_header Host $host;
    # proxy_set_header X-Real-IP $remote_addr;
  }
}

Ich habe große Probleme beim Betrieb von Webservern und bin neu in der Serveradministration. Es tut mir also leid, wenn ich es nicht gut genug erklären konnte. Wenn Sie mir helfen und antworten können, seien Sie bitte „--verbose“, denn wie gesagt, ich bin neu in diesem Bereich.

Antwort1

DNS-A-Einträge verweisen auf IP-Adressen, nicht auf Dienste. Ein Dienst wie Apache/nginx kann über die IP-Adresse der Maschine, auf der er läuft, UND den Port erreicht werden.

Wenn Du eintrittsthttp://mail.aboutryansam.comIn Ihrem Browser wird eine Verbindung zum Standard-HTTP-Port hergestellt 80, sodass Sie eine Verbindung dorthin herstellen 198.58.105.140:80, wo Apache lauscht. Die server_namevon Ihnen in nginx definierte Verbindung wird an dieser Stelle nicht berücksichtigt, da die Anfrage bereits bei Apache eingegangen ist.

Wenn Sie eine Verbindung zu einem Dienst herstellen möchten, der auf Port 81 lauscht, müssen Sie dies explizit angeben:http://mail.aboutryansam.com:81

Wenn Sie dies nicht :81in der URL möchten, haben Sie folgende Möglichkeiten:

  • Richten Sie einReverseproxyan Port 81 auf dem Server an Port 80 -
  • Wenn Sie mehrere Maschinen/IPs zur Verfügung haben, binden Sie Apache und nginx an unterschiedliche Maschinen/IPs, so dass beide Port 80 binden können, und ändern Sie die DNS-Einträge entsprechend.

verwandte Informationen