Nginx Tomcat-Konfigurationscluster
Dieser Artikel ist reproduziert von: http://os.51cto.com/art/201111/304608.htm
In diesem Artikel wird die Verwendung von Nginx in Windows XP und Ubuntu vorgestellt Umgebungen Und die Clusterkonfiguration von Tomcat erreicht endlich einen Lastausgleich.
AD:
Die entwickelte Anwendung verwendet den F5-Lastausgleichsschalter. F5 leitet die Anfrage an 5-PS-Unix-Server weiter Instanzen stellen externe Schnittstellendienste wie Webdienste und Sockets bereit. Am Anfang hatte ich eine kleine Frage: Warum nicht Open-Source-Apache- und Nginx-Software verwenden? Das Laden von F5-Geräten kostet oft Hunderttausende und ist teuer? Eine relativ naive Frage von mir, die ich später verstanden habe: F5 arbeitet auf der Transportschicht des IOS-Netzwerkmodells, während Nginx und Apache auf der HTTP-Reverse-Proxy-Methode basieren und in der siebten Anwendungsschicht des ISO-Modells angesiedelt sind. Um es ganz klar auszudrücken: Der Unterschied zwischen TCP-UDP- und http-Protokollen besteht darin, dass Nginx keinen Lastausgleich für Anwendungen bereitstellen kann, die auf TCP-Protokollen basieren.
Verstand die Unterschiede und Anwendungsszenarien zwischen den beiden und entwickelte ein starkes Interesse an Nginx. Lesen Sie Zhang Yans „Practical Nginx“ (dieser junge und vielversprechende junge Mann im Jahr 1985 ist neidisch + eifersüchtig) und verstehen Sie Allgemeine Prinzipien und Konfiguration: Ich habe versucht, den Nginx + Tomcat-Lastausgleich unter Ubuntu 10.10 und Windows zu konfigurieren. Es gab keine Konfiguration wie statische und dynamische Trennung, Bild-Hotlink-Verhinderung usw.
Nginx-Einführung
Nginx (ausgesprochen genauso wie Engine x) ist ein leichter Webserver/Reverse-Proxy-Server und E-Mail-Proxyserver (IMAP/POP3) und ist unter einer BSD-ähnlichen Lizenz veröffentlicht. Seine Merkmale sind, dass es weniger Speicher beansprucht und über starke Parallelitätsfähigkeiten verfügt. Tatsächlich sind die Parallelitätsfähigkeiten von Nginx unter Webservern desselben Typs besser. Zu den Benutzern von Nginx-Websites auf dem chinesischen Festland gehören derzeit: Sina, NetEase, Tencent und Andere bekannte Mikronetze, Plurk, verwenden ebenfalls Nginx.
Das Obige ist eine Einführung in Nginx, was im Grunde Unsinn ist. Eine Kombination aus Bildern und Text zeigt die Grundkonfiguration und die zweite ist die Ubuntu-Umgebung. Vbox virtuell).
Windows XP-Umgebung: Nginx+Tomcat6
1. Download-Adresse
http://nginx.org/en/download.html, hier Wir empfehlen, stabile Versionen herunterzuladen. Dieser Artikel verwendet nginx-0.8.20.
2. Verzeichnisstruktur Dokumente Dokumentverzeichnis |_ Protokolle Protokoll Verzeichnis
in: D: Server-Verzeichnis, der unten beteiligte Tomcat wird ebenfalls in diesem Verzeichnis installiert.
In der DOS-Umgebung starten
Wenn Sie Nginx stoppen möchten, führen Sie den Befehl in der DOS-Umgebung aus: nginx -s stop
3. nginx.conf-Konfiguration
Die Die Standard-Nginx-Konfigurationsdatei befindet sich im Verzeichnis conf, die Hauptkonfigurationsdatei ist nginx.conf, wir haben sie in D:servernginx-0.8.20 installiert und die Standard-Hauptkonfigurationsdatei ist D:servernginx-0.8.20nginx.conf. Das Folgende ist die Konfiguration von Nginx als Front-End-Reverse-Proxy-Server.
Nginx.conf-Code
- #Benutzer und Gruppe, die von Nginx verwendet werden, nicht unter Fenster angegeben
- #Benutzer niumd niumd
- #Die Anzahl der funktionierenden Unterprozesse ( entspricht normalerweise der CPU. Die Anzahl oder das 2-fache der CPU)
- worker_processes 2;
- #Fehlerprotokollspeicher Pfad
- #error_log logs/error.log note;
- #PID zum Speichern von Dateien angeben
- pid logs/nginx.pid;
- Ereignisse {
- #Netzwerk-IO-Modell verwenden Linux empfiehlt epoll, FreeBSD empfiehlt die Verwendung von kqueue, nicht unter Windows angegeben.
- #use epoll;
- http {
- include mime.types;
- default_type application/octet -stream;
- Protokollformat definieren #log_format main '$remote_addr - $remote_user [$time_local] $request '
- #access_log off;
- access_log logs/access.log;
- client_header_timeout 3m; client_body_timeout 3m;
- send_timeout 3m; large_client_header_buffers 4k; 🎜>
- sendfile on; 🎜> tcp_nopush on; 🎜> tcp_nodelay on;
- include gzip.conf;
- upstream localhost {
- #Weisen Sie jedem Backend-Tomcat Anfragen basierend auf der IP-Berechnung zu ist möglich Tatsächlich kann es das Sitzungsproblem nicht lösen.
- #Bei mehreren Netzwerken kann derselbe Rechner beim Umschalten des Routings unterschiedliche IP-Adressen haben
- #ip_hash
- server localhost:18081;
- server localhost:18080;
- }
- server {
- listen 80;
- server_name localhost;
- location / {
- Proxy_connect_timeout 3
- ; Proxy_send_timeout 30 ;
- Proxy_read_timeout 30;
- Proxy_Pass http://localhost; > } }
- Die Proxy-Einstellungen lauten wie folgt:
- Proxy.conf-Code:
-
proxy_redirect off;
4
32k;proxy_temp_file_write_size 64k ;
- gzip-komprimierungsbezogene Konfigurationen sind wie folgt:
- Gzip.conf-Code :
- gzip on
- gzip_min_length 1000
- ;
- 4. Tomcat-Konfiguration
- Jeder kennt Tomcat. Hier müssen wir nur die Konfigurationsdatei server.xml ändern. 6.0.14 als Beispiel. Dekomprimieren Sie es im Serververzeichnis und benennen Sie es: apache-tomcat-6.0.14_1, apache-tomcat-6.0.14_2. Die erste Portänderung:
- Xml-Code
- <ServerPort
" 18006"
shutdown="SHUTDOWN"
- >
- Die zweite Portänderung: Xml-Code
<
ConnectorPort
=- "18081"
- Protokoll= "HTTP/ 1.1"
- 🎜>connectionTimeout="20000"
redirectPort="8443"/> Die dritte Portänderung: Java-Code
"8009" - Protocol="AJP/1.3" RedirectPort=
" 8443 „- /> Engine-Element fügt jvmRoute-Attribut hinzu: Xml-Code
<EngineName="Catalina"defaultHost="localhost"jvmRoute="tomcat1">
Duplizieren Sie nicht die Ports der beiden Tomcats, um sicherzustellen, dass sie kann für eine Tomcat-Konfiguration gestartet werden, und der Überwachungsport ist 18080. Wir werden alle Konfigurationsinformationen im Anhang hochladen.
5. Überprüfen Sie die Konfiguration und testen Sie den Lastausgleich
Testen Sie zunächst, ob die Nginx-Konfiguration korrekt ist, Testbefehl: nginx -t (Standardüberprüfung: confnginx.conf), Sie können auch den Pfad der Konfigurationsdatei angeben.
Zweitens Tomcat überprüfen, zwei Tomcats starten. Wenn kein Portkonflikt vorliegt, ist es erfolgreich (es gibt keinen Unsinn über das Java, von dem Tomcat abhängt, und andere werden „gekickt“);
Überprüfen Sie abschließend die Konfiguration der Lastausgleichseinstellungen, http://localhost/ oder http://localhost/index.jsp. Ich habe die Seite index.jsp geändert und Protokollausgabeinformationen hinzugefügt, um die Beobachtung zu erleichtern. Hinweis: Auf dem Kopf des Kätzchens in der oberen linken Ecke: Zugang Tomcat2, Zugriff auf Tomcat1. Das bedeutet, dass auf verschiedene Tomcats zugegriffen wird.
Damit wird die Nginx+Tomcat-Lastausgleichskonfiguration unter dem Fenster beendet. In Bezug auf die Tomcat-Sitzung besteht das Problem normalerweise darin, memcached oder nginx_upstream_jvm_route zu verwenden, ein Nginx-Erweiterungsmodul, das zur Implementierung des Cookie-basierten Session Sticky verwendet wird Funktion. Wenn zu viele Tomcats vorhanden sind, wird die Sitzungssynchronisierung nicht empfohlen. Die Synchronisierung von Sitzungen zwischen Servern verbraucht Ressourcen und Umgebungen mit hoher Parallelität können leicht zu Sitzungsstürmen führen. Bitte passen Sie die Sitzungslösung angemessen an Ihre eigene Anwendungssituation an.
Ubuntu10.10-Umgebung: Nginx+Tomcat6
Lassen Sie uns kurz darüber sprechen, wie Sie unter Ubuntu10.10 installieren und konfigurieren
1. Laden Sie Nginx herunter
Adresse: http://nginx.org/en/download.html, Linux-Version: nginx-0.8.20.tar. Dekomprimierungsbefehl:
tar -zxvf nginx-0.8.20.tar.gz
2. Kompilieren und installieren Sie NginxNginx-Abhängigkeit Einige andere PCRE und OpenSSL (abhängig von libssl-dev) wurden in meiner Notebook-Ubuntu-Umgebung installiert. Lassen Sie uns kurz darüber sprechen, wie man PCRE und OpenSSL usw. installiert >PCRE-Download-Adresse: ftp: //ftp.csx.cam.ac.uk/pub/software/programming/pcre/
Shell-Codetar zxvf pcre-
- 8.01
- .tar.gz cd pcre- 8.01
- sudo ./configure
- sodu make
- sodu make install
- openssl über apt-get install installiert
- sudo apt-get install libssl-dev
- //Wenn andere Pakete fehlen, verwenden Sie bitte diese Methode, um sie zu installieren.
- Jetzt werden die abhängigen Softwarepakete installiert :
#Kopieren Sie die Windows-Freigabeverzeichnissoftware in das aktuelle Arbeitsverzeichnis
- cp /mnt/fileshare/nginx- 0,8
- .20 .tar.gz ./
- #Entpacken Sie das Softwarepaket
- tar zxvf nginx- 0.8
- .20.tar.gz
- cd nginx- 0.8
- .20 // Quellcode kompilieren, standardmäßig niemanden verwenden, angeben, dass die Maschine existiert bereits. Der Benutzer und die Gruppe aktivieren die Nginx-Status-Funktion und überwachen den Nginx-Status. Starten Sie das Debuggen
- sudo ./configure --user=niumd --group=niumd --with-debug --with-http_stub_status_module
- sudo make
- sudo make install
- Die Kompilierung und Installation wird korrekt beendet Fenster, um die Standardkonfiguration zu überprüfen, dann nginx unter der Standardkonfiguration zu starten, besuchen Sie http://127.0.0.1
Nachdem die Nginx-Konfiguration erfolgreich war, nehmen wir wie folgt einige Änderungen an nginx.conf unter dem Fenster vor :
Ubuntu nginx.conf-Code- #Benutzer und Gruppe, die von Nginx verwendet werden
- Benutzer niumd niumd;
- #Die Anzahl der funktionierenden Unterprozesse (normalerweise gleich der Anzahl von CPUs oder 2 Mal die CPU)
- worker_processes 2;
- #Fehlerprotokoll-Speicherpfad
- #error_log logs/error.log;
- #error_log logs/error.log note; #Geben Sie die PID an, um die Datei zu speichern
- pid logs/nginx.pid;
- events {
- #Bei Verwendung des Netzwerk-IO-Modells empfiehlt Linux epoll, FreeBSD empfiehlt kqueue
- use epoll; /octet-stream ;
- #Protokollformat definieren
- #log_format main '$remote_addr - $remote_user [$time_local] $request '
- #access_log off;
- access_log logs/access.log;
- client_header_timeout 3m; client_body_timeout 3m;
- send_timeout 3m;
- large_client_header_buffers 4k; 🎜>
- sendfile on; 🎜> tcp_nopush on; 🎜>
- tcp_nodelay on;
- include gzip.conf;
- upstream localhost { #ip_hash
- #ip_hash; server localhost:18081 ;
- server localhost: 18080
- ; > listen
- 80 ;
- server_name localhost; 🎜>
- location / {
- proxy_connect_timeout 3
- ;
- proxy_send_timeout 30
- ;
- proxy_read_timeout 30;
- Proxy_Pass http://localhost;
- Für das IO-Netzwerkmodell wird empfohlen, epoll unter Linux zu verwenden, und der andere ist der Benutzer und die Gruppe, die für den Betrieb verwendet werden 🎜>
- 3. Tomcat konfigurieren
- Bitte beachten Sie die Konfiguration unter Fenster, die genau die gleiche ist.
- 4. Starten und Stoppen von Nginx Das Starten von Nginx unter Ubuntu unterscheidet sich geringfügig von dem unter Windows. Die allgemeine Start- und Stoppmethode ist wie folgt folgt.
- Java-Code
-
- #nginx目录执行
- sbin/nginx
- 或通过-c 指定配置文件
- sbin/nginx -c usr/local/nginx8.20/conf/nginx/conf
Shell代码
- niumd@niumd-laptop:/usr/local/nginx $ pwd
- /usr/local/nginx
- niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -t
- die Konfigurationsdatei /usr /local/nginx/conf/nginx.conf-Syntax ist in Ordnung
- Konfigurationsdatei /usr/local/nginx/conf/nginx.conf-Test ist erfolgreich
- niumd@niumd-laptop:/usr /local/nginx$ sudo sbin/nginx -v
- Nginx-Version: nginx/0.8.20
- niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -V
- Nginx-Version: nginx/0.8.20
- erstellt von gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
- Argumente konfigurieren: --user=niumd --group=niumd --with-debug --with-http_sub_module
- niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx
- niumd@niumd-laptop:/usr/local/nginx$ ps -ef|grep nginx
- root 5158 1 022:32 ? 00:00:00 nginx: Masterprozess sbin/nginx
- niumd 5159 5158 022:32 ? 00:00:00 nginx: Worker-Prozess
- niumd 5161 1577 022:32 Pkte/0 00:00:00 grep --color=auto nginx
- niumd@niumd-laptop:/usr/local/nginx$
我们通过ps -ef|grep nginx,看到如下结果:
注意:在启动时linux提示一句警告【warn】……,是因为我们设置的 #允许最大连接数 worker_connections. 2048, 超过linux默认102 4的限制.
停止:kill -信号类型 pid
nginx/logs目录下有个nginx.pid的文件,此文件记录了每次运行的pid,也可以通过ps命令查询。
信号类型如下:
信号类型 描述 RERM.INT 快速关闭 HUP 平滑重启,加载配置 USR1 重新加载日志 USER2 平滑升级执行程序 WINCH 从容关闭工作进程 QUIT 从容关闭
Die Verwendung von Nginx Tomcat ist eine vertrauenswürdige Lösung, die von PHP unterstützt wird.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

Wenn der Nginx -Server ausgeht, können Sie die folgenden Schritte zur Fehlerbehebung ausführen: Überprüfen Sie, ob der Nginx -Prozess ausgeführt wird. Zeigen Sie das Fehlerprotokoll für Fehlermeldungen an. Überprüfen Sie die Syntax der Nginx -Konfiguration. Stellen Sie sicher, dass Nginx über die Berechtigungen verfügt, die Sie für den Zugriff auf die Datei benötigen. Überprüfen Sie den Dateideskriptor, um Grenzen zu öffnen. Bestätigen Sie, dass Nginx den richtigen Port zuhört. Fügen Sie Firewall -Regeln hinzu, um den Nginx -Verkehr zuzulassen. Überprüfen Sie die Einstellungen der Reverse -Proxy, einschließlich der Verfügbarkeit von Backend Server. Für weitere Unterstützung wenden Sie sich bitte an den technischen Support.
