自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曹哥的博客

技术分享,微信公众号:运维小二

  • 博客(72)
  • 收藏
  • 关注

原创 Ubuntu24.04构建Nginx1.26镜像实战

【代码】Ubuntu24.04构建Nginx1.26镜像实战。

2025-11-27 08:15:00 123

原创 Alpine镜像编译Nginx实战指南

制作基于 Alpine 自定义镜像的 Nginx 镜像。制作 Alpine 的自定义系统镜像。

2025-10-31 11:00:00 332

原创 实战:Docker构建Haproxy负载均衡镜像

准备构建脚本构建haproxy镜像。准备haproxy配置文件。准备Dockerfile。在另外两台主机启动容器。

2025-10-31 00:01:27 409

原创 实战:构建自定义Tomcat业务镜像

基于官方提供的centos、debian、ubuntu、alpine等基础镜像构建 JDK (Java环境),然后再基于自定义的 JDK 镜像构建出业务需要的tomcat 镜像。基于自定义的 JDK 基础镜像,构建出通用的自定义 Tomcat 基础镜像,此镜像后期会被多个业务的多个服务共同引用(相同的JDK 版本和Tomcat 版本)。创建tomcat-app1和tomcat-app2两个目录,代表不同的两个基于tomcat的业务。先基于官方提供的基础镜像,制作出安装了常用命令的自定义基础镜像。

2025-10-19 09:15:00 337

原创 Docker多阶段构建实战:镜像瘦身术

多阶段构建允许我们在 Dockerfile 中定义多个构建阶段,每个阶段都可以使用不同的基础镜像,并且可以有选择地将文件从一个阶段复制到另一个阶段。这种方法让我们能够分离出编译/构建环境与最终运行环境,从而大幅减少生成的 Docker 镜像的体积。利用多阶段构建,可以大大减小镜像的大小,但要注意相关依赖文件都要复制到新构建中才能正常运行容器。多阶段构建比较适用于静态编译的程序,比如:Golang。另外在Dockerfile文件中删除文件,也不会让镜像变小,也可以利用多阶段构建缩小镜像。

2025-10-19 08:00:00 509

原创 Docker实战:从基础镜像到Nginx定制

准备目录结构,下载镜像并初始化系统先制作基于基础镜像的系统Base镜像。

2025-10-12 15:21:34 223

原创 Dockerfile 指令详解与实战指南

Dockerfile 构建过程从基础镜像运行一个容器,执行一条指令,对容器做出修改,执行类似docker commit的操作,提交一个新的中间镜像层(可以利用中间层镜像创建容器进行调试和排错)再基于刚提交的镜像运行一个新容器,执行Dockerfile中的下一条指令,直至所有指令执行完毕。Dockerfile 指令总结RUNONBUILD。

2025-10-12 11:44:07 1099

原创 Docker镜像制作终极指南

Docker 镜像中有没有内核?从镜像大小上面来说,一个比较小的镜像只有1MB多点或几MB,而内核文件需要几十MB, 因此镜像里面是没有内核的,镜像在被启动为容器后将直接使用宿主机的内核,而镜像本身则只提供相应的 rootfs,即系统正常运行所必须的用户空间的文件系统,比如:/dev/,/proc,/bin,/etc等目录,容器当中/boot目录是空的,而/boot当中保存的就是与内核相关的文件和目录。为什么没有内核?由于容器启动和运行过程中是直接使用了宿主机的内核,不会直接调用物理硬件,所以也不会涉

2025-10-04 09:00:00 1509

原创 Docker一键部署8080自动化运维平台

Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。批量执行:主机命令在线批量执行在线终端:主机支持浏览器在线终端登录文件管理:主机文件在线上传下载任务计划:灵活的在线任务计划发布部署:支持自定义发布部署流程配置中心:支持 KV、文本、json 等格式的配置监控中心:支持站点、端口、进程、自定义等监控。

2025-10-04 08:00:00 338

原创 Docker容器操作基础命令指南

Docker容器是轻量级、可移植的软件包,其中包含了运行所需的一切:代码、运行时、系统工具、系统库和设置。以下是关于Docker容器的一些基本操作命令,帮助你快速上手。

2025-09-21 08:00:00 625

原创 深入解析Docker镜像分层原理

Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件。

2025-09-16 14:10:29 959

原创 Docker安装指南:快速上手容器化

Docker 版本说明OS系统版本选择:Docker 目前已经支持多种操作系统的安装运行,比如Ubuntu、CentOS、Redhat、Debian、Fedora,甚至是还支持了Mac和Windows,在linux系统上需要内核版本在3.10或以上。Docker 版本选择github地址:https://github.com/moby/mobyDocker版本号之前一直是0.X版本或1.X版本,从2013年3月13日发布第一个版本0.1.1-1开始一直到2017年02月08日发布1.13.1版。

