Linux---Tomcat服务器Varnish代理服务器

Linux 上配置 Varnish 作为 Tomcat 服务器的反向代理

Varnish 是一款高性能的 HTTP 加速器和反向代理缓存服务器,常用于前端缓存动态内容(如 Java Web 应用),减少 Tomcat 的负载。Tomcat 是 Java 应用的容器,通常运行在 8080 端口。Varnish 可以直接代理 Tomcat(通过 HTTP),比通过 Apache + mod_jk 更简单高效,尤其在缓存命中时性能提升显著。

1. 基本架构
  • Varnish:监听公共端口(如 80 或 443 前需 SSL 终止),作为入口。
  • Tomcat:运行在后端端口(如 8080),处理动态内容。
  • 典型部署:Varnish 在前端(端口 80),Tomcat 在本地或远程的 8080 端口。
  • 注意:Varnish 不原生支持 SSL,如果需要 HTTPS,通常在前加 Nginx 或 Pound 处理 SSL 终止,然后转发到 Varnish。
2. 安装步骤(以 Ubuntu/CentOS 示例)

安装 Tomcat(假设单机部署):

  • 下载 Tomcat(例如 apache-tomcat-10.x.tar.gz)。
  • 解压到/opt/tomcat,启动./bin/startup.sh
  • 默认监听 8080 端口,确保应用部署在 webapps 下。

安装 Varnish

  • Ubuntu:添加官方仓库后apt install varnish
  • CentOS/RHEL:yum install epel-releaseyum install varnish
  • 最新版建议从 varnish-cache.org 下载源代码编译。
3. 配置 Varnish 代理 Tomcat

修改 Varnish 监听端口(让 Varnish 占 80 端口):

  • 编辑/etc/varnish/varnish.params/etc/default/varnish(旧版):
    VARNISH_LISTEN_PORT=80
  • 或在 systemd 服务中调整:-a :80

配置 VCL 文件/etc/varnish/default.vcl):
基本配置(单后端 Tomcat):

vcl 4.0; # 或 4.1,视版本而定 import directors; # 如果需要负载均衡多 Tomcat backend tomcat { .host = "127.0.0.1"; # Tomcat 主机 IP,如果远程改成对应 IP .port = "8080"; # Tomcat HTTP 端口 .connect_timeout = 600s; .first_byte_timeout = 600s; .between_bytes_timeout = 600s; .probe = { # 可选:健康检查 .url = "/"; # 检查根路径 .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } } sub vcl_recv { set req.backend_hint = tomcat; # 不缓存动态内容(如登录、POST),直接 pass 到 Tomcat if (req.method == "POST" || req.url ~ "\.(jsp|do|action)$" || req.url ~ "^/admin") { return (pass); } # 处理 Cookie:Java Session 常使用 Cookie,避免缓存带 Session 的页面 if (req.http.Cookie ~ "JSESSIONID") { return (pass); } # 移除不必要的 Cookie unset req.http.Cookie; } sub vcl_backend_response { # 移除 Set-Cookie 如果不想缓存带 Session 的响应(慎用,根据应用调整) # unset beresp.http.Set-Cookie; # 设置缓存时间(静态资源长缓存,动态短缓存) if (bereq.url ~ "\.(jpg|png|css|js)$") { set beresp.ttl = 1d; # 静态文件缓存 1 天 } else { set beresp.ttl = 10m; # 动态页面短缓存 } } sub vcl_deliver { # 添加缓存命中标志(调试用) if (obj.hits > 0) { set resp.http.X-Cache = "HIT"; } else { set resp.http.X-Cache = "MISS"; } }
  • 重启 Varnish:systemctl restart varnish
4. Java 应用特定注意事项
  • Session 管理:Tomcat 默认使用 JSESSIONID Cookie。如果页面依赖 Session,Varnish 缓存会造成 Session 丢失。解决方案:
    • 在 VCL 中检测 Cookie 并return (pass);(不缓存)。
    • 或在应用中设置响应头Cache-Control: no-cache
  • 静态资源:CSS/JS/图片等可安全长缓存,提升性能。
  • X-Forwarded-For:Varnish 默认添加,Tomcat 可通过 Valve 配置获取真实客户端 IP。
  • 多 Tomcat 负载均衡:使用directors.round-robin;directors.random;定义多个 backend。
