コード ユーザーの増加に伴い、高可用性サービスへの依存度が日に日に高まっています。シングルポイント サービスでは再起動によるユーザーへの影響を避けることができないため、痛みのないサービスの再起動を実現するために次のソリューションが採用されています。
nginx+2tomcat(8080,8081)
アイデア: 通常のサービスである Tomcat は 1 つだけです。再起動された場合は、サービスが正常になったら、nginx -s reload を実行して、最後に Tomcat を閉じます。以前のサービスのtomcat。
シェルコードは次のとおりです:
nginx_root_path="/usr/local/nginx/"
nginx_c/vhost/"
tomcat_running_8080_port="8080"
tomcat_running_8081_port="8081"
tomcat_startup_path="bin/startup.sh"
tomcat_ shutdown_path= "bin/shutdown.sh"
cnt=`ps -ef|grep "apache-tomcat-6.0.39_${tomcat_running_8080_port}"|wc -l`
if [ "${cnt}" == " 0" ] ; then
stop_tomcat_port = "$ {tomcat_running_8081_port}"
start_tomcat_port = "$ {tomcat_running_8080_Port} //www.zuidaima.com:8080/share.htm"
else
lse_tomcat_port = "$ {tomcat_running_8080_port}"
start_tomcat_port= "${tomcat_running_8081_port}"
mv_start_c> mv_stop_c> url="http://www.zuidaima.com:8081/share.htm"
fi
echo "start tomcat ${start_tomcat_port}"
mv ${mv_start_conf_path}.bak ${mv_start_conf_path}
mv ${mv_stop_conf_path} ${mv_stop_conf_path}.bak
/usr/local/apache-tomcat-6.0.39_${start_tomcat_port}/${tomcat_startup_path}
sleep 40
rm share.htm -v
curl -v "${url}" -o "share.htm"
sleep 10
echo "nginx reload"
${nginx_root_path}sbin/nginx -s reload
sleep 2
echo "stop tomcat ${stop_tomcat_port}"
/ usr/local/apache-tomcat-6.0.39_${stop_tomcat_port}/${tomcat_shutdown_path}
sleep 10
ps -ef|grep tomcat-6.0.39_${stop_tomcat_port}|awk '{print $2}'|xargs kill
重要なポイントは、nginx の include ディレクティブを使用して必要な conf ファイルのみをロードすることです: <p></p>
关键点在利用了nginx的include指令实现只加载需要的conf文件:<br>
include /usr/local/nginx/conf/vhost/*.conf;
include /usr/local/nginx/ conf/vhost /*.conf;
上記では、痛みのないサービス再起動を実現するための nginx tomcat クラスター構成のチュートリアルと、関連する内容を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。
🎜