整合Tomcat和Nginx实现动静态负载均衡

由于Tomcat主要用来处理动态的内容,比如jsp文件。那么静态的html/图片等资源就可以交给Nginx来处理,
期间也用到了分发。
而对于一台服务器实现动静态分离时,则需要在一台服务器上同时搭建Nignx和tomcat,并进行整合。

配置nginx.conf文件
 vi 打开nginx文件后,找到http{}节点,在里面添加:
 upstream 你的域名{  
    server 你的云主机IP:80;  
     }   

#动态交给tomcat
location ~ .*.[jsp|do|action]$ { 
    index index.jsp;
    proxy_pass 你的域名:80;
}

#静态直接读取,不结果tomcat。过去时间30天
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    expires      30d;
}

nginx 与 tomcat 组合搭建web服务

1. Web服务
nginx是常用的web服务器,用于获取静态资源,类似的服务器还有apache。
tomcat是基于java servlet 的 web 容器,用于获取动态资源。
一般的web服务架构:前端部署nginx,后端部署tomcat。用户访问nginx,静态资源nginx直接返回,
动态资源的请求被nginx转发到tomcat,tomcat将处理完的结构返回给nginx,然后到浏览器。

2.Nginx简介
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
而Nginx主要完成的工作就是反向代理,比如我们向一台服务器的80端口发送了请求,该请求首先由Nginx
监听到,其接受到请求内容后再转发给其他服务器,其他服务器处理完后再将结果传送给Nginx,最后由Nginx
来统一返回给初始请求端。
Nginx最常见的使用方法就是作为静态资源服务器,比如将CSS,JS,html,htm等文件进行缓存处理。

常见问题—启动失败
出现启动失败问题,一般是端口冲突问题,比如已经启动并占用了80端口。在config目录下找到nginx.conf,
打开文件进行如下修改:

详解部分参数含义
1.listen:表示当前的代理服务器监听的端口,默认的是监听80端口。
2.server_name:表示监听到之后需要转到哪里去
3.location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
4.index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,
如果第一个不存在,则找第二个,依此类推。

进一步使用

5.1静态文件分离配置
需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,
而html,js,css这些不需要处理的,直接给nginx进行缓存。
让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。

猜你喜欢

转载自blog.csdn.net/Leon_Jinhai_Sun/article/details/87914423
今日推荐