redisキャッシュサーバ


redisキャッシュサーバ
redisはkey-valueストレージシステムです.Memcachedと同様に、string(文字列)、list(チェーンテーブル)、set(セット)、zset(sorted set--秩序セット)、hash(ハッシュタイプ)など、格納されたvalueタイプが相対的に多くサポートされています.
1、Redisは簡単なk/vタイプのデータをサポートするだけでなく、list、set、zset、hashなどのデータ構造の記憶も提供する.2、Redisはデータのバックアップ、すなわちmaster-slaveモードのデータバックアップをサポートする.3、Redisはデータの持続化をサポートし、メモリのデータをディスクに保持し、再起動時に再ロードして使用することができる.nginx+tomcat+redisは負荷等化、session共有1を実現し、nginx負荷等化サーバをインストールしてzlib-devel、pcre-develなどの依存パッケージをインストールする[root@www ~]# yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel注:proxyとupstreamモジュールを組み合わせてバックエンドのweb負荷等化を実現nginxのデフォルトのngx_http_proxy_moduleモジュールとngx_http_upstream_moduleモジュールは、バックエンドサーバの健康診断を実現するnginxプログラム作成ユーザ[root@www ~]# useradd -s /sbin/nologin wwwは、nginx [root@www ~]# tar zxf nginx-1.10.2.tar.gz [root@www ~]# cd nginx-1.10.2/ [root@www nginx-1.10.2]# ./configure --prefix=/usr/local/nginx1.10 --user=www --group=www --with-http_stub_status_module --with-http_realip_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_flv_moduleをコンパイルインストールnginxプログラムの実行経路[root@www nginx-1.10.2]# make && make install [root@www nginx-1.10.2]# ln -s /usr/local/nginx1.10/sbin/nginx /usr/local/sbin/ nginx:the configuration file/usr/local/nginx 1を最適化する.10/conf/nginx.conf syntax is oknginx: configuration file/usr/local/nginx1.10/conf/nginx.conf test is successful nginxサービススクリプトの作成:スクリプトの内容は以下の通り:コピーすれば[root@www nginx-1.10.2]# nginx -t
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# chkconfig: - 85 15
# pidfile: /usr/local/nginx1.10/logs/nginx.pid
# config: /usr/local/nginx1.10/conf/nginx.conf
nginxd=/usr/local/nginx1.10/sbin/nginx
nginx_config=/usr/local/nginx1.10/conf/nginx.conf
nginx_pid=/usr/local/nginx1.10/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Start nginx daemons functions.
start() {
if [ -f $nginx_pid ] ; then
echo "nginx already running...."
exit 1
fi
echo -n "Starting $prog: "
 $nginxd -c ${nginx_config}
 RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
}
# Stop nginx daemons functions.
stop() {
echo -n "Stopping $prog: "
 $nginxd -s stop
 RETVAL=$?
[ $RETVAL = 0 ] &&rm -f /var/lock/subsys/nginx
}
# reloadnginx service functions.
reload() {
echo -n "Reloading $prog: "
 $nginxd -s reload
}
# statusngnx service functions
status() {
if [ -f $nginx_pid ] ; then
echo "$prog is running"
else
echo "$prog is stop"
fi
}
case "$1" in
start)
start
 ;;
stop)
stop
 ;;
reload)
reload
 ;;
restart)
stop
start
 ;;
status)
status
 ;;
*)
echo "Usage: $prog {start|stop|restart|reload|status}"
exit 1
 ;;
esac
[root@www ~]# cat /etc/init.d/nginx [root@www ~]# chmod +x /etc/init.d/nginx [root@www ~]# chkconfig --add nginx [root@www ~]# chk config nginx on配置nginx逆エージェント:逆エージェント+負荷等化+健康プローブ、nginx.confファイル内容:[root@www ~]# systemctl daemon-reload
user www www;
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
worker_rlimit_nofile 10240;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 4096;
}
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 logs/access.log main;
server_tokens off;
sendfile on;
tcp_nopush on;
 #keepalive_timeout 0;
keepalive_timeout 65;
 #Compression Settings
gzip on;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_proxied any;
gzip_min_length 1k;
gzip_buffers 16 8k;
gzip_types text/plain text/css text/javascript application/json application/javascript
application/x-javascript application/xml;
gzip_vary on;
 #end gzip
 # http_proxy Settings
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 75;
proxy_send_timeout 75;
proxy_read_timeout 75;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
 #load balance Settings
