upstream 服务器池名{ }
配置后端服务器池,以提供响应数据
proxy_pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理
动静分离原理
服务端接受来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
Nginx静态处理优势
服务器 | IP |
---|---|
Nginx负载均衡器 | 192.168.50.133 |
Tomcat-Webserver1 | 192.168.50.134 |
Tomcat-Webserver2 | 192.168.50.135 |
首先在负载均衡器器上安装Nginx,其他两台服务器安装Tomcat作为Webserver,安装及部署流程请参考前文
1、现在开始Nginx负载均衡器上做动静分离,编辑配置文件nginx.conf
vim /usr/local/nginx/conf/nginx.conf ## 编辑nginx配置文件
在server段下插入以下内容:
location ~.*.jsp$ {
proxy_pass http://192.168.50.134:8080; ## 这里的IP是tomcat节点1的地址
proxy_set_header Host $host;
}
2、创建静态页面
vim /usr/local/nginx/html/index.html ## 创建站点页面
写入如下内容:
静态页面
静态页面
这是一个静态页面
3、重启nginx服务
service nginx restart
4、在浏览器上输入地址进行访问可以看到刚才写入的页面
http://192.168.50.133
cd /usr/local/tomcat/webapps/
mkdir test ## 新建站点目录
cd test/
vim index.jsp ## 编辑站点页面
写入以下内容:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
动态页面
动态页面
6、重启Tomcat服务
Tomcat:shutdown.sh
7、在浏览器中访问负载均衡器的IP可以看到Tomcat节点1上的页面
http://192.168.50.133/test/index.jsp
8、下面进行图片动静分离的配置,首先在tomcat1上的页面中插入一张图片
vim /usr/local/tomcat/webapps/test/index.jsp ## 编辑站点页面
## 插入图片
8、编辑Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf ## 编辑nginx配置文件
在server段中插入以下内容:
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { ## 当遇到这些扩展名文件为结尾时
root html; ## 在自己站点中找相应资源
expires 30d; ## 客户端浏览器缓存时间30天
}
9、创建站点目录并上传图片
mkdir /usr/local/nginx/html/test ## 创建站点目录
cd /usr/local/nginx/html/test ## 进入test目录
将图片cat.jpg上传到该目录下
10、重启nginx服务
service nginx restart
11、访问tomcat1上的网页,可以看到刚才在nginx上放入的图片
http://192.168.50.133/test/index.jsp
12、最后做Nginx与Tomcat的反向代理,首先创建一个新的web目录
mkdir -pv /web/webapp1 ## 创建站点目录
vim /web/webapp1/index.jsp ## 编辑站点页面
写入以下内容:
<%@ page language="java" import="jave.util.*" pageEncoding="UTF-8"%>
JSP test1 page
<% out.println("Test 1 Web");%>
13、编辑并修改tomcat1上的配置文件
vim /usr/local/tomcat/conf/server.xml ## 编辑tomcat配置文件
在150行后插入以下内容:
PS:
docBase:web应用的文档基准目录
reloadable:设置监视“类”是否变化
path=“”设置默认“类”
14、重启tomcat服务
shutdown.sh ## 关闭
startup.sh ## 开启
另一台Tomcat2节点服务器上配置同上,只需要将步骤12的内容即可
<% out.println("Test 1 Web");%> ## 将1替换成其他比如说2即可
15、在nginx负载均衡器上还要继续进行配置,编辑Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
在#gzip on;下面插入:
upstream tomcat_server {
server 192.168.50.135:8080 weight=1;
server 192.168.50.136:8080 weight=1;
}
在location / {字段下插入:
proxy_pass http://tomcat_server; ## 在第三个location中添加这一行即可【注意:要以分号结尾】
16、在浏览器中访问nginx负载均衡器发现可以显示tomcat1与2的页面
http://192.168.50.133/ ## 多刷新几次可以发现是轮询访问