首先是Nginx配置:
下载Nginx(这里使用的是windows版本):http://nginx.org/en/download.html
解压到指定目录,在此目录下打开命令行运行界面:
启动命令:start nginx
关闭命令:nginx -s quit
命令运行时都是弹框一闪而过,可以自行去任务管理器中看看进程是否启动
至于运行两个Tomcat修改不同端口号和起始界面区分什么的,这里就不详细叙说了,可以自行百度
接下来是nginx的配置文件设置:
worker_processes 1;#工作进程的个数,一般与计算机的cpu核数一致
events {
worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数)
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream;#默认文件类型
sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
keepalive_timeout 65; #长连接超时时间,单位是秒
gzip on;#启用Gizp压缩
#服务器的集群
upstream netitcast.com { #服务器集群名字
server 127.0.0.1:8088 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:8089 weight=2;
}
#当前的Nginx的配置
server {
listen 8080;#监听80端口,可以改成其他端口
server_name localhost;############## 当前服务的域名
location / {
proxy_pass http://netitcast.com;
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
核心配置:
这样nginx的简单配置基本上可以了
参考:http://blog.csdn.net/wang379275614/article/details/47778201
在完成上面的配置后,在Tomcat中放入我们自己的项目后,会发现一个问题,需要登录验证的项目,会总是返回登录页面,无法正常访问主页,这是因为在配置负载均衡后,项目的Session没有实现共享机制,而项目中的具体Session共享机制,我们这里可以借助于Redis来实现。
首先第一个毫无疑问是引入相关Maven信息:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
毫无疑问,SpringBoot的项目真的为我们提供了很大的便捷开发,之前有写过SpringMVC架构下的Session共享,真的是绕来绕去,可能是和当时技术水平的原因,原来的那片博客自己都懒得看,有时间再去整理一下吧
再SpingBoot项目中,我们只要在启动类上加上注解@EnableRedisHttpSession
就可以了
最后就是Redis的部署部分了
先下载Redis文件,这里同样使用的是windows版本:https://github.com/MicrosoftArchive/redis/releases
下载解压后,修改配置文件设置Redis的认证密码信息和端口号(自行百度哈,不截图了)
然后为了以后启动方便一点,可以将Redis启动添加到系统服务中:
#进入Redis根目录下执行
redis-server --service-install redis.windows.conf
然后在项目的配置文件中加入Redis信息:
#redis
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=123456
这样三个部分就基本完成了,最后编译项目,打包,部署,运行,启动nginx:
可以看到,两次刷新的地址以及获取的SessionId是一样的,但是进入了不同服务器界面。
ps:
有时候会遇到一种情况就是访问的时候会卡顿很长时间,但是确实偶尔才复现,不知道是配置问题,还是nginx本身的问题,后续碰到再继续研究吧