在Linux上java-nginx+tomcat+redis进行负载均衡和session共享及项目部署

原创
2018/02/05 15:39
阅读数 339

整个过程包括jdk,tomcat,redis,nginx安装

在过程中需要的jar包有4个:

commons-pool2-2.3.jar

jedis-2.9.0.jar

tomcat8_redis_session_zhangchao.jar

tomcat-juli-8.5.11.jar

其中第三个jar包tomcat8_redis_session_zhangchao.jar是进行修改的,限于tomcat8版本,别的版本不兼容,如果你是别的版本请自己下载别的版本

Jdk我也是使用1.8版本的

现在开始正式安装,在不清楚命令的时候可以使用FileZilla,进行文件传输。

0.下载jdk8
选择对应jdk版本下载,如是32位就选32位,64位就是选64位。(可在Windows下下载完成后,通过文件夹共享到linux上)也可以过wget命令在服务器上直接下载

安装步骤

1. 登录Linux,切换到root用户(以下操作都是需要root权限)

su root 获取root用户权限,当前工作目录不变(需要root密码)

sudo -i 不需要root密码直接切换成root(需要当前用户密码)

2. usr目录下建立java安装目录

cd /usr  //进入usr目录


mkdir java   //创建java目录

3.jdk-8u60-linux-x64.tar.gz拷贝到java目录下

cp /mnt/hgfs/linux/jdk-8u60-linux-x64.tar.gz /usr/java/

4.解压jdk到当前目录

tar -zxvf jdk-8u60-linux-x64.tar.gz

得到文件夹 jdk1.8.0_60

5.安装完毕为他建立一个链接以节省目录长度

(我没用这一步)
ln -s /usr/java/jdk1.8.0_60/ /usr/jdk

6.编辑配置文件,配置环境变量

vim /etc/profile
添加如下内容:JAVA_HOME根据实际目录来
export JAVA_HOME=/usr/java/jdk1.8.0_60
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

7.重启机器或执行命令 source /etc/profile

sudo shutdown -r now

8.查看安装情况

[root@bogon jdk]# java -version
openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-b16)
OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)


[root@bogon jdk]# javac -version
javac 1.8.0_141

tomcat的安装

下载

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.49/bin/apache-tomcat-8.0.49.tar.gz

解压:

tar -zxvf apache-tomcat-8.0.49.tar.gz

启动Tomcat:

cd /opt/soft/apache-tomcat-8.0.33/bin/

./startup.sh

访问8080端口测试

 这样就说tomcat安装成功了

开机自启动Tomcat:

每次开机都要启动tomcat,方法很多,我用的是直接修改系统文件来实现,已经实践过,方法有效。

1.修改脚本文件rc.local:vim /etc/rc.d/rc.local

  这个脚本是使用者自定的开机启动程序,可以在里面添加想在系统启动之后执行的脚本或者脚本执行命令

2.添加如下内容:

  export JAVA_HOME=/usr/java/jdk包名

  /usr/apache-tomcat-8.0.49/bin/startup.sh start

3.esc 退出编辑,:wq 保存修改

4.将rc.local修改为可执行

  chmod 777 /etc/rc.d/rc.local

测试:重启服务器,直接在浏览器中输入ip+端口号访问tomcat出现如图说明开机自启动成功了

Nginx的安装

centos平台编译环境使用如下指令

  安装make:

yum -y install gcc automake autoconf libtool make

  安装g++:

yum install gcc gcc-c++

Nginx依赖包下载地址:

1.gzip模块需要zlib库

cd /usr/local/src

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure

make

make install

2.rewrite模块需要pcre库

cd /usr/local/src

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

tar -zxvf pcre-8.37.tar.gz

cd pcre-8.34

./configure

make

make install

3.ssl功能需要openssl库

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz

tar -zxvf openssl-1.0.1t.tar.gz

安装nginx:

cd /usr/local/src

wget http://nginx.org/download/nginx-1.1.10.tar.gz

tar -zxvf nginx-1.1.10.tar.gz

cd nginx-1.1.10

./configure

make

make install

启动nginx:

