一、Nginx简介
1.1 什么是nginx?
Nginx(发音同"engine x")是一个高性能的反向代理和 Web 服务器软件,最初是由俄罗斯人 Igor Sysoev 开发的。Nginx 的第一个版本发布于 2004 年,其源代码基于双条款 BSD 许可证发布,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx 在互联网企业中得到广泛应用。
Nginx 是互联网上最受欢迎的开源 Web 服务器之一,它不仅提供了用于开发和交付的一整套应用技术,还是应用交付领域的开源领导者。Netcraft 公司 2019 年 7 月的统计数据表明,Nginx 为全球最繁忙网站中的 25.42% 提供了服务或代理,进一步扩大了其在主机域名领域的占有量,新增 5220 万个站点,总数达 4.4 亿个,市场占有率已经超过 Apache 4.89%。
得益于近几年云计算和微服务的快速发展,Nginx 因在其中发挥了自身优势而得到广泛应用,且有望在未来占有更多的市场份额。
2019 年 3 月,著名硬件负载均衡厂商 F5 宣布收购 Nginx,Nginx 成为 F5 的一部分。F5 表示,将加强对开源和 Nginx 应用平台的投资,致力于 Nginx 开源技术、开发人员和社区的发展,更大的投资将为开放源码计划注入新的活力,会主办更多的开放源码活动,并产生更多的开放源码内容。
二. nginx的安装
1. 安装4个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2. 下载并解压安装包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
进入存放nginx压缩包的文件夹进行解压
tar -xvf nginx-1.13.7.tar.gz
3.安装nginx
# 进入安装包目录
cd nginx-1.13.7
# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
# 安装
make && make install
出现如下安装目录代表成功
4. 启动 nginx 服务
安装好的 nginx 服务在 /usr/local/nginx 下:
进入 /usr/local/nginx/sbin 目录下启动:
# 启动
./nginx
# 重启
./nginx -s reload
# 关闭
./nginx -s stop
# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf
查看nginx是否使用
下载插件
yum install -y lsof
lsof -i:80
由于没有80端口号所有使用命令开发80端口号
外部访问测试
设置nginx自启动
首先修改/etc/rc.d/rc.local文件,添加如下内容:
/usr/local/nginx/sbin/nginx
执行以下命令,使/etc/rc.d/rc.local变成可执行文件。
chmod +x /etc/rc.d/rc.local
三. tomcat负载均衡
模拟负载均衡
rm -rf oapro*
准备Tomcat
#准备2个tomcat
cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/
第2个修改的配置如下
1. HTTP端口,默认8082(我这里更改过端口号所以),如下改为8081
2.远程停服务端口,默认8005,如下改为8006
3.AJP端口,默认8009,如下改,8010
配置nginx负载均衡
重启nginx配置文件
进入/sbin/重启
# 重启
./nginx -s reload
后端部署
在将项目部署到tomcat即可,在重新启动即可(必须部署到两个服务器即8080服务器和8081服务器,实现负载均衡)
前提条件:创建对应数据库并且导入对应数据库脚本
出现如下内容说明部署成功
前端部署
解压前端
yum install -y unzip
使用命令解压指定解压包
unzip blog.zip
在 /usr/local/ 目录下创建一个文件夹,为mypor ,并且进入文件夹,之后将blog文件拖入mypor文件夹中进行解压
部署前端
输入命令 : cd /usr/local/nginx/conf/ 找到nginx.conf进行编辑
输入命令 : cd /usr/local/nginx/sbin/
输入命令 :./nginx -s reload 重启nginx
在将后端的war包 传入tomcat服务器中。
并且输入命令 : ./startup.sh (开启访问)