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安装 Nginx
编译并安装。
# 切换至 nginx 的解压目录 cd /usr/local/src/nginx-1.18.0 # 创建 nginx 的安装目录 mkdir -p /usr/local/nginx # 指定 nginx 的安装路径 ./configure --prefix=http://www.likecs.com/usr/local/nginx/ # 编译并安装 make && make install常用命令
# 切换目录 cd /usr/local/nginx # 启动 sbin/nginx # 重启 sbin/nginx -s reload # 停止 sbin/nginx -s quit
访问
启动 Nginx 以后,浏览器访问::80/ 结果如下:
安装 Tomcat
下载资源
下载 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修改页面
修改 Tomcat 自带 ROOT 项目中的 index.jsp 页面。
# 编辑 index.jsp vim /usr/local/tomcat/apache-tomcat-9.0.38/webapps/ROOT/index.jsp在 body 标签中随便添加点内容用于区分不同的服务器。
<h1>192.169.10.102:8080</h1> <h1>192.169.10.103:8080</h1>启动访问
/usr/local/tomcat/apache-tomcat-9.0.38/bin/startup.sh 启动 Tomcat。
启动 Tomcat 以后,浏览器访问::8080/ 和 :8080/ 结果如下:
配置 Nginx
vim /usr/local/nginx/conf/nginx.conf 编辑配置文件。
在 http 节点下,添加 upstream 节点。使用 upstream name{} 语法定义一组服务器。
然后在 server 节点的 80 端口下添加下图中的内容。默认情况下,Nginx 是按加权轮询的方式将请求分发到各个服务器,当权重 weight 不指定时,各服务器 weight 相同。关于 Nginx 启动用户的问题请根据自身实际环境进行配置。
反向代理负载均衡
通过上面的流程,我们已经完成基于 Nginx 实现反向代理 Tomcat 服务器集群与负载均衡的需求。重启 Nginx 以后,此时再访问 Nginx 则会被路由到被代理的 Tomcat 服务器上,并且采用了轮询方式(默认)的负载均衡算法。客户端请求到 Nginx 的中央请求会每台一次的平均分配至 Tomcat 每个机器上。关于 Nginx 更多详细的配置及负载均衡算法我们后面再另开文章细说。