目录
1. 系统拓扑图
2. 环境准备
3. 服务器安装
3.1 mysql,tomcat
3.2 Nginx的安装
4. 部署
4.1 后台服务部署
4.2 Nginx配置负载均衡及静态资源部署
1. 系统拓扑图
说明:
- 用户请求达到Nginx
- 若请求资源为静态资源,则将请求转发至静态资源服务器
- 若请求资源为动态数据,则将请求转发给web服务器(在这里为tomcat处理),在转发的同时,会根据配置的负载均衡策略进行负载均衡处理。
2. 环境准备
- 四个虚拟机,一个mysql服务器,两个tomcat服务器, 一个Nginx服务器(Nginx服务同时作为反向代理用于负载均衡,和静态资源服务器)
- 一套采用前后端分离模式开发的系统(该例准备了webserver.war,对应的前端程序)
3. 服务器安装
3.1 mysql,tomcat
mysql,与tomcat的安装与配置,在前面的课件中已经很详细,这里不再赘述。请参考“Linux-环境搭建-centos”
3.2 Nginx的安装
有两种方式,一种是先下载Nginx,在离线安装; 第二种是yum方式安装。 这里采用离线安装方式, 如果希望使用yum方式安装,可以参考Nginx官方文档。
离线安装步骤:
1) gcc安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装
yum install gcc-c++
2)PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。
yum install -y pcre pcre-devel
3) zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库
yum install -y zlib zlib-devel
4)OpenSSL 安装
OpenSSL 套接字层密码库,有主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库
yum install -y openssl openssl-devel
5) wget下载Nginx
wget -c https://nginx.org/download/nginx-1.18.0.tar.gz
6)解压
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
7)配置安装
# 使用默认配置,命令在nginx目录中执行,执行完成会产生MakeFile等文件
./configure
#编译并安装
make
make install
8)启动与停止
#到命令所在目录
cd /usr/local/nginx/sbin/
#启动
./nginx
#停止,强制直接关停
./nginx -s stop
#等待nginx进程处理完任务再停止
./nginx -s quit
#重新加载配置文件
./nginx -s reload
9)配置Nginx自动启动
vim /etc/rc.d/rc.local
修改/etc/rc.d/rc.local的权限:
chmod 755 rc.local
在线安装
1.添加 nginx 官方提供的 yum 源(需要联网且时间较长)
rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm
2.使用 yum 安装 nginx
yum install nginx
注1:yum方式安装nginx,它的安装根目录为/etc/nginx
注2:查看nginx版本
rpm -qa | grep nginx
3.启动及设置开机启动
systemctl start nginx.service
systemctl enable nginx.service
3.设置防火墙开放 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload && firewall-cmd --list-port
4. 部署
4.1 后台服务部署
在部署前请先将后台服务的数据库连接修改为已安装配置好的mysq服务器的ip地址。
后台服务的部署,非常简单,之间将war包上传至tomcat的webapps目录下即可。
4.2 Nginx配置负载均衡及静态资源部署
1)修改前端程序
注:在部署前端程序时,需要先修改后台server的ip地址配置。
2)将前台程序打包
npm run build
3) 将打包好的前端程序上传到Nginx服务器
4) nginx.conf配置
vim /usr/local/nginx/conf/nginx.conf
重新加载配置文件
[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx -s reload
配置完成,启动mysql,tomcat1,tomcat2,nginx等服务进行测试