最近重新装了系统,把环境也搭了下,正好有段时间没有接触到原生的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 "%r" %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是唯一的
我的第一篇博客,纯手打,好累的!!!我从小就特别讨厌写作文的人啊!!!!!!!!!!