5. 测试与优化
  • 访问 http://your-server-ip,应看到 Tomcat 应用。
  • curl -I检查X-Cache: HIT/MISS
  • 监控:varnishstatvarnishlog
  • 如果应用是动态 Java(如 Spring Boot),缓存命中率取决于静态内容比例,通常 20%+ 即可显著加速。
6. HTTPS 支持

Varnish 不处理 SSL,推荐:

  • Nginx 前置:Nginx 监听 443(SSL),代理到 Varnish 80。
  • 或 Hitch/Pound 作为 SSL 终止器。

这种配置简单高效,许多生产环境直接用 Varnish + Tomcat,而非加 Apache 中间层。如果有具体错误或应用细节,可进一步调整 VCL。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1119249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爆肝程序员必看!RAG 2.0实战全攻略:从零构建企业级AI原生投诉系统,小白也能秒变AI架构师!

面向开发者的共识正在形成:在企业场景里,RAG 的上限从来不由“能不能生成”决定,而由“能不能拿到足够、正确、可引用的证据”决定。2025 年以来,业界把这套工程化升级称为 RAG 2.0:混合检索、重排序、多模态、图结构、…

_基于springboot的二手车交易系统(11649)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告)远程调试控屏包运行 三、技术介绍 Java…

Java常用的日期和时间格式化转换符

Java 中常用的日期和时间格式化转换符大全 Java 中日期和时间的格式化主要通过以下两个类实现: 旧 API(Java 8 之前):java.text.SimpleDateFormat新 API(Java 8 推荐):java.time.format.DateT…

EasyGBS重塑商业场所视频监控管理新模式

在商业综合体、连锁商超、特色商业街等现代商业场所中,视频监控系统早已不是简单的“安全守卫”,更成为支撑精细化运营、提升服务品质的核心基础设施。然而,传统视频监控普遍存在设备异构、协议混乱、智能不足、数据沉睡等痛点,难…

AI圈炸锅!DeepSeek-OCR黑科技:压缩10倍长文本,成本直降90%!VTC技术让大模型“过目不忘“,中科院发布权威评测

【导读】DeepSeek-OCR的视觉文本压缩(VTC)技术通过将文本编码为视觉Token,实现高达10倍的压缩率,大幅降低大模型处理长文本的成本。但是,视觉语言模型能否理解压缩后的高密度信息?中科院自动化所等推出VTCB…

ue用tick通信执行方法 mcp铺垫

tick是什么我不知道,反正是跑通了 你这段代码中使用的 “Tick”,并不是 Unreal Engine 中常见的 Actor 或 Component 的 Tick() 函数,而是通过 unreal.register_slate_post_tick_callback() 注册的一个 Slate UI 系统级别的每帧回调函数。 &…

电加热烘箱功能升级,2025年有实力的优质源头生产厂家推荐 - 品牌推荐大师

中国电加热烘箱行业市场规模持续扩大。2024年,行业整体市场规模达到580亿元,较2023年增长约11.5%。预计2025年市场规模将突破600亿元,同比增长约3.4%。高温电加热烘箱2024年市场规模为6.2亿元,同比增长14.8%,预计…

家庭聚会喝什么酒?适配全年龄层的 8款优选酒清单 - 资讯焦点

家庭聚会的核心是团圆温馨,酒作为氛围催化剂,选得对才能让欢聚更尽兴。数据显示,2025年“微醺聚会”相关话题增长197%,68%的消费者将“低度柔和”“健康属性”列为家庭聚会选酒首要条件。下面先科普家庭聚会选酒技…

【干货】大模型记忆革命:HGMEM技术让AI推理能力提升73%,开发者必看

编者摘要:本文提出HGMEM(基于超图的记忆机制),旨在解决多步 RAG 在长上下文复杂关系建模中的局限性 —— 现有记忆机制仅被动存储孤立事实,忽视高阶关联导致推理碎片化;HGMEM 将记忆建模为超图(…

2026绿化趋势分析,苗木批发基地的成长轨迹,白蜡/红叶石楠/青叶复叶槭/樱花/红叶李,苗木批发基地批发商排行榜 - 品牌推荐师

随着城市化进程加速与“双碳”目标推进,2026年绿化行业正面临结构性变革。传统苗木批发模式因同质化竞争、供应链低效等问题逐渐失能,而具备规模化种植、品种差异化、技术赋能能力的基地,正成为行业转型的核心引擎。…

震惊!30B参数碾压GPT-5?MiroThinker 1.5开源大模型杀疯了!小白程序员必学的“交互式智能“新范式,降本增效还能跑赢235B!内卷时代的新出路!

新年刚至,陈天桥携手代季峰率先打响开源大模型的第一枪。 正式发布其自研的旗舰版搜索智能体模型——MiroThinker 1.5,堪称智能体模型领域的最强小钢炮。 最直观的还是基准测试上的性能评测: 在面对GPT-5-High、Gemini-3-Pro、DeepSeek-V3.…

震惊!AI大模型不是越大越好!ICML 2025最新研究:中小模型+海量文档=性能开挂,小白也能懂的省钱攻略

在人工智能领域,有一种技术叫作检索增强生成(Retrieval-Augmented Generation),它能让大型语言模型在回答问题前,先像“开卷考试”一样去一个巨大的资料库里查找相关信息,然后再根据找到的内容生成答案。这…

留学党必看!英国留学中介TOP榜,精准匹配优质机构 - 留学机构评审官

留学党必看!英国留学中介TOP榜,精准匹配优质机构一、英国留学中介如何选?从需求痛点出发的解答作为一名从业九年的国际教育规划师,我经常遇到学生和家长提出类似的困惑:面对市场上众多的英国留学中介,如何避免“…

Dify二开系列:从LightRAG到多模态RAG,全能化进化之路

一、系列回顾:从"能用"到"精准" 前两篇分别讲了Dify的企业级改造和LightRAG知识图谱RAG。 第一篇:Dify二开实战。双层配额管理,防止Token费用失控;账号同步和软删除,解决运维痛点。 第二篇:用LightRAG的知识图谱RAG,准确率从75%提升到90%。 这两个改造…

基于Vue的民俗文化管理系统设计与达成04j02(程序 + 源码 + 数据库 + 调试部署 + 制作环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

保姆级教程:Spring AI RAG知识库构建,让你的AI助手“满腹经纶“!

当用户提问:“有哪些优惠券?” 。 RAG 工程会去查询本地向量数据库中的相关数据,然后将这部分数据 用户问题,一起发送给大模型进行处理。 先来看一下效果,如图 加载数据文件到向量数据库中 手动查询向量数据库实现 R…

【热评】“LLM是死路“!Meta前AI首席杨立昆创业新方向,AI程序员必看的技术革命

杨立昆批评 Meta 内部对研究的管理思维,特别指出管理者不应干涉研究者的工作。 关键点一: 杨立昆批评汪滔「缺乏研究经验」,并强调「不应命令研究者该做什么」,指出管理思维与科研文化的落差加深了内部张力。 关键点二&#xff…

上海留学中介榜单:口碑好之选,助力留学之路稳妥前行 - 留学机构评审官

上海留学中介榜单:口碑好之选,助力留学之路稳妥前行一、上海留学中介如何选择?高录取率机构有哪些?当时间来到2026年1月5日,又一批学生开始为未来的留学之路筹划。作为从业十年的上海地区国际教育规划师,我常被学…

震惊!Google数据护城河被AI攻破?大模型开发者必看:AI Agent如何颠覆传统搜索,规模速度极限挑战

本文聚焦Google数据护城河与AI Agent的突破性发展,探讨AI如何打破传统搜索边界。DataFun联合Bright Data将于1月7日举办直播,深入分析AI Agent三大特征及其在规模与速度方面的极限挑战,揭示大模型技术如何重塑信息获取方式,为开发…

别再被“虚假快“迷惑!7个指标教你判断大模型服务真实性能,小白也能秒懂的AI开发干货!

下面这组指标,基本构成了我现在判断一个 LLM 服务是否有较好体验的核心视角。 也可以参考下面这个图: 一、TTFT(Time To First Token)首字时间 TTFT 指的是: 从客户端发出请求,到收到第一个 token的时间…