Heim > Artikel > Betrieb und Instandhaltung > So stellen Sie Tomcat und Nginx auf einem Linux-Server bereit
1. Vorbereitung
Zuerst müssen Sie über einen lauffähigen Linux-Server verfügen und den Benutzernamen und das Passwort kennen. Anschließend müssen Sie zwei Tools auf Ihrem Windows-Computer installieren, die eine Verbindung zum Linux-Server herstellen können . Installieren Zum Tutorial gibt es nicht viel zu sagen, das Zusatzbild zeigt, wie man eine Verbindung zum Server herstellt:
Die xshell-Verbindungsschnittstelle sieht wie folgt aus: Nachdem Sie die Host-IP eingegeben und auf OK geklickt haben, öffnet sich xshell ein Fenster zur Eingabe des Benutzers Name und Passwort für eine erfolgreiche Verbindung!
Die xftp-Verbindungsschnittstelle ist wie folgt: Füllen Sie einfach die Lücken aus. Ich werde hier nicht auf die Details eingehen und SFTP. Sie können es verstehen, wenn Sie genug wissen!
2. Installations- und Bereitstellungsarbeiten
Wenn Sie das Projekt auf einem Linux-Server bereitstellen möchten, ist es wichtig, JDK und Tomcat zu installieren. Dies sollte hier betont werden, wenn Sie mehrere Projekte bereitstellen möchten Wenn Sie eine Anwendung verwenden, benötigen Sie für jede Anwendung einen eigenen Tomcat, da die Konfiguration von Tomcat unter verschiedenen Anwendungen definitiv unterschiedlich ist. In diesem Fall können Sie ein Tomcat-Installationsverzeichnis und Tomcat unter mehreren Anwendungen installieren Als Teil des Arbeitsverzeichnisses können Sie das Installationsverzeichnis von Tomcat im Detail vorstellen und wie Sie Tomcat und JDK auf Ihrem Server installieren.
Schritt: Sie können ein neues Verzeichnis erstellen, wie in der Abbildung unten gezeigt. Einige Dateien im Zusammenhang mit dem Projektstart und dem Bereitstellungszugriff werden in diesem Verzeichnis abgelegt. Wie Sie sehen, habe ich mehrere Versionen von JDK und mehrere Versionen von Tomcat in diesem Verzeichnis abgelegt. Welches Tomcat und JDK während des Projektbereitstellungsprozesses verwendet werden soll, kann durch Konfiguration realisiert werden.
Für tatsächliche Anwendungen legen wir sie in einem Instanzverzeichnis ab, legen den Namen jeder Anwendung fest und platzieren dann das entsprechende Kriegspaket und die dekomprimierte Datei im Verzeichnis und warten darauf, dass Tomcat das Verzeichnis liest. Stellen Sie die Anwendung wie folgt bereit :
2. Ändern Sie die Konfiguration
Zur einfachen Verwaltung platzieren wir den Tomcat auch unter jeder Anwendung in einem Verzeichnis, wie unten gezeigt, aber wir müssen auf die Konfiguration jedes Tomcats achten
Unter dem Verzeichnis /bin müssen sowohl die Datei start.sh als auch die Datei stop.sh geändert werden. Zuerst müssen Sie den JDK-Pfad angeben, der dem Konfigurieren von Umgebungsvariablen ähnelt. Der zweite Schritt besteht darin, den Tomcat-Pfad anzugeben Sie können feststellen, dass „catalina_home“ und „catalina_base“ dem Installationsverzeichnis bzw. dem Arbeitsverzeichnis von Tomcat entsprechen. In der letzten Zeile können Sie sehen, dass der Projektstart start.sh unter dem Installationsverzeichnis verwendet Die für den Projektstart verwendete Konfigurationsdatei ist das Tomcat jeder Anwendung. Das Gleiche gilt für stop.sh.
Für die Ausführung von ./start.sh und ./stop.sh mit xshell sind Berechtigungen erforderlich. Wenn keine Berechtigungen vorhanden sind, können wir die Berechtigungen für die start.sh-E-Mail verwenden , geben Sie einfach ein Häkchen ein.
Im Verzeichnis /conf müssen Sie auf die Konfigurationsänderungen achten. Die erste ist die entsprechende Portnummer. Jede Tomcat-Anwendung muss eine andere Portnummer ändern Wenn der Port belegt ist und nicht gestartet werden kann, merken Sie sich am besten die für diese Anwendung konfigurierte Portnummer, die später bei der Verwendung von Nginx für die Portzuordnung verwendet wird ist, im Catalina-Verzeichnis Die Datei root.xml im Verzeichnis localhost wird verwendet, um anzugeben, in welches Verzeichnis die Projektinstanz geladen werden soll, wenn Tomcat gestartet wird.
Die anderen /logs-Verzeichnisse, /temp-Verzeichnisse, /webapps-Verzeichnisse und /work-Verzeichnisse müssen nicht geändert werden, wie oben ersichtlich ist. Die Verzeichnisaufteilung ist sehr klar und sie sind in Dienstinstallationsverzeichnisse unterteilt ( jdk, tomcat, nginx usw.), Das Anwendungsinstanzverzeichnis und das Anwendungsbereitstellungsverzeichnis können auch auf diese Weise aufgeteilt werden, wenn Sie den Linux-Server zum Bereitstellen mehrerer Projekte verwenden.
3.nginx implementiert Port 80 Reverse Proxy
Logischerweise können wir zu diesem Zeitpunkt das Kriegspaket unserer eigenen Anwendung in das entsprechende Verzeichnis übertragen, um es zu dekomprimieren, und es dann im entsprechenden Tomcat-Arbeitsverzeichnis der Anwendung ausführen. /start.sh um das Projekt zu starten! Probieren Sie es doch lieber erst mal aus.
Nachdem das Projekt bereitgestellt wurde, konfigurieren wir die Hosts und beginnen mit dem Zugriff. Zu diesem Zeitpunkt müssen wir die oben konfigurierte Tomcat-Portnummer hinzufügen, bevor wir darauf zugreifen können Port 80 ) besuchen? Wie oben erwähnt, haben wir unterschiedliche Portnummern für verschiedene Tomcats konfiguriert. Dies bedeutet, dass für den Projektzugriff Portnummern hinzugefügt werden müssen Es ist auch möglich, dass eine Anwendung auf Port 80 zugreift. Zu diesem Zeitpunkt müssen wir Nginx verwenden. Nach der Installation von Nginx können wir einige Konfigurationen hinzufügen, um einen Reverse-Proxy zu erreichen und den Zugriff auf Port 80, der von verschiedenen Anwendungen verwendet wird, weiterzuleiten Aus Sicht von Tomcat verwenden externe Anforderungen weiterhin die von Tomcat konfigurierte Portnummer, wodurch der gewünschte Effekt erzielt wird. Die spezifische Konfiguration ist wie folgt (natürlich müssen wir auch die entsprechende Verzeichnisaufteilungsarbeit durchführen):
Das Nginx-Verzeichnis lautet wie folgt:
Wir müssen uns nur um die Konfigurationsdatei nginx.conf im Verzeichnis /conf kümmern. Ich habe auch die spezifischen Konfigurationsinformationen geöffnet, damit jeder sie sehen kann. „include domains/*“? Zeigt an, dass die Konfiguration noch nicht abgeschlossen ist, einschließlich aller Konfigurationsdateien im Verzeichnis /domains.
Zu diesem Zeitpunkt können wir die entsprechende Nginx-Konfiguration jeder Anwendung mit Dateien mit unterschiedlichen Namen konfigurieren
Dann schauen wir uns an, wie man den Domänennamen-Zugriff unter Auction.center.jd.net:80 konfiguriert und ihn dann an den 1605-Port von 127.0.0.1 des lokalen Computers weiterleitet In der Konfiguration können wir auch sehen, dass einige abnormale Zustände wie http_500, http_502, http_504 usw. auf unterschiedliche Weise aufgezeichnet und verarbeitet werden. Im Allgemeinen können Sie zur Homepage der Website usw. springen und dann das Protokoll aufzeichnen Beim Konfigurieren dieser Konfigurationsdatei dürfen wir nicht vergessen, ein neues Protokollverzeichnis zu erstellen, da Nginx es sonst nicht finden kann. Gehen Sie in das Verzeichnis und es wird beim Start ein Fehler gemeldet.
Nach Abschluss dieser Aufgaben müssen wir Nginx nicht neu starten. Es gibt viele verwandte Informationen zu Baidu ein schwieriger Schritt und beenden Sie den Nginx-Prozess. Verwenden Sie dann den Befehl „nginx service start“, um den nginx-Dienst zu starten.
Können wir nach Abschluss dieser Aufgaben die bekannte Methode (ohne Hinzufügen einer Portnummer) verwenden, um darauf zuzugreifen? Ja, das ist richtig. Viele Leute machen sich Sorgen, ob sie Tomcat erneut starten müssen Dies bedeutet nur, dass Sie die Nginx-Routing-Konvertierungsschicht der Netzwerkschicht nicht verstehen. Der von uns besuchte Domänenname führt zunächst eine DNS-Auflösung über die von uns konfigurierten Hosts durch, konvertiert sie in die entsprechende IP, findet den Server, der der IP entspricht, und übergibt die Wenn wir dann Nginx auf dem Server konfigurieren, fängt Nginx zuerst die Anfrage ab, verarbeitet und verteilt die Anfrage und trifft schließlich den entsprechenden Tomcat (persönliches Verständnis, ich verstehe es möglicherweise nicht gut, bitte beschweren Sie sich nicht). Dieses Mal können wir jetzt sicher auf den Domainnamen zugreifen und Anfragen senden! !
4. Treten Sie auf die Grube
Ähm. . nicht gut! ! Ich war überglücklich und sprang zur Startseite, konnte aber immer noch nicht auf die angegebene Anwendung zugreifen. Als ich versuchte, die Portnummer hinzuzufügen, konnte ich „wie durch ein Wunder“ darauf zugreifen. Das bedeutet, dass das von uns konfigurierte Nginx nicht wirksam wurde. Was ist das Problem? ?
Lassen Sie mich unten über meine Ideen zur Problemlösung sprechen. Zu diesem Zeitpunkt müssen wir bestätigen, dass alle Anforderungen an Nginx gesendet wurden Protokolle. Einmal, zweimal, dreimal. . Es gibt kein Protokoll. Wir können grob davon ausgehen, dass der Nginx-Dienst überhaupt nicht verwendet wurde. Möglicherweise liegt ein Problem mit unserer Protokollkonfiguration vor. Zu diesem Zeitpunkt habe ich einen mutigen Vorgang durchgeführt, nämlich den Zugriff auf den Nginx-Dienst zu deaktivieren oder zur Homepage der Website zu springen. Wird der Sprung zur Homepage nicht über Nginx konfiguriert? Tatsächlich hat sich das Unternehmen bereits auf der Netzwerkebene darum gekümmert. Zu diesem Zeitpunkt war ich sehr verwirrt. Ich habe einfach verschiedene Versuche unternommen, eine der Anwendungen auf Port 80 zu konfigurieren Der Zugriff ist immer möglich. Nach der Bereitstellung habe ich nur darauf gewartet, dass der Domänenname in die Adressleiste eingegeben wird. Da der Nginx-Dienst geschlossen wurde, muss die Anfrage direkt gestellt werden Ich habe einmal, zweimal und dreimal darauf zugegriffen. Wie durch ein Wunder konnte ich nicht darauf zugreifen. ? ? Zu diesem Zeitpunkt hatte ich einen Geistesblitz. Ich habe schnell versucht, 192.168.108.37 80 lokal zu telneten, und es stellte sich heraus, dass ich nicht darauf zugreifen konnte. Dies bewies, dass meine Vermutung richtig war. Es war jetzt einfach, es in der Firewall zu aktivieren. Nachfolgend finden Sie eine Ergänzung zur Konfiguration der iptables-Firewall, um Port 80 unter Centos zu öffnen.
1. Öffnen Sie die Konfigurationsdatei von iptables. Der Code lautet wie folgt: vi /etc/sysconfig/iptables
2. Überprüfen Sie mit dem Statusbefehl /etc/init.d/iptables, ob Port 80 geöffnet ist , es gibt zwei Verarbeitungsmethoden
3. Die erste Möglichkeit: Ändern Sie den Befehl vi /etc/sysconfig/iptables, um die Firewall zum Öffnen von Port 80 hinzuzufügen. Der Code lautet wie folgt:
Kopieren Sie den Code. Der Code lautet wie folgt:
-a rh-firewall-1-input -m state --state new -m tcp -p tcp --dport 80 -j akzeptieren
4. Der Code zum Schließen/Aktivieren/Neustarten der Firewall lautet wie folgt: / etc/init.d/iptables stop (#start zum Öffnen, #restart zum Neustart)
5. Die zweite Methode: Fügen Sie den Port über den Befehl hinzu, der Code lautet wie folgt:
[root@centos httpd]# /sbin/iptables -i input -p tcp --dport 80 -j accept [root@centos httpd]# /etc/rc.d/init.d/iptables save [root@centos httpd]# /etc/init.d/iptables restart
6. Überprüfen Sie den Effekt: [ root@centos httpd]# /etc/init.d/iptables status
7. Darüber hinaus wird empfohlen, die beiden Methoden zu verwenden, die einfach zu bedienen sind und eine hohe Erfolgsquote haben Ich verwende die erste Methode, um die Firewall-Konfiguration zu ändern. Der Neustart schlägt fehl. Wenn ich die zweite Methode verwende, ist dies ein voller Erfolg
Das obige ist der detaillierte Inhalt vonSo stellen Sie Tomcat und Nginx auf einem Linux-Server bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!