nginx + tomcat + redis 实现seesion共享及项目发布

本文介绍了如何在CentOS系统上搭建nginx、tomcat和redis环境,实现session共享,并详细讲解了项目的发布过程,包括修改tomcat的配置,配置nginx反向代理以及设置host文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近重新装了系统,把环境也搭了下,正好有段时间没有接触到原生的SSM框架了,那就自己写个demo玩玩吧!
项目自己去写吧,我在这里就写下部署的操作,从环境开始。

系统环境:VMware ,CentOS-6.8-i386-minimal(因为穷,我只玩得起32位的),nginx,tomcat,JDK1.7,redis,mysql

首先开始搭环境:

一 、nginx

1、需要安装gcc的环境。yum install gcc-c++
2、第三方的开发包。
PCRE
	PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
zlib
	zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel

openssl
	OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
	nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel

6.2.安装步骤

第一步:把nginx的源码包上传到linux系统
第二步:解压缩
[root@admin ~]#  tar zxf nginx-1.8.0.tar.gz 
第三步:使用configure命令创建一makeFile文件。
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:启动nginx之前,上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
[root@admin sbin]# mkdir /var/temp/nginx/client -p
第四步:make
第五步:make install

 

装好以后大概是这个样子。

二、redis

步骤:
1、安装gcc环境:(上面已安装)
2、将Windows下下载的压缩文件上传到Linux下。我们可以通过filezilla等FTP软件上传,这里通过secureCRT进行上传。步骤如下:
alt + p
put c:/redis-3.0.0.tar.gz 或者 直接将SCRT工具打开将压缩包拖拽到客户端
完成上传
3、解压文件
tar –zxvf redis-3.0.0.tar.gz
4、编译并安装redis
进入解压文件夹:cd redis-3.0.0
编译并安装:make PREFIX=/usr/local/redis install【PREFIX:指定redis的安装目录】
5、安装后的目录结构

安装完后,在/usr/local/redis/bin下有几个可执行文件
redis-benchmark    ----性能测试工具
redis-check-aof     ----检查修复aof文件 appendonly file
redis-check-dump   ----检查快照持久化文件
redis-cli           ----命令行客户端
redis-server        ----redis服务器启动命令

在redis3.0之后的版本中,redis-sentinel是redis集群管理工具可实现高可用
6、copy文件
redis启动需要依赖一个配置文件,该配置文件在解压后的目录中:cp redis.conf /usr/local/redis/bin
7、启动redis服务:进入安装目录的bin下,执行:./redis-server redis.conf;查看该进程: ps -ef | grep redis  结束该进程:kill -9 pid(进程号)
启动后界面如下,这种方式又称为前台启动(有界面),如果想后台启动(无界面),可修redis.conf文件,将daemonize no-yes即可。

启动客户端:./redis-cli
8、停止redis服务:进入安装路径的bin目录下,执行如下命令:./redis-cli shutdown

mysql的安装就不说了,大家随便百度下都有,我这里通过rpm安装的mysql数据库,新启的一台虚拟机,专门用作数据库的访问。

这里一定要执行这个命令GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;  flush privileges; 
其中root用户名 123是密码;不然在电脑的连接软件是没有权限连接虚拟机下的数据库的,咱们是自己玩不用那么认真,如果考虑安全的话,上面那个命令就不要用了,用ip来限定

输入 
grant all privileges on *.* to root@”xxx.xxx.xxx.xxx” identified by “密码”;

或者 ​GRANT ALL PRIVILEGES ON *.* TO ‘root’@’xxx.xxx.xxx.xxx’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。

然后再输入 
flush privileges; 

三 、接下来说下tomcat的修改。实现redis托管session

1. 在tomcat的lib目录增加jar包

tomcat-redis-session-manager-VERSION.jar 
jedis-2.5.2.jar 
commons-pool2-2.2.jar

2. tomcat目录下context.xml修改<Context>结构如下。这里要注意jar的版本问题,版本不同RedisSessionHandlerValve和RedisSessionManager这两个类的路径可能跟下面的有出入,大家自行替换。

<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
   <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
   <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
       host="192.168.25.110"
       port="6379"
       database="0"
       maxInactiveInterval="60" />
</Context>
 <!--其中 host对应redis的主机ip,port为端口。我这里端口号都是默认的 -->

3.  修改server.xml。咱们一会通过域名来访问 。不然域名+项目名看着都别扭
在 <Host >标签下增加<Context path="" docBase="blog" reloadable="true" /> ,其中docBase的内容是我们的项目名,修改如下:

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <Context path="" docBase="blog" reloadable="true" />
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

注:tomcat集群中的tomcat都要进行上面三步的操作!

四、  修改nginx的配置文件nginx.config,实现反向代理。

upstream tomcat1 {
    server 192.168.25.110:8080 weight=2; #集群下tomcat的ip和端口,我把8080端口的权重设置为2
    server 192.168.25.110:8081;
    }
    server {
        listen       80;
        server_name  www.blog.com; #域名,一会我们通过他来访问
        location / {
            proxy_pass   http://tomcat1;
            index  index.html index.htm;
            client_max_body_size 10m;    #允许客户端请求的最大单文件字节数
            client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,
            proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)
            proxy_read_timeout 90;         #连接成功后,后端服务器响应时间(代理接收超时)
        }
    }

五、 修改我们电脑的host文件。

推荐一款软件记得要以管理员身份运行。参考下我的设置

六、 写个脚本吧。因为mysql我是开机自启的,这个就不用管了。我们写个脚本来帮我们启动niginx,redis和tomcat集群

 vim start-blog.sh  --启动tomcat集群

在设置下可执行权限,chomd u+x start-blog.sh 。

vim start-nginx-redis.sh  --启动niginx,redis

在设置下可执行权限,chomd u+x start-nginx-redis.sh

然后我们启动下看看!

./start-nginx-redis.sh 

./ start-blog.sh

在登陆下看看

在多刷新几次试试,依然没有问题。我们的sessionID是唯一的

我的第一篇博客,纯手打,好累的!!!我从小就特别讨厌写作文的人啊!!!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值