2025-09-16 11:10:52 780

原创 探索容器技术:从LXC到Podman的演进

容器是一种轻量级的虚拟化技术,它允许开发者将应用程序及其依赖项打包成一个独立的运行环境。这个环境可以在任何地方运行,无论是在开发者的本地机器、测试服务器还是生产环境中,都能保证一致的行为和性能。容器技术的发展经历了几个重要阶段,从Linux Containers(LXC)到现在的Docker和Podman等。

2025-09-11 18:51:52 750

原创 Docker:颠覆传统虚拟化的轻量级革命

容器历史虽然 docker 把容器技术推向了巅峰,但容器技术却不是从 docker 诞生的。实际上,容器技术连新技术都算不上,因为它的诞生和使用确实有些年头了。下面的一串名称可能有的你都没有听说过,但它们的确都是容器技术的应用。1、Chroot Jail 就是我们常见的 chroot 命令的用法。它在 1979 年的时候就出现了,被认为是最早的容器化技术之一。它可以把一个进程的文件系统隔离起来。

2025-09-08 15:53:49 996

原创 探索OpenResty:高性能Web开发利器

通过本文,我们对OpenResty有了初步的认识,了解到它如何结合Nginx的强大性能与Lua语言的灵活性,为Web应用开发提供了一种新的思路。对于那些寻求在保持高性能的同时,还能实现复杂业务逻辑的企业来说,OpenResty无疑是一个极具吸引力的选择。希望这篇文章能激发你对OpenResty的兴趣,并为你未来的技术选型提供有价值的参考。如果有任何疑问或想要了解更多信息,请继续关注我的博客!

2025-09-07 20:35:44 886

原创 淘宝Tengine:Nginx的超级增强版

通过本文,我们对Tengine有了初步的认识,包括它的背景、主要特性以及如何安装和使用。如果你正在寻找一种能够满足大规模并发访问需求的Web服务器,Tengine无疑是一个值得考虑的选择。随着项目的不断发展,未来还将有更多激动人心的功能被加入进来。希望这篇文章能帮助你更好地理解Tengine,并为你的技术选型提供有价值的参考。如果有任何疑问或想要了解更多信息,请继续关注我的博客!请记得,虽然Tengine是Nginx的强大替代品,但在采用之前,务必评估其与现有系统的兼容性和适用性。

2025-09-07 12:49:34 1201

原创 Nginx四层负载均衡实战指南

四层负载均衡工作于OSI模型的传输层,它根据IP地址和端口号来决定如何转发客户端请求。相比于七层负载均衡,四层负载均衡更直接地基于网络数据包进行操作,因此具有更低的延迟和更高的性能。

2025-08-31 18:43:03 1238 1

原创 深入理解Nginx反向代理及其应用

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。通常由于同域安全策略(the same-origin security policy),浏览器会禁止跨域请求。值得注意的是:虽然因为跨域的原因会导致浏览器禁止访问而获取数据失败,但返回的状态码仍为200。常见的解决方案有:CORS,JSONP,Nginx反向代理等。

2025-08-31 12:51:40 1069

原创 深入解析Nginx常见模块2

访问日志是记录客户端即用户的具体请求内容信息,而在全局配置模块中的error_log是记录nginx服务器运行时的日志保存路径和记录日志的level,因此两者是不同的,而且Nginx的错误日志一般只有一个,但是访问日志可以在不同server中定义多个,定义一个日志需要使用access_log指定日志的保存路径,使用log_format指定日志的格式,格式中定义要保存的具体日志内容。访问日志由 ngx_http_log_module模块实现。官方帮助文档语法格式。

2025-08-30 15:33:43 1083

原创 深入解析Nginx常见模块1

