Nginx Memcached Tomcat-Clusterkonfiguration

WBOY
Freigeben: 2016-08-08 09:21:36
Original
800 Leute haben es durchsucht

Dieses Mal demonstrieren wir hauptsächlich die Funktionsweise unter Win7 64.

    • Webanwendungserstellung
    • Memcached-Installationskonfigurationsstart
    • Tomcat-Konfiguration
      • Erforderliches JAR-Paket
        • memcached-session-manager
        • Serialisierung
      • ContextXML-Konfiguration
    • Nginx-Installation Konfigurationsstart
    • Test
    • Referenz

Webanwendungserstellung

Einfach Der Aufbau einer Webanwendung wird hier nicht beschrieben. Weitere Informationen finden Sie auf meinem Github.
Um die Anzeige zu erleichtern, machen Sie einen Unterschied in success.jsp und fügen Sie 8080 zu einem und 8081 zu dem anderen hinzu.


Memcached-Installation, Konfiguration, Start

In diesem Beispiel werden 2 Memcached-Knoten verwendet, beide auf einem Computer.

Betrieb unter Win7 64. Die Ressource kann unter diesem Link heruntergeladen werden. Ich bin Link.
Geben Sie nach dem Entpacken cmd ein, um dieses Verzeichnis aufzurufen. Denken Sie daran, es als Administrator auszuführen.

Installieren

<code>memcached  <span>-d</span> install</code>
Nach dem Login kopieren

Ausführen

<code>memcached <span>-d</span> start</code>
Nach dem Login kopieren

Sie können auch mehrere zwischengespeicherte Dienste starten. Sie können auf diesen Link verweisen.

Erstellen

<code>sc <span><span>create</span><span>"Memcached Server"</span><span>start</span>= auto binPath= <span>"memcached_path -d runservice -m 32 -p 11311 -l 127.0.0.1"</span> DisplayName= <span>"Memcached Server"</span></span></code>
Nach dem Login kopieren

Bitte ändern Sie den Port, der Standardwert ist 11211
Erreichbar über Telnet: Telnet 127.0.0.1 11211
Das Beenden der Telnet-Schnittstelle kann beendet werden

Befehle zum Starten, Stoppen und Deinstallieren von Memcached Server:

<code>sc start <span>"Memcached Server"</span><span>//启动</span>
sc stop <span>"Memcached Server"</span><span>//停止</span>
sc <span>delete</span><span>"Memcached Server"</span><span>//卸载该服务</span></code>
Nach dem Login kopieren

Sie können den Memcached-Dienst im Task-Manager sehen


Tomcat-Konfiguration

Dieses Mal verwenden wir 2 Tomcat7.0.62-Beispiele

Die Tomcat-Clusterkonfiguration wird durch die gemeinsame Nutzung der im Cluster gespeicherten Sitzung implementiert Cache Memcached. Sitzungsfreigabe: Wenn der Tomcat-Dienst auf einem Computer gestoppt wird, können die Sitzungsdaten auf anderen Peer-Servern weiterhin aus dem Memcached-Cache gelesen werden, sodass es nicht zu Sitzungsverlusten kommt.

Verwenden Sie Memcached-Session-Manager, offizielle Dokumentation.

Die Konfiguration von Tomcat umfasst hauptsächlich zwei Aspekte: Zuerst müssen Sie die erforderlichen Pakete herunterladen und sie im lib-Verzeichnis unter dem Tomcat-Installationsverzeichnis ablegen (genau genommen sollte es $CATALINA_HOME/lib/ sein)
Das für die erste MSM erforderliche Glas, das für die Serialisierung erforderliche Glas,
Die zweite Konfiguration context.xml

erforderliches JAR-Paket

memcached-session-manager

Maven-Konfiguration entsprechend Tomcat 7
Die folgenden 3 Glaspakete sind erforderlich
memcached-session-manager-version.jar,
memcached-session-manager-tc7-version.jar,
spymemcached-version.jar

kann von Maven unten heruntergeladen werden

<code><span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>memcached-session-manager-tc7<span></<span>artifactId</span>></span><span><<span>version</span>></span>1.8.3<span></<span>version</span>></span><span></<span>dependency</span>></span></code>
Nach dem Login kopieren

Serialisierung

4 Arten der Serialisierung