因为可能apeache占用80端口,不占用可以不用修改,apeache端口尽量不要修改,我们选择修改nginx端口。

  linux 修改路径/usr/local/nginx/conf/nginx.conf,修改端口为8090,localhost修改为你服务器ip地址。(成功就在眼前!!)

出现这样的字样就说明安装成功了

Nginx负载均衡配置

upstream php_servers {
            server 192.168.219.150:8080  max_fails=10 fail_timeout=15s;
            server 192.168.219.151:8080  max_fails=10 fail_timeout=15s;
           }
server{
        listen       80;
        server_name  127.0.0.1;
        location / {
                        root  html;
                        index  index.html index.htm;
                        proxy_connect_timeout 300;
                        proxy_read_timeout 300;
                        proxy_send_timeout 300;
                        proxy_buffer_size 64k;
                        proxy_buffers   4 32k;
                        proxy_busy_buffers_size 64k;
    
                        proxy_pass_header Server;
                        proxy_set_header Host $http_host;
                        proxy_redirect off;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Scheme $scheme;

                        proxy_pass http://php_servers 

;
                }

如上图2个保持一直,名字随意,以下还有一些配置说明:

1)down

    表示单前的server暂时不参与负载

2)Weight

    默认为1.weight越大,负载的权重就越大。

3)max_fails

    允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4)fail_timeout

    max_fails 次失败后,暂停的时间。

5)Backup

    其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

 

开机自启动nginx:

即在rc.local增加启动代码就可以了。

 

vi /etc/rc.d/rc.local

 

增加一行 /usr/local/nginx/sbin/nginx

设置执行权限:

 

chmod 777 /etc/rc.d/rc.local

安装redis

 

     1、下载源码,解压缩后编译源码。

 wget http://download.redis.io/releases/redis-2.8.3.tar.gz

 tar xzf redis-2.8.3.tar.gz

cd redis-2.8.3

 make

    2、启动Redis服务。

 redis-server redis.conf

     3、然后用客户端测试一下是否启动成功。

redis-cli

出现这样说明安装成功了

若出现如下错误:

Could not connect to Redis at 127.0.0.1:6379: Connection refused

解决方法:找到redis.conf 并修改 daemonize no 为 daemonize yes ,这样就可以默认启动就后台运行

命令如下:cd  /usr/local/nginx/conf

vi nginx.conf

重新开启客户端要确保服务端启动

redis-server /etc/redis.conf

启动redis

redis-cli

开机自启动redis:

编写脚本,vi /etc/init.d/redis

脚本文件查看redis.txt,完成之后进行下面步骤:

执行权限:

chmod +x /etc/init.d/redis

开机自启动:

# 尝试启动或停止redis

service redis start

service redis stop

 

# 开启服务自启动

chkconfig redis on

若过程中出现:redis-cli: Permission denied

说明文件的权限不够,找到你的redis-cli权限不够,进行下面命令:

chmod 777 /usr/redis-2.8.3/src/redis-cli

安装完之后,session共享配置修改

将之前的4个jar包,放到tomcat根目录下的lib文件夹下,四个包是:

commons-pool2-2.3.jar

jedis-2.9.0.jar

tomcat8_redis_session_zhangchao.jar

tomcat-juli-8.5.11.jar

然后修改centext.xml文件,如图位置添加

    <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />   

<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"

       host="redis数据库所在的服务器ip" 

       port="端口号,默认6379" 

       database="0" 

       maxInactiveInterval="60" /> 

如果有密码,这在里面添加 password="你的密码",没有则省。

重启tomcat

 

最终测试:

将你代码编辑器的源码,导出成war包,导出之后的,将war包拷贝到服务器的tomcat根目录下的webapps文件夹下,重启tomcat,浏览器中输入ip访问

2张图的sessionid一样但是不同的页面(这可以通过1111和2222区别),所以说明配置成功了成功

最后:

写这帖子也是为了记录自己的成长,该博客里有的一些命令也是从网上找的,小弟第一次写博客,请见谅,jar的下载地址:http://download.csdn.net/download/weixin_41469185/10240665

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部