upstream backend_tomcat {
server 192.168.31.83:8080 weight=1 max_fails=2 fail_timeout=10s;     #  
server 192.168.31.250:8080 weight=1 max_fails=2 fail_timeout=10s;   #  
 }
 #virtual host Settings
server {
listen 80;
server_name www.benet.com;
charset utf-8;
location / {
root html;
index index.jsp index.html index.htm;
 }
location ~ \.(jsp|do)$ {
          proxy_pass http://backend_tomcat;
          proxy_redirect off;
          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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
           }
           location /nginxstatus {
           stub_status on;
           access_log off;
           allow 192.168.1.0/24;     #  
           deny all;
            }
             }
             }

nginxサービスを再起動し、変更を有効にします[root@www~]#service nginx restart配置ファイアウォールゲージ許容tcp/80ポート出[root@www ~]# cat /usr/local/nginx1.10/conf/nginx.conf success [root@www ~]# firewall-cmd --permanent --add-port=80/tcp success
2,インストール配備tomcatアプリケーションサーバtomcat-1とtomcat-2ノードにJDKをインストールtomcatをインストールする前にJDKをインストールする必要があります.JDKのフルネームはjava development kitで、sun社が無料で提供するjava言語のソフトウェア開発ツールパッケージで、java仮想マシン(JVM)が含まれています.作成したjavaソースプログラムはコンパイルされてjavaバイトコードを形成することができます.JDKがインストールされている限り、これらのバイトコードファイルをJVMで解釈することでjavaのプラットフォーム間性を保証できます.JDKをインストールし、java環境を構成する:jdk-7 u 65-linux-x 64.gz解凍[root@www ~]# firewall-cmd --reload解凍jdk 1.7.065ディレクトリは/usr/local/の下に移動し、java [root@tomcat-1 ~]# tar zxf jdk-7u65-linux-x64.gzと名前を変更して/etc/profileファイルに内容を追加します.export JAVAHOME=/usr/local/javaexport PATH=$JAVAHOME/bin:$PATHはsourceコマンドでprofileファイルを実行し、有効にします.[root@tomcat-1 ~]# mv jdk1.7.065/ /usr/local/java [root@tomcat-1 ~]# source /etc/profile/usr/local/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin同じ方法でtomcat-2にもJDKをインストールtomcat-1とtomcat-2ノードでjava-versionコマンドを実行してjavaバージョンが以前にインストールされたものと一致するかどうかを確認します.[root@tomcat-1 ~]# echo $PATH java version"1.7.065"Java(TM)SE Runtime Environment(build 1.7.065-b 17)Java HotSpot(TM)64-bit Server VM(build 24.65-b 04,mixed mode)これでjava環境はtomcat-1とtomcat-2ノードでのインストール構成tomcat解凍apache-tomcat-7.0.54を完了する.tar.gzパッケージ[root@tomcat-1 ~]# java -versionは、解凍生成されたフォルダを/usr/local/の下に移動し、tomcat 7 [root@tomcat-1 ~]# tar zxf apache-tomcat-7.0.54.tar.gzと名前を変更してtomcat環境変数/etc/profileファイルの内容を以下のように構成します.export JAVAHOME=/usr/local/javaexport CATALINAHOME=/usr/local/tomcat 7 export PATH=$JAVAHOME/bin:$CATALINAHOME/bin:$PATHはsourceコマンドでprofileファイルを実行し、有効にします.[root@tomcat-1 ~]# mv apache-tomcat-7.0.54 /usr/local/tomcat7 [root@tomcat-1 ~]# source /etc/profile/usr/local/java/bin:/usr/local/tomcat 7/bin:/usr/local/tomcat 7/bin:/usr/local/java/bin:/usr/local/sibin:/usr/local/tomcacat 7/bin:/usr/bin:/root/bin tomcatのバージョン情報[root@tomcat-1 ~]# echo $PATH Using CATALINABASE:/usr/local/tomcat 7 Using CATALINAHOME:/usr/local/tomcat 7 Using CATALINATMIR:[root@tomcat-1 ~]# catalina.sh version [root@tomcat-1 ~]# /usr/local/tomcat7/bin/startup.sh/usr/local/local/local/local/local/usr/local/tomcat 7/tempUsing JREHOME:/usr/local/javaUsing CLASSSPATH:/usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jarServer version: Apache Tomcat/7.0.54Server built: May 19 2014 10:26:15Server number: 7.0.54.0OS Name: LinuxOS Version: 3.10.0-327.el7.x 8664 Architecture:amd 64 JVM Version:1.7.065-b 17 JVM Vendor:OracleCorporation起動tomcat [root@tomcat-1 ~]# netstat -anpt | grep java Using CATALINABASE:/usr/local/tomcat 7 Using CATALINAHOME:/usr/local/tomcat 7 Using CATALINATMPDIR:/usr/local/tomcat 7/tempUsing JREHOME:/usr/local/javaUsing CLASPATH:/usr/local/tomcac/tomcat 7/bin strapjar:/usr/local/tomcat7/bin/tomcat-juli.jarTomcat started.Tomcatはデフォルトで8080ポートで動作します.netstatコマンドを実行して8080ポートの傍受情報を表示する[root@tomcat-1 ~]# firewall-cmd --permanent --add-port=8080/tcp tcp 6 0::::8009:::LISTEN 42330/javatcp 6 0:::8080:::LISTEN 42330/javaファイアウォールルール構成:[root@tomcat-1 ~]# firewall-cmd --reload success [root@tomcat-1 ~]# vim /usr/local/tomcat7/conf/server.xml success同じ方法でtomcat-2にもブラウザをインストールしてtomcat-1とtomcat-2へのアクセステストtomcatをそれぞれ閉じる場合は/usr/local/tomcat 7/bin/shutdoを実行しますwn.sh命令が終わったら、訪問の成功を見ることができます.私たちのtomcatのインストールが完了したことを説明します.次に、プロファイル[root@tomcat-1 ~]# mkdir -p /web/webapp1を変更してデフォルトの仮想ホストを設定し、jvmRoute*を追加してデフォルトの仮想ホストを変更し、ウェブサイトのファイルパスを/web/webapp 1に向け、hostセグメントにcontextセグメントunpackWARs="true"autoDeploy="true">ドキュメントディレクトリとテストファイル[root@tomcat-1 ~]# cd /web/webapp1/ [root@ tomcat-1 webapp1]# vi index.jsp indexを追加します.jspの内容は以下の通りです.



