概念:
集群:一组对外提供相同的服务的服务器集合。
节点:集群中的每一个单独的服务器。
目的:
随着网站规模的扩大,达到单台服务器性能上限后就不能处理更多的请求了,
我们就需要把软件部署到服务器集群上,提高处理的请求数据上限。
具体实现细节(我们没有多余的电脑,用的同一台同一个linux):
一.安装tomcat
二.安装nginx
三.出现cookie路径问题引入redis
四.引入图片服务器vsftpd
五.部署上线
2.安装另外一个TOMCAT
在虚拟机上安装另外一个 tomcat,和原本的 tomcat 一起模拟两个节点的集群
1. 解压
2. 剪切到 /usr/local 并重命名为 tomcat2
3. 进入安装目录下的 conf 目录
4. 编辑 server.xml 文件
修改第 22 行 8005 为 18005
修改第 69 行 8080 为 18080
修改第 116 行 8009 为 18009
1.反向代理:为集群提供统一的入口
2.负载均衡:将请求合理的分配到集群中,降低每个节点的压力
3.静态资源服务器(动静分离):剥离静态资源到nginx,缩短请求响应时间,提高效率
安装步骤:http://nginx.org/en/linux_packages.html#RHEL-CentOS
1,必要前提
sudo yum install yum-utils
2,创建文件(/etc/yum.repos.d/nginx.repo),并且添加如下内容:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
3,
sudo yum-config-manager --enable nginx-mainline
4,安装
sudo yum install nginx
常用目录:
配置文件目录:/etc/nginx/conf.d
日志文件目录:/var/logs/nginx
静态文件目录:/usr/share/nginx/html
常用命令:
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
关闭 SELinux:
临时关闭:setenforce 0
永久关闭:
编辑 /etc/selinux/config 文件
将 SELINUX=enforcing 改为 SELINUX=disabled 后重启服务器
- 进入 nginx 的配置文件目录,新建文件:crowd-funding.conf
cd /etc/nginx/conf.d
touch crowd-funding.conf
- 编辑 crowd-funding.conf 文件
1 # 配置服务器集群
2 upstream zy {
#server 第一个服务器的主机名:第一个项目的端口
3 server 192.168.49.128:8080;
#server 第二个服务器的主机名:第二个项目的端口
4 server 192.168.49.128:18080;
5 }
6
7 # 配置 nginx 服务器
8 server {
# 设置统一的访问端口
9 listen 80;
# nginx服务器的主机名
10 server_name 192.168.49.128;
11
12 # 配置静态资源
13 location /zycf {
# 用于存放静态资源的路径
14 root /usr/share/nginx;
15 }
16
17 # 配置反向代理
18 location /zcf/api {
#代理到URLhttp://zy/crowd-funding/zcf/api/具体的东西
19 proxy_pass http://zy/crowd-funding;
# 下边的一行是引入redis之后的配置,主要解决cookie的存储路径和读取路径不一致,目前可以先不写,最后再写也行。
20 proxy_cookie_path /crowd-funding /zcf/api;
21 }
22 }
23
- 重启 nginx
round-robin(轮询):节点轮流处理请求,默认的就是轮询
weight(权重):配置节点轮流处理请求的数量
ip_hash:ip 地址对节点总数取余的结果即处理该请求的节点编号
nginx 会定期检测节点健康状况,剔除损坏的节点,添加修复的节点
-
打包项目为 war 文件
maven clean package -Dmaven.test.skip=true -
上传 war 文件到服务器 tomcat 和 tomcat2 的 webapps 目录下
-
上传前端文件到服务器 /usr/share/nginx/zycf 目录下
-
编写 nginx 的 crowd-funding.conf 配置文件
-
分别启动 tomcat、tomcat2 和 nginx