云计算百科
云计算领域专业知识百科平台

关于各种服务器

 

首先我们需要知道,现在的Java项目普遍采用web服务器→应用服务器→数据库服务器的核心架构。

三种服务器解释

Web服务器:直接面向客户端的服务器

web服务器的别称是反向代理服务器,它的核心职责是处理HTTP(S)请求,监听来自客户端的网络请求,通常是80端口或443端口。

当收到一个请求:如http://example.com/index.html,它:

  • 处理请求(解析请求的 URL、HTTP 方法(GET, POST 等)、请求头等信息)

  • 查找资源(根据请求的路径在服务器文件系统上找到对应的静态资源,如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等)

  • 生成响应对于静态资源,直接读取文件内容;对于动态请求(需要程序处理),则将请求转发给应用服务器(如 Tomcat)处理,并等待其返回结果。

  • 发送响应将资源内容(或应用服务器返回的结果)包装成符合 HTTP 协议的响应报文(包括状态码、响应头和响应体),发送回客户端。

    Nginx 或 Apache HTTP Server这两个是主要的,高性能的web服务器,此二者处理静态文件请求等,遇到需要动态请求的如.jsp或.do的请求就反向代理给后端的tomcat来处理,反向代理不仅将动态请求转发给应用服务器,还能实现负载均衡、请求分发和静态内容缓存等功能。

应用服务器:运行业务逻辑代码

    

    Tomcat内置了HTTP服务器功能,可以处理静态内容,但在生产环境中通常与Nginx或Apache配合,由后者处理静态内容以提升性能。Tomcat 本身专注于执行业务逻辑(Servlet/JSP),生成动态 HTML 或数据(如 JSON),然后通过反向代理将结果返回给前端 Web 服务器,最终由前端 Web 服务器发送给客户端。

数据库服务器

最典型的就是mysql,为应用服务器提供数据存储和查询的关键服务,但它本身不是运行业务逻辑的应用服务器。

在Java项目中,MySQL和PostgreSQL因其JDBC支持和生态成熟,常用于关系型数据存储;MongoDB和Redis则适合非结构化数据或高性能缓存场景。

三种类型服务器的代表

Web服务器

Web服务器处理HTTP/HTTPS请求,交付静态内容(如HTML、CSS、图片),并将动态请求转发给应用服务器。常见代表:

  • Nginx:高性能、轻量级,擅长高并发和反向代理,常用于负载均衡

  • Apache HTTP Server**:功能丰富、模块化,适合中小型项目

  • Microsoft IIS:Windows平台Web服务器,常见于企业级应用。

  • LiteSpeed:高性能,支持HTTP/3,兼容Apache,常用于高流量网站。

  • Caddy:现代化Web服务器,自动HTTPS,配置简单。

应用服务器

应用服务器运行业务逻辑,处理动态内容,执行应用代码并与数据库交互。常见代表:

应用服务器:

  • Tomcat:轻量级Java应用服务器,支持Servlet和JSP。

  • JBoss/WildFly:Java EE应用服务器,适合企业级应用。

  • WebSphere:IBM企业级服务器,支持复杂Java应用。

  • WebLogic:Oracle的Java EE服务器,适合高可用性场景。

框架+服务器的组合:

  • Node.js:Node.js是JavaScript运行时,内置HTTP模块,常搭配Express框架(用于路由和业务逻辑)实现Web应用服务器功能,适合实时和高并发应用。

  • Spring Boot:Java框架,默认嵌入Tomcat,也支持Jetty或Undertow,简化微服务和RESTful API开发。

  • Django/Flask:Django和Flask是Python Web框架,搭配Gunicorn或uWSGI(处理动态请求的服务器软件),适合快速开发Web应用。

  • Ruby on Rails:Ruby on Rails是Ruby Web框架,搭配Puma或Unicorn(处理动态请求的服务器软件),适合快速原型开发。

在Java项目中,Spring Boot常用于微服务开发,嵌入Tomcat/Jetty;企业级项目可能部署到JBoss/WildFly或WebLogic以支持复杂需求。

数据库服务器

数据库服务器存储、管理和检索数据,支持SQL或NoSQL。常见代表:

  • MySQL:开源关系型数据库,广泛用于Web应用。

  • PostgreSQL:功能强大,支持高级SQL特性。

  • Microsoft SQL Server:微软企业级关系型数据库。

  • Oracle Database:企业级数据库,适合复杂业务。

  • MongoDB:NoSQL文档数据库,适合非结构化数据。

  • Redis:Redis是高性能内存数据库,广泛用于缓存、会话存储、消息队列和实时数据处理。

  • MariaDB:MariaDB是MySQL的开源分支,高度兼容MySQL,优化了性能并增加了新特性,常作为MySQL的替代品。

  • Cassandra:分布式NoSQL数据库,适合高扩展性场景。

三者比较

作用产品是否是后端

客户端 发起请求,渲染页面 浏览器,APP
web服务器/反向代理服务器 接收HTTP请求,处理静态文件,反向代理动态请求到应用服务器,负载均衡,缓存 Nginx, Apache HTTP Server (httpd)
应用服务器 运行业务逻辑代码,处理动态请求,生成动态内容(HTML/JSON/XML),访问数据库 Tomcat等
数据库服务器 存储、管理、检索应用数据 Mysql,MongoDB, Redis, Oracle, SQL Server
其他后端服务 提供其他特定服务(如缓存,认证,微服务) Auth0 (认证服务)

最后

只有在纯静态的网站,才可以没有tomcat这种的应用服务器,例如简单的个人博客和公司宣传页,标准的动态网站一定是三位一体的。

这里我的宝塔面板

在我的宝塔面板中,未显示Tomcat,可能是未安装或面板版本限制。宝塔面板支持在‘软件商店’一键部署Tomcat,也支持PHP-FPM、Nginx等,适合Java和PHP等多语言项目。

图片

图片

     

        

        若需在phpStudy中部署Tomcat,需手动配置,因其主要针对PHP环境。phpStudy中,PHP动态请求通过PHP-FPM(FastCGI进程管理器,类似Tomcat的角色)或Apache的mod_php模块处理。为确保安全,建议使用phpStudy最新版本并检查配置,因其早期版本(如2019年)曾存在后门漏洞。启用防火墙和IP限制可保护服务器。

欢迎在评论区反馈问题或讨论技术细节。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 关于各种服务器
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!