Heim >Backend-Entwicklung >PHP-Tutorial >Java-Clusteroptimierung – Nginx-Tomcat-Clusterkonfiguration – Übung

Java-Clusteroptimierung – Nginx-Tomcat-Clusterkonfiguration – Übung

WBOY
WBOYOriginal
2016-08-10 08:48:36940Durchsuche

Im letzten Artikel haben wir die technische Theorie von Nginx+Tomcat im Cluster vorgestellt. Heute vervollständigen wir eine einfache Clusterkonstruktion

Ergebnisvorschau

Werfen wir einen Blick auf die Ergebnisse nach der Konfiguration:

Konfigurationsschritte:

1. Installation

Laden Sie die aktuellste Version von Nginx von der offiziellen Download-Seite der Nginx-Website (http://nginx.org/en/download) herunter .html) Es handelt sich um das Installationspaket der Version 1.9.3, entpacken Sie es und kopieren Sie es in das Bereitstellungsverzeichnis.

2. Starten und stoppen Sie Nginx

Nginx unterstützt derzeit nur Befehlszeilenoperationen. Rufen Sie vor dem Betrieb die DOS-Befehlsumgebung auf (cmd-Befehl) und geben Sie Nginx ein Bereitstellungsverzeichnis.
Nginx starten: start nginx
Nginx stoppen: nginx -s stop
Neustart nach Änderung der Konfiguration: nginx -s reload
Diese drei Befehle können in Bat-Dateien umgewandelt und im Bereitstellungsverzeichnis abgelegt werden. Praktisch für spätere Operationen.
Inhalt der nginx.bat-Datei starten: start nginx
Inhalt der nginx.bat-Datei stoppen: nginx -s stop

Inhalt der nginx.bat-Datei neu laden: nginx -s reload

3. Reverse-Proxy-Konfiguration

Ändern Sie die Datei nginx.conf im Unterverzeichnis conf im Bereitstellungsverzeichnis (z. B. nginx-1.5.13confnginx). .conf) Inhalt können relevante Konfigurationen angepasst werden.

Reverse-Proxy-Konfigurationsbeispiel:
location / {

             #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

             #禁用缓存
             proxy_buffering off;

             #设置反向代理的地址
             proxy_pass http://192.168.1.1;       
      }

4. Lastausgleichskonfiguration

Der Standard-Upstream von Nginx basiert on Die Abfragemethode wird verwendet, um einen Lastausgleich zu erreichen. Bei dieser Methode wird jede Anforderung nacheinander verschiedenen Back-End-Servern zugewiesen. Wenn der Back-End-Server ausfällt, kann er automatisch eliminiert werden.
Eine andere Möglichkeit ist ip_hash: Jede Anfrage wird entsprechend dem Hash-Ergebnis der aufgerufenen IP zugewiesen, sodass jeder Besucher festen Zugriff auf einen Back-End-Server hat, der das Sitzungsproblem lösen kann.
Beispiel für die Lastausgleichskonfiguration
upstream xvshu.com{
             #ip_hash;
             server 192.168.121.251 1;
             server 192.168.121.252 1;
             server 192.168.121.253 1;
         }

server {
        listen       80
        server_name  trffweb;

        location / {

             #反向代理的地址
             proxy_pass http://<span style="font-family: Arial, Helvetica, sans-serif;">xvshu.com</span><span style="font-family: Arial, Helvetica, sans-serif;">;     </span>
        }

}

5. Vollständiges Konfigurationsbeispiel

nginx.conf:
#Nginx所用用户和组,window下不指定  
#user  niumd niumd;  
  
#工作的子进程数量(通常等于CPU数量或者2倍于CPU)  
worker_processes  1;  
  
#错误日志存放路径  
#error_log  logs/error.log;  
#error_log  logs/error.log  notice;  
error_log  logs/error.log  info;  
  
#指定pid存放文件  
pid        logs/nginx.pid;  
  
events {  
    #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。  
    #use epoll;  
      
    #允许最大连接数  
    worker_connections  2048;  
}  
  
http {  
    include       mime.types;  
    default_type  application/octet-stream;  
  
        #定义日志格式  
    #log_format  main  '$remote_addr - $remote_user [$time_local] $request '  
    #                  '"$status" $body_bytes_sent "$http_referer" '  
    #                  '"$http_user_agent" "$http_x_forwarded_for"';  
  
    #access_log  off;  
    #access_log  logs/access.log;  
  
    #client_header_timeout  3m;  
    #client_body_timeout    3m;  
    #send_timeout           3m;  
   
    #client_header_buffer_size    1k;  
    #large_client_header_buffers  4 4k;  
  
    sendfile        on;  
    #tcp_nopush      on;  
    #tcp_nodelay     on;  
  
    keepalive_timeout  75;  
  
    #include    gzip.conf;  
    upstream xvshu.cn{  
      #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。  
      #同一机器在多网情况下,路由切换,ip可能不同  
      #ip_hash;   
      server 192.168.112.250:18080 weight=1;  
server 192.168.112.251:18080 weight=1;  
     }  
  
    server {  
            listen       80;  
            server_name  localhost;     
  
#定义server_name  localhost中的请求都叫给xvshu.cn处理
            location / {  
                    #proxy_connect_timeout   3;  
                    #proxy_send_timeout      30;  
                    #proxy_read_timeout      30;  
                    proxy_pass http://xvshu.cn;
proxy_redirect default;
            }  
              
   }  
}  

Es sind Probleme aufgetreten:

Das Neuladen des Nginx-Dienstes ist fehlgeschlagen und weist darauf hin, dass kein entsprechender Dienst vorhanden ist. Zu diesem Zeitpunkt können Sie versuchen, den Server manuell neu zu starten

                                                                                                                          🎜>

Zusammenfassung:

Ein gutes Tool implementiert nicht nur gute Funktionen, sondern ist auch noch wichtiger Der Punkt ist, dass es eine einfachere Geschäftslogik geben muss, damit Benutzer bei der Verwendung dieses Tools einen reibungslosen Übergang durchführen können. Und Nginx, eine Software, die diese beiden Anforderungen für die Mehrheit der Entwickler erfüllt, wird den Benutzern klar werden, dass, wenn sie nicht darauf achten, Sie geben Ihr Bestes, damit die Benutzer es nicht erleben und nicht ohne es leben können! Ist das nicht die Denkweise von Internetprodukten?

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Das Obige führt in die Praxis der Java-Clusteroptimierung und Nginx-Tomcat-Clusterkonfiguration ein, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn