nginx+tomcat动静分离

本文介绍如何使用Nginx作为反向代理与Tomcat配合,实现静态资源与动态内容的有效分离。通过合理配置Nginx和Tomcat,可以提高网站性能,减轻Tomcat负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tomcat是一个比较全面的web容器,对静态网页的处理,应该是比较费资源的,特别是每次都要从磁盘读取静态页面,然后返回。这中间会消耗Tomcat的资源,可能会使那些动态页面解析性能影响。秉承Linux哲学,一个软件只做一件事的原则。Tomcat就应该只处理JSP动态页面。这里就用到以前了解的Nginx来进行反向代理。

tomcat设置

在主配置文件里添加如下

vim server.xml

 <Context path="" reloadable="true" docBase="/home/apache-tomcat-7.0.64/webapps/test1/" />

path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页(即输入127.0.0.1:8080则出现项目首页),则该键值留为空; docBase是虚拟目录的路径

若需要输入域名+端口访问项目则修改host的name对应参数如下:

 <Host name="www.nginx2.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

二.Nginx设置

server修改如下,测试location 后加正则表达式后,proxy_pass后不能加完整路径,如http://127.0.0.1:8080/test1,暂时不知道原因

server {
        listen       80;
        server_name  www.nginx2.com;
root   /opt/apache-tomcat-7.0.64/webapps/ylyg01;
index index.html index.jsp;

#所有js,css相关的静态资源文件的请求由Nginx处理,root指定文件根路径,需要精确到项目根文件夹
         location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|css|js)$ {
            #root   /opt/apache-tomcat-7.0.64/webapps/ylyg01;
            expires 30d;
        }
#动态请求转发到tomcat服务器
location ~ .*$ {
        #location ~ .*\.(do|jsp|action)?$ {
            proxy_pass http://127.0.0.1:8080;
            proxy_cookie_path /test1/ /;
        }

        #location / {
        #    proxy_pass http://127.0.0.1:8080;
        #   proxy_cookie_path /test1/ /;
        #}
}

ps:Location 匹配的优先级
(location =) > (location 完整路径 >) >(location ^~ 路径) >(location ~* 正则) >(location 路径)

location /{
# 匹配所有以 / 开头的请求。
# 但是如果有更长的同类型的表达式,则选择更长的表达式。
# 如果有正则表达式可以匹配,则优先匹配正则表达式。
}

三.测试
启动ngnix和tomcat后,输入 www.nginx2.com 并进行对应跳转
后看tomcat日志 log/localhost_access_log.2016--.txt,可以发现对应时间点内没有tomcat对图片的处理。

参考文献
Nginx location 优先级:http://www.linuxidc.com/Linux/2015-06/119275.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值