<code>kryo-serializer:
<span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-kryo-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span>javolution:
<span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-javolution-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span>xstream:
<span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-xstream-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span>flexjson:
<span><<span>dependency</span>></span><span><<span>groupId</span>></span>de.javakaffee.msm<span></<span>groupId</span>></span><span><<span>artifactId</span>></span>msm-flexjson-serializer<span></<span>artifactId</span>></span><span><<span>version</span>></span>version<span></<span>version</span>></span><span></<span>dependency</span>></span></code>
Nach dem Login kopieren

Verschiedene Sequenzen Das Glas Für die Transformation erforderliche Pakete sind wie folgt:
- Kryo-Serializer: msm-Kryo-Serializer, Kryo-Serializer, Kryo, Minlog, Reflectasm, ASM
- javolution-serializer: msm-javolution-serializer, javolution
- xstream-serializer: msm-xstream-serializer, xstream, xmlpull, xpp3_min
- flexjson-serializer: msm-flexjson-serializer, flexjson

$CATALINA_HOME/lib/jar wie folgt hinzufügen

context.xml-Konfiguration

das Ändern Sie den Inhalt unter dem Kontextknoten in der Datei $CATALINA_HOME/conf/context.xml und senden Sie die MSM-Konfiguration.
Es umfasst hauptsächlich die Verwendung von Memcached zum Verwalten von Sticky- und Non-Sticky-Sitzungen sowie die Verwendung von Membase zum Verwalten von Non-Sticky-Sitzungen.
Das Beispiel basiert auf zwei zwischengespeicherten Instanzen auf einem Host. Die im Beispiel verwendete Serialisierungsmethode ist Kryo.

Dieses Mal werden Sticky-Sitzungen für die Verwaltung verwendet. Sie können sie selbst konfigurieren oder beim nächsten Mal hinzufügen. Die Konfiguration ist wie folgt.

<code><Context>  
  <span>...</span><Manager   className=<span>"de.javakaffee.web.msm.MemcachedBackupSessionManager"</span>  memcachedNodes=<span>"n1:localhost:11211,n2:localhost:11311"</span>        sticky=<span>"false"</span> sessi>"false"</span>        lockingMode=<span>"auto"</span>        requestUriIgnorePattern=<span>".*\.(ico|png|gif|jpg|css|js)$"</span>transcoderFactoryClass=<span>"de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"</span>/>
</Context>  </code>
Nach dem Login kopieren

Nginx-Installation, Konfiguration, Start

Laden Sie die stabile Version von der offiziellen Website herunter,

Geben Sie nach dem Dekomprimieren das Verzeichnis ein,

<code>start nginx  <span>// 启动</span></code>
Nach dem Login kopieren

Auf diese Weise wird der Nginx-Dienst gestartet. Öffnen Sie den Task-Manager und überprüfen Sie, ob der Prozess nginx.exe angezeigt wird und Systemressourcen belegt, was recht gering ist. Öffnen Sie dann den Browser und geben Sie http://127.0.0.1/ ein, um die Nginx-Begrüßungsseite anzuzeigen, die sehr benutzerfreundlich ist.

<code>nginx <span>-s</span> stop          <span>// 停止nginx</span>
nginx <span>-s</span> reload       <span>// 重新加载配置文件</span>
nginx <span>-s</span> quit          <span>// 退出nginx</span></code>
Nach dem Login kopieren

Standardmäßig verwendet Nginx die Standardkonfigurationsdatei nginx.conf. Ändern Sie sie wie folgt:

<code><span>#user  nobody;</span><span>worker_processes</span><span>2</span>;

<span>#error_log  logs/error.log;</span><span>#error_log  logs/error.log  notice;</span><span>#error_log  logs/error.log  info;</span><span>#pid        logs/nginx.pid;</span><span>events</span> {
    <span>worker_connections</span><span>1024</span>;
}