tomcat-1


Session serviced by tomcat

Session ID
Created on

tomcatの実行を停止し、プロファイルを確認し、tomcat [root@tomcat-1 ~]# shutdown.sh [root@tomcat-1 ~]# netstat -anpt | grep java [root@tomcat-1 ~]# catalina.sh configtest Using CATALINA_を起動します.BASE:/usr/local/tomcat7Using CATALINA_HOME:/usr/local/tomcat7Using CATALINA_TMPDIR:/usr/local/tomcat7/tempUsing JRE_HOME:/usr/local/javaUsing CLASSPATH:/usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jarNov 16, 2016 1:04:05 AM org.apache.catalina.core.AprLifecycleListenerinitINFO: The APR based Apache Tomcat Native library which allows optimal performance in productionenvironments was not found on the java.library.path:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/libNov 16, 2016 1:04:05 AM org.apache.coyote.AbstractProtocolinitINFO: Initializing ProtocolHandler ["http-bio-8080"]Nov 16, 2016 1:04:05 AM org.apache.coyote.AbstractProtocolinitINFO: Initializing ProtocolHandler ["ajp-bio-8009"]Nov 16, 2016 1:04:05 AM org.apache.catalina.startup.Catalina loadINFO: Initialization processed in 534 ms[root@tomcat-1 ~]# startup.shUsing CATALINA_BASE:/usr/local/tomcat7Using CATALINA_HOME:/usr/local/tomcat7Using CATALINA_TMPDIR:/usr/local/tomcat7/tempUsing JRE_HOME:/usr/local/javaUsing CLASSPATH:/usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jarTomcat started. [root@tomcat-1 ~]# netstat -anpt | grep java tcp 6 0::::8009::::LISTEN 8180/javatcp 6 0:::8080:::LISTEN 8180/javaTomcat-2ノードはtomcat-1ノードとほぼ同様に構成されていますが、jvmRouteが異なるだけです.また、どのノードからアクセスが提供されるかを区別するために、テストページのタイトルも異なります(本番環境の2つのtomcatサーバから提供されるページの内容は同じです).他の構成は同じです.ブラウザでnginxホストにアクセスし、負荷分散を検証
                               !!!