自定义错误页,同时也可以用指定的响应状态码进行响应,可用位置:http,server,location,if in locationDefault: —server {listen 80;#重启nginx并访问不存在的页面进行测试自定义错误页面如果404,就转到主页#404转为302server {listen 80;

2025-08-30 12:21:17 666

原创 深入解析Nginx核心模块

理解Nginx的核心模块及其功能,是掌握Nginx配置的基础。每个模块都有其独特的用途,合理地组合使用它们,可以让你的Nginx服务器更加安全、高效和灵活。希望这篇文章能帮助你更深入地了解Nginx,并为你的Web服务器管理之旅提供有力的支持。请随时关注我们的博客,获取更多关于Nginx和其他技术主题的深度解析!

2025-08-29 19:02:49 1198

原创 nginx命令与信号:平滑升级与优雅关闭

在本篇博客文章中,我们将介绍如何在不中断服务的情况下对Nginx进行平滑升级。这对于需要保持高可用性的Web服务器来说尤为重要。以下是详细的步骤和注意事项。在生产环境中,直接停止Nginx服务以进行版本更新可能会导致短暂的服务中断,影响用户体验。通过平滑升级,可以在不影响现有连接的前提下完成Nginx的版本更新或模块添加等操作。

2025-08-29 12:00:57 1865

原创 快速安装Nginx:Yum与源码编译指南

在本篇博客文章中,我们将介绍如何使用Yum(针对CentOS/RHEL)或Apt(针对Debian/Ubuntu)进行Nginx的快速安装,以及如何从源代码手动编译安装Nginx。无论你是初学者还是有经验的开发者,这篇文章都将为你提供清晰的指导。

2025-08-27 09:23:39 1089

原创 Nginx零拷贝技术深度解析

传统 Linux中 I/O 的问题传统的 Linux 系统的标准 I/O 接口(read、write)是基于数据拷贝的,也就是数据都是 copy_to_user或者 copy_from_user,这样做的好处是,通过中间缓存的机制,减少磁盘 I/O 的操作,但是坏处也很明显,大量数据的拷贝,用户态和内核态的频繁切换,会消耗大量的 CPU 资源,严重影响数据传输的性能,统计表明,在Linux协议栈中,数据包在内核态和用户态之间的拷贝所用的时间甚至占到了数据包整个处理流程时间的57.1%

2025-08-25 14:26:44 1532

原创 Nginx与Apache:Web服务器性能大比拼

Netcraft公司于1994年底在英国成立,多年来一直致力于互联网市场以及在线安全方面的咨询服务,其中在国际上最具影响力的当属其针对网站服务器,域名解析/主机提供商,以及SSL市场所做的客观严谨的分析研究。

2025-08-25 11:33:53 816

原创 高效Web开发工具全解析

随着Web技术的不断进步,相关的开发工具也在不断地演进和完善。选择适合自己工作流程和个人偏好的工具,能够极大地提升开发效率和产品质量。希望本文介绍的这些工具能为你带来一些启发,并帮助你在Web开发的道路上走得更远。无论你是运维还是有经验的开发者,都可以根据自己的需求从中找到合适的工具来辅助你的开发工作。

2025-08-24 13:28:41 737

原创 HTTP协议报文头部全解析

HTTP头部字段为客户端和服务器之间提供了丰富的沟通渠道,使得它们能够交换各种有用的信息。无论是开发人员还是运维专家,深入理解和灵活应用这些头部字段,都是提高工作效率、解决问题的重要技能。希望这篇文章能帮助你更好地理解HTTP协议的报文头部结构,并在实际工作中加以运用。

2025-08-24 09:07:16 786

原创 深入理解Web服务与HTTP协议

Web服务和HTTP协议为现代互联网提供了强大的基础设施,使得不同系统之间的交互变得更加容易和高效。无论你是新手还是有经验的开发者,了解这些基本概念都将对你的工作大有裨益。随着技术的进步,Web服务和HTTP协议也在不断发展,例如HTTP/2和即将到来的HTTP/3,它们带来了性能上的显著提升和新特性。保持对最新趋势的关注,可以帮助你更好地设计和实现高质量的Web服务。希望这篇博客能为你提供有价值的信息,帮助你在Web服务领域更加得心应手。

2025-08-23 13:37:11 1038

原创 使用Nexus配置Tomcat的私有仓库:指南

Nexus 是一个强大的 Maven 和其它仓库的管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问Nexus 官网官方下载说明官方下载页面官方安装文档链接安装要求https://help.sonatype.com/repomanager3/installation/system-requirements #官方要求内存8G以上,太小比如4G以下会导致无法启动Docker 安装。

2025-08-23 10:17:14 726

原创 Java程序编译与Maven部署实战

Maven 翻译为"专家"、“内行”,是 Apache 基金会旗下的一个纯 Java 开发的开源项目。Maven 是一个项目管理工具,可以对 Java项目进行构建、解决打包依赖等。它为开发者提供了一套完整的构建生命周期框架,开发团队稍微投入一些时间就能够自动完成工程的基础构建配置;在有多个开发团队环境的情况下,Maven 能够在很短的时间内使得每项工作都按照标准进行;那是因为大部分的工程配置操作都非常简单并且可复用。

2025-08-21 13:36:03 910

原创 Java性能优化:JVM工具与Tomcat调优实战

JAVA_HOME/bin下命令说明jps查看所有jvm进程jinfo查看进程的运行环境参数,主要是jvm命令行参数jstat对jvm应用程序的资源和性能进行实时监控jstack查看所有线程的运行状态jmap查看jvm占用物理内存的状态jhat+UseParNewjconsole图形工具jvisualvm图形工具,jdk-8u361版后被取消。

2025-08-21 11:32:49 1010

原创 Tomcat 性能优化终极指南

没有最好的算法,在不同场景选择最合适的算法。

2025-08-20 16:59:49 1374 1

原创 使用Tomcat Clustering和Redis Session Manager实现Session共享

随着Web应用的分布式部署需求日益增长,如何在多个实例之间共享用户会话成为一个关键问题。Apache Tomcat提供了一种通过集群(Clustering)来实现会话复制的方法,但是直接使用内存复制的方式在大规模部署时可能会遇到性能瓶颈。为了解决这个问题,可以利用Redis作为中央存储来管理会话,这不仅能提高性能,还能增强系统的可扩展性和可靠性。本文将介绍如何使用Tomcat Clustering与Redis Session Manager集成,以实现基于Redis的Session共享。

2025-08-19 13:47:16 586

原创 Redisson轻松实现Tomcat Session共享

随着Web应用程序的扩展,分布式部署变得越来越普遍。为了在多台服务器之间保持用户会话的一致性,需要一种有效的Session共享机制。Redis作为一种高性能的内存数据结构存储,常被用来作为Session共享的后端存储。本文将介绍如何使用Redisson库来实现基于Redis的Tomcat Session共享。

2025-08-19 10:12:08 488

原创 Tomcat Session 共享与Non-Sticky模式:实现高可用Web应用

Session是Web应用程序中用于跟踪用户状态的一种机制。它允许服务器存储关于用户的信息,如登录状态、购物车内容等,这些信息在用户的多次请求之间保持一致。然而,在集群环境下,由于用户的请求可能被路由到不同的服务器实例上,确保会话数据的一致性和可访问性变得尤为重要。注意:当前MSM不支持 tomcat11版本MSM(memcached session manager)提供将Tomcat的session保持到memcached或Redis的程序,可以实现高可用。

2025-08-19 08:00:00 973

原创 Session共享与Sticky模式:优化Web应用性能

首先,我们需要了解什么是Session。简单来说,Session是一种用于存储特定用户会话所需信息的方法。它使得服务器能够在一段时间内记住用户的动作和偏好设置,比如登录状态、购物车内容等。然而,在分布式环境中,由于请求可能被路由到不同的服务器实例上,传统的基于内存的Session管理方式面临着挑战。注意:当前MSM不支持 tomcat11版本MSM(memcached session manager)提供将Tomcat的session保持到memcached或Redis的程序,可以实现高可用。

2025-08-18 17:48:11 1460

原创 Linux下安装配置Memcached指南

NoSQL是对 Not Only SQL、非传统关系型数据库的统称。NoSQL一词诞生于1998年,2009年这个词汇被再次提出指非关系型、分布式、不提供ACID的数据库设计模式。随着互联网时代的到来,数据爆发式增长,数据库技术发展日新月异,要适应新的业务需求。而随着移动互联网、物联网的到来,大数据的技术中NoSQL也同样重要。NoSQL 分类Key-value Store k/v数据库性能好 O(1) ,如: redis、memcachedDocument Store 文档数据库。

2025-08-18 14:28:53 456

原创 Tomcat Session Replication Cluster:实现高可用性和可扩展性的关键

Session Replication是指在集群环境下的多个Tomcat实例之间复制用户的会话信息。当一个节点不可用时,另一个节点可以接管其工作,继续为用户提供服务而不会中断用户体验。这对于需要保持用户状态的应用程序来说至关重要。

2025-08-17 15:23:06 1109

原创 Nginx反向代理Tomcat实战指南

standalone模式,Tomcat单独运行,直接接受用户的请求,不推荐反向代理,单机运行,提供了一个Nginx作为反向代理,可以做到静态由nginx提供响应,动态jsp 代理给Tomcat前置一台Nginx,给多台Tomcat实例做反向代理和负载均衡调度,Tomcat上部署的纯动态页面更适合多级代理。

2025-08-15 18:08:03 1070

原创 Java应用快速部署Tomcat指南

将Java应用部署到Apache Tomcat服务器是开发Web应用过程中常见的任务。Tomcat是一个免费且开源的Servlet容器,它为Java应用提供了运行环境。本文将介绍如何准备你的Java应用,并将其部署到Tomcat服务器上。

2025-08-14 16:45:50 1529

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除