<span>http</span> {
    <span>include</span>       mime.types;
    <span>default_type</span>  application/octet-stream;

    <span>log_format</span>  main  <span>'<span>$remote_addr</span> - <span>$remote_user</span> [<span>$time_local</span>] "<span>$request</span>" '</span><span>'<span>$status</span><span>$body_bytes_sent</span> "<span>$http_referer</span>" '</span><span>'"<span>$http_user_agent</span>" "<span>$http_x_forwarded_for</span>"'</span>;

    <span>access_log</span>  logs/access.log  main;

    <span>sendfile</span><span>on</span>;
    <span>#tcp_nopush     on;</span><span>#keepalive_timeout  0;</span><span>#keepalive_timeout  65;</span><span>#gzip  on;</span><span>upstream</span> localhost {  
        <span>#ip_hash;</span><span>server</span> localhost:<span>8080</span> weight=<span>1</span>;  
        <span>server</span> localhost:<span>8081</span> weight=<span>1</span>;
    }

    <span>server</span> {
        <span>listen</span><span>80</span>;
        <span>server_name</span>  localhost;
        <span>charset</span> utf-<span>8</span>;

        <span>#charset koi8-r;</span><span>#access_log  logs/host.access.log  main;</span><span>location</span> / {
            <span>root</span>   html;
            <span>index</span>  index.html index.htm;
            <span>proxy_pass</span><span>http://localhost</span>;  
            <span>proxy_connect_timeout</span><span>2s</span>;
            <span>proxy_set_header</span> X-Real-IP <span>$remote_addr</span>;
            <span>proxy_set_header</span> X-Forwarded-For <span>$proxy_add_x_forwarded_for</span>;
        }

        <span>location</span><span>~ ^/(WEB-INF)/</span> {   
        <span>deny</span> all;   
        }   


        <span>#error_page  404              /404.html;</span><span># redirect server error pages to the static page /50x.html</span><span>#</span><span>error_page</span><span>500</span><span>502</span><span>503</span><span>504</span>  /50x.html;
        <span>location</span> = /50x.html {
            <span>root</span>   html;
        }

        <span># proxy the PHP scripts to Apache listening on 127.0.0.1:80</span><span>#</span><span>#location ~ \.php$ {</span><span>#    proxy_pass   http://127.0.0.1;</span><span>#}</span><span># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</span><span>#</span><span>#location ~ \.php$ {</span><span>#    root           html;</span><span>#    fastcgi_pass   127.0.0.1:9000;</span><span>#    fastcgi_index  index.php;</span><span>#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;</span><span>#    include        fastcgi_params;</span><span>#}</span><span># deny access to .htaccess files, if Apache's document root</span><span># concurs with nginx's one</span><span>#</span><span>#location ~ /\.ht {</span><span>#    deny  all;</span><span>#}</span>
    }




    <span># another virtual host using mix of IP-, name-, and port-based configuration</span><span>#</span><span>#server {</span><span>#    listen       8000;</span><span>#    listen       somename:8080;</span><span>#    server_name  somename  alias  another.alias;</span><span>#    location / {</span><span>#        root   html;</span><span>#        index  index.html index.htm;</span><span>#    }</span><span>#}</span><span># HTTPS server</span><span>#</span><span>#server {</span><span>#    listen       443 ssl;</span><span>#    server_name  localhost;</span><span>#    ssl_certificate      cert.pem;</span><span>#    ssl_certificate_key  cert.key;</span><span>#    ssl_session_cache    shared:SSL:1m;</span><span>#    ssl_session_timeout  5m;</span><span>#    ssl_ciphers  HIGH:!aNULL:!MD5;</span><span>#    ssl_prefer_server_ciphers  on;</span><span>#    location / {</span><span>#        root   html;</span><span>#        index  index.html index.htm;</span><span>#    }</span><span>#}</span>}
</code>
Nach dem Login kopieren

Test

Anmeldeseite

Erfolgsseite
success1

success2

Nachdem Sie Tomcat (8080) ausgeschaltet haben, rufen Sie Tomcat (8081) auf, um success2 anzuzeigen; Wenn ein zwischengespeicherter Dienst geschlossen wird, ist die Anzeige normal.


Referenz

Nginx Memcached Tomcat Cluster-Konfigurationspraxis (Sticky Session)

Starten Sie mehrere Memcached-Dienste auf demselben Windows-Computer
Einführung und Verwendung von MSM–Memcached_Session_Manager
Memcached-Session-Manager-Konfiguration
Installation und Konfiguration von Nginx unter Windows

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

Das Obige stellt die Nginx Memcached Tomcat-Clusterkonfiguration einschließlich der relevanten Aspekte vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage