CentOSでNginx+Tomcat+Redisアプリケーションサーバクラスタ負荷分散とSession共有を実現
9987 ワード
前言:
システム:CentOS 6.4 x 64
JDK:1.7
Tomcat:7.X
サーバクラスタの分散:
nginx:192.168.2.132:80
tomcat: 192.168.20.132:8088
192.168.20.132:8099
redis: 192.168.20.132:6379
インストールパッケージ:
nginxダウンロードアドレス:http://nginx.org/en/download.html
redisダウンロードアドレス:https://redis.io/download
tomcatとJdkは自分でダウンロードしてインストールします
クラスタを構築するために必要なjarパッケージのダウンロードアドレス:https://download.csdn.net/download/dc282614966/10564781
一、Nginxインストール
nginxバージョン:nginx-1.15.2
インストール方法:ソースコードコンパイルインストール
1.インストール環境
nginxのコンパイルにはc++が必要であり、prce(リダイレクトサポート)とopenssl(httpsサポート)もインストールする必要があります.
2.ダウンロードしたnginx-1.15.2.tar.gzパッケージを/usr/local/下に解凍する
3.cd/usr/local/nginx-1.15.2/インストールディレクトリの設定
4.エラーがない場合は、コンパイルインストールを開始
4.ファイアウォールポートを開く80
1)iptablesで次の設定を追加します.
2)iptalbesの再起動
5.nginxサービスの起動
cd/usr/local/nginx/sbinディレクトリに移動
プロセスを表示します.nginxのmasterプロセスとworkerプロセスが表示されます.
6.ip:80テストにアクセスして、インストールに成功したことを示すページを表示できます.
再起動コマンド:
二、redis取付
1.インストールパッケージのダウンロード
wget http://download.redis.io/releases/redis-4.0.10.tar.gzまたはhttps://redis.io/download
2.大/usr/local/ディレクトリの下に解凍
3./usr/local/redis-4.0.10/に進む
4.コンパイルインストール
5.起動
コンパイルされたファイルディレクトリの下/usr/local/redis/bin/に入り、次の図にredisを起動します.
開始:
6.redisバックグラウンド起動の設定
解凍ディレクトリの下にあるredis.confファイルを、コンパイルされたredisファイルの下にコピーします.
redis.confファイルを変更し、noをyesに変更し、redisに再親します.
redisを再起動するには、次の手順に従います.
プロセスが開始されたかどうかを確認します.
三、tomcat構成
1.必要なjarをダウンロードし、tomcatのlibの下にコピーします.
JArパッケージのダウンロードアドレス:https://download.csdn.net/download/dc282614966/10563909
2.tomcatのcontext.xmlプロファイルを変更し、次の構成情報をcontextラベルに入れる
四、nginx配置
ここでは逆エージェントを行うため、nginxのconfディレクトリの下でnginx.confのプロファイルを構成する必要があります.赤い線を引く部分は追加の内容で、以下のように修正されます.
ここでは本機の下の2つのTomcatインスタンスを指定し、ポートはそれぞれ80888099で、重みはすべて1で、後ろにTomcatインスタンスを配置し、nginx-tomcat-redisこれは私のテストプロジェクトのプロジェクト名で、下に使用します:
五、テスト
1.jspページ
テスト項目に簡単なjspページを書き、jsでカスタムservletを呼び出し、servletでsessionIdを取得し、取得したsessionIdをjspページに返します.コードは以下の通りです.
2.jsファイル
jsでは にajaxからservletを び してsessionIdを します.コードは の りです.
3.servletファイル
にsessionIdを し、jspページに ります.コードは のとおりです.
4.ページテスト
アクセスページは のようになります.ページページを り しリフレッシュすると、「 のjspページ」と「2 のjspページ」が に され、nginx が したことを します.2つのページのSessionIdが じであれば、 セッション が したことを します.
5.プロジェクトのソースコードのダウンロードアドレス:https://github.com/dengchao3119/nginx-tomcat-redis.git
システム:CentOS 6.4 x 64
JDK:1.7
Tomcat:7.X
サーバクラスタの分散:
nginx:192.168.2.132:80
tomcat: 192.168.20.132:8088
192.168.20.132:8099
redis: 192.168.20.132:6379
インストールパッケージ:
nginxダウンロードアドレス:http://nginx.org/en/download.html
redisダウンロードアドレス:https://redis.io/download
tomcatとJdkは自分でダウンロードしてインストールします
クラスタを構築するために必要なjarパッケージのダウンロードアドレス:https://download.csdn.net/download/dc282614966/10564781
一、Nginxインストール
nginxバージョン:nginx-1.15.2
インストール方法:ソースコードコンパイルインストール
1.インストール環境
nginxのコンパイルにはc++が必要であり、prce(リダイレクトサポート)とopenssl(httpsサポート)もインストールする必要があります.
[root@hadoop05 ~]# yum install gcc-c++
[root@hadoop05 ~]# yum -y install pcre*
[root@hadoop05 ~]# yum -y install openssl*
2.ダウンロードしたnginx-1.15.2.tar.gzパッケージを/usr/local/下に解凍する
[root@hadoop05 ~]# tar -zxvf nginx-1.15.2.tar.gz -C /usr/local/
3.cd/usr/local/nginx-1.15.2/インストールディレクトリの設定
[root@hadoop05 nginx-1.15.2]# ./configure --prefix=/usr/local/nginx
4.エラーがない場合は、コンパイルインストールを開始
[root@hadoop05 nginx-1.15.2]# make
[root@hadoop05 nginx-1.15.2]# install
4.ファイアウォールポートを開く80
1)iptablesで次の設定を追加します.
[root@hadoop05 nginx-1.15.2]# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW-m tcp -p tcp --dport 80 -j ACCEPT
2)iptalbesの再起動
service iptables restart
5.nginxサービスの起動
cd/usr/local/nginx/sbinディレクトリに移動
[root@hadoop05 sbin]# ./nginx
プロセスを表示します.nginxのmasterプロセスとworkerプロセスが表示されます.
6.ip:80テストにアクセスして、インストールに成功したことを示すページを表示できます.
再起動コマンド:
[root@hadoop05 sbin]# ./nginx -s reload
二、redis取付
1.インストールパッケージのダウンロード
wget http://download.redis.io/releases/redis-4.0.10.tar.gzまたはhttps://redis.io/download
2.大/usr/local/ディレクトリの下に解凍
[root@hadoop05 redis-4.0.10]# tar -zxvf redis-4.0.10.tar.gz -C /usr/local/
3./usr/local/redis-4.0.10/に進む
[root@hadoop05 /]# cd /usr/local/redis-4.0.10/
4.コンパイルインストール
[root@hadoop05 redis-4.0.10]# make
[root@hadoop05 redis-4.0.10]# make PREFIX=/usr/local/redis install
5.起動
コンパイルされたファイルディレクトリの下/usr/local/redis/bin/に入り、次の図にredisを起動します.
[root@hadoop05 /]# cd /usr/local/redis/bin/
開始:
[root@hadoop05 bin]# ./redis-server
6.redisバックグラウンド起動の設定
解凍ディレクトリの下にあるredis.confファイルを、コンパイルされたredisファイルの下にコピーします.
[root@hadoop05 redis-4.0.10]# cp redis.conf /usr/local/redis
redis.confファイルを変更し、noをyesに変更し、redisに再親します.
redisを再起動するには、次の手順に従います.
[root@hadoop05 redis]# ./bin/redis-server ./redis.conf
プロセスが開始されたかどうかを確認します.
[root@hadoop05 bin]# ps -ef|grep redis
三、tomcat構成
1.必要なjarをダウンロードし、tomcatのlibの下にコピーします.
JArパッケージのダウンロードアドレス:https://download.csdn.net/download/dc282614966/10563909
2.tomcatのcontext.xmlプロファイルを変更し、次の構成情報をcontextラベルに入れる
四、nginx配置
ここでは逆エージェントを行うため、nginxのconfディレクトリの下でnginx.confのプロファイルを構成する必要があります.赤い線を引く部分は追加の内容で、以下のように修正されます.
ここでは本機の下の2つのTomcatインスタンスを指定し、ポートはそれぞれ80888099で、重みはすべて1で、後ろにTomcatインスタンスを配置し、nginx-tomcat-redisこれは私のテストプロジェクトのプロジェクト名で、下に使用します:
upstream nginx-tomcat-redis{
#weigth ,
# Squid 3128
server 127.0.0.1:8088 weight=1;
server 127.0.0.1:8099 weight=1;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://nginx-tomcat-redis;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://nginx-tomcat-redis;
}
}
五、テスト
1.jspページ
テスト項目に簡単なjspページを書き、jsでカスタムservletを呼び出し、servletでsessionIdを取得し、取得したsessionIdをjspページに返します.コードは以下の通りです.
First Page
jsp
SessionId:
2.jsファイル
jsでは にajaxからservletを び してsessionIdを します.コードは の りです.
$(function() {
$.ajax({
url : 'session',
method : 'get',
success : function(result){
$("#firstSessinId").append(result);
}
});
})
3.servletファイル
にsessionIdを し、jspページに ります.コードは のとおりです.
public class SessionShareServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public SessionShareServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getSession().getId();
request.getSession().setAttribute("session", id);
System.out.println(id);
OutputStream out = response.getOutputStream();
out.write(id.getBytes());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
4.ページテスト
アクセスページは のようになります.ページページを り しリフレッシュすると、「 のjspページ」と「2 のjspページ」が に され、nginx が したことを します.2つのページのSessionIdが じであれば、 セッション が したことを します.
5.プロジェクトのソースコードのダウンロードアドレス:https://github.com/dengchao3119/nginx-tomcat-redis.git