目录
1. vim /usr/local/nginx/conf/nginx.conf 编辑配置文件。
Nginx简介
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
负载均衡
负载均衡(Load Balance)是由多台服务器以对称的方式组成一个服务器集群,每台服务器都具有等价的地位,都可以单独对外提供服务而无需其他服务器的辅助。经过某种负载分管技术,将外部发送来的中央请求均匀分配到对称结构中的某一台服务器上。
环境搭建
一. 环境
- 三台虚拟机
- 192.168.182.101 安装 Nginx和Tomcat
- 192.168.182.102 和 192.168.182.103 安装Tomcat
二. 安装Nginx
1. 下载安装Nginx并解压。
# 下载 nginx 压缩包wget -P /usr/local/src http://nginx.org/download/nginx-1.18.0.tar.gz
# 解压tar -zxvf /usr/local/src/nginx-1.18.0.tar.gz -C /usr/local/src
2. 安装依赖
Nginx 是基于 C 语言开发的,HTTP 模块使用了 pcre 来解析正则表达式,且可以
使用 zlib 对 HTTP 包的内容进行 gzip 压缩,Nginx 不仅支持 HTTP 协议,还支持
HTTPS,HTTPS 需要 openssl 提供支持,所以安装 Nginx 之前必须先安装它所依赖的
环境。
yum install -y gcc gcc-c ++ pcre pcre-devel zlib zlib-devel openssl-devel
3. 安装Nginx(编译并安装)
# 切换至 nginx 的解压目录
cd /usr/local/src/nginx-1.18.0
# 创建 nginx 的安装目录
mkdir -p /usr/local/nginx
# 指定 nginx 的安装路径
[root@redis nginx]# ./configure --prefix=/usr/local/nginx/
# 编译并安装
[root@redis nginx]# make && make install
4. 常用命令
Nginx 运行时默认加载的配置文件为 nginx.conf ,根据不同的安装方式存放
的位置也不相同。yum 安装的方式会存放在 /etc/nginx/nginx.conf ,本文的安装方式会存放在
/usr/local/nginx/conf/nginx.conf 。
(1) 帮助
# 切换目录
cd /usr/local/nginx
# 帮助
[root@redis nginx]# sbin/nginx -h
(2)查看版本
# 查看版本
[root@redis nginx]# sbin/nginx -v
nginx version: nginx/1.18.0
# 查看版本及配置选项
[root@redis nginx]# sbin/nginx -V
(3)检查配置
# 检测配置文件是否有语法错误,默认检测 conf/nginx.conf
[root@redis nginx]# sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
(4)启动
# 启动并通过 -c 指定启动时加载的配置文件,默认加载 conf/nginx.conf
[root@redis nginx]# sbin/nginx -c /usr/local/nginx/conf/nginx.conf
(5)重启
# 平滑的重启,重新加载配置
[root@redis nginx]# sbin/nginx -s reload
(6)停止
# 快速停止
[root@redis nginx]# sbin/nginx -s stop
# 完整有序的停止
[root@redis nginx]# sbin/nginx -s quit
(7)日志切割
# 重新打开日志文件(日志切割)。
sbin/nginx -s reopen
5. 启动并访问
# 启动并通过 -c 指定启动时加载的配置文件,默认加载 conf/nginx.conf
[root@redis nginx]# sbin/nginx -c /usr/local/nginx/conf/nginx.conf
三. 安装Tomcat
1. 下载Tomcat并解压
# 下载 tomcat 压缩包
wget -P /usr/local/src https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.tar.gz
# 创建目录
mkdir -p /usr/local/tomcat
# 解压
tar -zxvf /usr/local/src/apache-tomcat-9.0.38.tar.gz -C /usr/local/tomcat
2. 修改页面
修改 Tomcat 自带 Root 项目中的 index.jsp 页面。
# 编辑 index.jsp
vim /usr/local/tomcat/apache-tomcat-9.0.38/webapps/ROOT/index.jsp
<h1 style="color:red">192.168.182.101:8080</h1>
<h1 style="color:red">192.168.182.102:8080</h1>
<h1 style="color:red">192.168.182.103:8080</h1>
其他主机同理
3. 启动访问
/usr/local/tomcat/apache-tomcat-9.0.38/bin/startup.sh 启动Tomcat。
启动Tomcat后,浏览器访问:ip+端口查看界面
四. 配置Nginx
1. vim /usr/local/nginx/conf/nginx.conf 编辑配置文件。
在 http 节点下,添加 upstream 节点。使用 upstream name{} 语法定义一组服务器。
upstream tomcat {
server 192.168.182.101:8080 weight=1;
server 192.168.182.102:8080 weight=1;
server 192.168.182.103:8080 weight=1;
}
然后在 server 节点的 80 端口下添加下图中的内容。默认情况下,Nginx 是按
加权轮询的方式将请求分发到各个服务器,当权重 weight 不指定时,各服务器
weight 相同。关于 Nginx 启动用户的问题请根据自身实际环境进行配置。
proxy_pass http://tomcat;
五. 反向代理负载均衡
通过上面的流程,我们已经完成基于 Nginx 实现反向代理 Tomcat 服务器集群与
负载均衡的需求。重启 Nginx 以后,此时再访问 Nginx 则会被路由到被代理的
Tomcat 服务器上,并且采用了轮询方式(默认)的负载均衡算法。客户端请求到
Nginx 的中央请求会每台一次的平均分配至 Tomcat 每个机器上。
实现展示
1. 检查配置
# 检测配置文件是否有语法错误,默认检测 conf/nginx.conf
[root@redis nginx]# sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
2. 启动Nginx
# 启动并通过 -c 指定启动时加载的配置文件,默认加载 conf/nginx.conf
[root@redis nginx]# sbin/nginx -c /usr/local/nginx/conf/nginx.conf
3. 查看效果
刷新页面,实现负载均衡
已经到底了。。。。