一,动静分离
动静分离能够起到系统加速的效果
用户向nginx发送请求,nginx作为代理服务器将请求代理给后端,原本项目部署会全部放在tomcat某个目录下,在这个目录下会出现问题,tomcat会响应很多非动态的请求(比如说一个index文件中hi有非常多的图片css,js,html一次请求肯定完不成,第二次请求时再去找那些静态资源,那么并发请求就会非常多)那么如果将一些静态资源(img,css,js)全放到nginx中,将动静态资源分开来,这就是动静分离。
二,环境部署
两台tomcat,一台nginx
nginx 192.168.135.112
tomcat 001 192.168.135.188
tomcat 003 192.168.135.189
三,动静分离配置
1,tomcat188;
[root@tomcat188 ~]#mkdir /usr/local/tomcat/webapps/test/
[root@tomcat188 ~]#vim /usr/local/tomcat/webapps/test/index.jsp动态页面配置
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("呀是啦累");%>
</body>
</html>
2,添加虚拟主机配置
vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
</Host>
关闭重启
shutdown.sh
startup.sh
查看端口
3, tomcat189配置
[root@tomcat189 ~]#mkdir /usr/local/tomcat/webapps/test/
[root@tomcat189 ~]#vim /usr/local/tomcat/webapps/test/index.jsp动态页面配置
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("个么四?");%>
</body>
</html>
添加虚拟主机配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
</Host>
关闭重启
shutdown.sh
startup.sh
查看端口
四,nginx112 server配置
1,准备静态图片
2,配置文件设置
http {
......
#gzip on;
#配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
upstream tomcat_server {
server 192.168.135.188:8080 weight=1;
server 192.168.125.189:8080 weight=1;
}
server {
listen 80;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
#配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理
location ~ .*\.jsp$ {
proxy_pass http://tomcat_server;
#设置后端的Web服务器可以获取远程客户端的真实IP
#设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认host的值为proxy_pass指令设置的主机名
proxy_set_header HOST $host;
#把$remote_addr赋值给X-Real-IP,来获取源IP
proxy_set_header X-Real-IP $remote_addr;
#在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#配置Nginx处理静态图片请求
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root /usr/local/nginx/html/xxx;
expires 10d;
}
location / {
root html;
index index.html index.htm;
}
......
}
......
}systemctl restart nginx.service
————————————————
测试效果
测试静态页面效果
浏览器访问 http://192.168.135.112/
浏览器访问 http://192.168.135.112/1.jpg测试负载均衡效果,不断刷新浏览器测试
浏览器访问 http://192.168.135.112/test/index.jsp