继上一节实验了一个基本的tomcat + nginx负载均衡效果后,这一节更进一步,完成以下两个内容的改进
- 动静分离
- web项目部署进tomcat
首先用idea新建一个基本的maven web项目
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
这样就完成了一个基本maven单模块的web项目的搭建
下面在新增一个前台jsp页面和一个后台servlet处理类
index.jsp
登录 - 锐客网
HelloServlet
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* HelloServlet
* @author zhaoxing
* 2018年7月13日11:24:35
*/
@WebServlet(urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String userName = req.getParameter("username");
String passWord = req.getParameter("password");
resp.setContentType("text/html;
charset=UTF-8");
PrintWriter printWriter = resp.getWriter();
printWriter.println("");
if ("admin".equals(userName) && "admin".equals(passWord)) {
printWriter.println("登录成功!欢迎您," + userName);
} else {
printWriter.println("用户名或者密码错误!");
}
printWriter.println("");
}
}
用maven打包(package)项目
文章图片
在生成目录中看到已经生成了一个对应的war包
文章图片
二、把步骤一打好的war包扔到Linux服务器$tomcat_home/webapp目录下
1. 首先把war包该成项目名,即HelloWorld.war
2. 分别上传到tomcat1和tomat2的webapp目录下
三、把静态资源文件放到nginx的资源路径下
[root@bogon HelloWorld-1.0-SNAPSHOT]# cd /usr/local/nginx/html/
[root@bogon html]# ls
50x.htmlimagesindex.html
[root@bogon html]# ls images/
girl2.jpggirl.jpg
这里看到新建了一个图片目录,放了两张图片。
四、配置nginx,对动态资源和静态资源分别处理
之前开发web方面的程序时候我们习惯将html、css等资源文件也放置于Tomcat之中,用户发起访问后,tomcat需要将请求的这些静态资源文件一并返回给用户,这样如果同一个应用部署在多台tomcat服务器时,相同的静态资源在每个服务器上都有一份,增加了tomcat服务器的网络IO和磁盘空间,相当不合理。如果我们只讲JSP之类的请求交给tomcat,而反向代理服务器上存放静态资源,当用户请求静态资源时,前端反向代理服务器就可以直接将静态资源返回给用户,而不用去请求tomcat,一方面可以降低后端服务器的压力,一方面可以提高静态资源响应效率。
处理流程如下图所示:
文章图片
配置如下:
upstream myTomcatServer {
server localhost:8080 weight=1;
server localhost:8081 weight=3;
}server {
listen80;
server_namelocalhost;
#charset koi8-r;
#access_loglogs/host.access.logmain;
location ~ .*\.(js|css|png|jpg) {
roothtml;
expires 30d;
#缓存30天
}location / {
roothtml;
indexindex.html index.htm;
proxy_pass http://myTomcatServer;
}
}
使配置文件生效
[root@bogon nginx]# ./sbin/nginx -s reload
五、访问页面
直接访问还是会访问到tomcat下的index页
文章图片
文章图片
访问tomcat下部署的HelloWorld项目,通过nginx反向代理也可以正常访问
文章图片
输入正确密码
文章图片
输入错误密码
文章图片
接下来直接访问静态资源,没问题(顺便看看美女放松下心情)
文章图片
文章图片
【Nginx|CentOS 下 Nginx + Tomcat 配置负载均衡之二】
推荐阅读
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- Go|Docker后端部署详解(Go+Nginx)
- 后台|NATAPP内网穿透通过nginx实现一个端口访问多个不同端口服务
- tomcat|tomcat配置多个项目的server.xml的配置
- intellij-idea|JavaWeb: IntelliJ IDEA集成开发环境下开发第一个servlet程序(JDBC)Tomcat
- nginx-1.20.2安装使用
- NGINX 创始人 Igor Sysoev 退出 F5(20 年发展“简史”令人肃然起敬)
- Tomcat配置图片保存路径,图片不保存在项目路径下
- Git|Tomcat 自定义错误页面(例如404页面等等)
- eclipse 指定文件上传到tomcat的路径