常见服务器大全----都是什么?又有何作用?区别联系是什么?---web,应用,数据库,文件,消息队列服务器,Tomat,Nginx,vite.....

news2024/9/24 14:27:48

Node.js 与 Express

  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许你在服务器端运行 JavaScript。
  • Express 是一个基于 Node.js 的 Web 应用程序框架,它简化了构建 Web 应用程序和 API 的过程。Express 可以用来创建后端服务器,并处理 HTTP 请求。

例如,一个简单的 Express 服务器可能如下所示:

1const express = require('express');
2const app = express();
3const port = 3000;
4
5app.get('/api/hello', (req, res) => {
6  res.send('Hello from Express!');
7});
8
9app.listen(port, () => {
10  console.log(`Server is running on http://localhost:${port}`);
11});


Vue.js 与 Vite

  • Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。Vue.js 专注于视图层,可以轻松地与其他库或现有项目集成。
  • Vite 是一个现代的前端构建工具,它利用浏览器原生的 ES 模块导入功能来提供快速的开发体验。Vite 主要用于开发环境中的热更新(HMR)和服务,而不是作为生产环境的服务器。

例如,一个使用 Vite 的 Vue 项目可以通过以下命令启动开发服务器:

1npm run dev

这将启动 Vite 开发服务器,默认监听 http://localhost:3000 或你配置的其他端口。

前端与后端服务器的区别

  • 前端服务器:在开发环境中,前端服务器(如 Vite、Webpack Dev Server 等)主要用于提供静态文件服务、热模块替换(HMR)、代理请求等。它们通常不处理业务逻辑,只负责前端资源的加载和开发体验的优化。
  • 后端服务器:后端服务器(如 Express、Spring Boot 等)处理业务逻辑、数据库操作、API 请求等。它们是实际处理数据和逻辑的地方。


示例

假设你有一个 Vue 项目和一个 Express 后端项目:

Vue 项目(前端)
  1. 初始化 Vue 项目:

    1npm create vite@latest my-vue-app --template vue
    2cd my-vue-app
  2. 安装依赖并启动 Vite 开发服务器:

    1npm install
    2npm run dev
  3. 配置 Vite 代理(vite.config.ts):

    1import { defineConfig } from 'vite';
    2import vue from '@vitejs/plugin-vue';
    3
    4export default defineConfig({
    5  plugins: [vue()],
    6  server: {
    7    port: 7070,
    8    proxy: {
    9      '/api': {
    10        target: 'http://localhost:3000',
    11        changeOrigin: true
    12      }
    13    }
    14  }
    15});
Express 项目(后端)
  1. 初始化 Express 项目:

    1mkdir my-express-app
    2cd my-express-app
    3npm init -y
    4npm install express
  2. 创建一个简单的 Express 服务器(index.js):

    1const express = require('express');
    2const app = express();
    3const port = 3000;
    4
    5app.get('/api/hello', (req, res) => {
    6  res.send('Hello from Express!');
    7});
    8
    9app.listen(port, () => {
    10  console.log(`Server is running on http://localhost:${port}`);
    11});
  3. 启动 Express 服务器:

    1node index.js

总结

  • Node.js + Express 用于创建后端服务器,处理 API 请求和业务逻辑。
  • Vue.js + Vite 用于创建前端应用,并在开发环境中提供快速的开发体验。


Tomcat

Apache Tomcat 是一个开源的 Java Servlet 容器,它实现了 Java Servlet 和 JavaServer Pages (JSP) 技术规范。Tomcat 通常用于运行基于 Java 的 Web 应用程序和提供 HTTP 服务。

主要特点
  • 轻量级:Tomcat 是一个轻量级的服务器,易于设置和配置。
  • Servlet 和 JSP 支持:完全支持 Java Servlet 和 JSP 技术。
  • 跨平台:可以在多种操作系统上运行,如 Windows、Linux 和 macOS。
  • 模块化:可以通过添加或移除组件来扩展功能。
  • 安全性:提供了基本的安全特性,如 SSL 支持。
使用场景
  • 开发环境:在开发阶段,Tomcat 常用于快速部署和测试 Java Web 应用程序。
  • 小型生产环境:对于小型到中型的应用程序,Tomcat 可以作为独立的 Web 服务器使用。
  • 与反向代理结合:在大型生产环境中,Tomcat 通常与 Nginx 或 Apache HTTP Server 结合使用,后者处理静态内容和负载均衡,而 Tomcat 处理动态内容。

Nginx

Nginx(发音为 "engine-x")是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3 代理服务器。Nginx 以其高并发处理能力和低资源消耗而闻名。

主要特点
  • 高性能:能够处理大量并发连接,适合高流量网站。
  • 反向代理:可以将客户端请求转发到后端服务器,并将响应返回给客户端。
  • 负载均衡:支持多种负载均衡算法,如轮询、最少连接数等。
  • 静态内容服务:高效地提供静态文件(如 HTML、CSS、JavaScript 文件)。
  • SSL/TLS 终止:支持 HTTPS 加密,可以终止 SSL/TLS 连接。
  • 缓存:内置缓存机制,可以缓存后端服务器的响应。
使用场景
  • Web 服务器:作为主要的 Web 服务器,提供静态内容和简单的动态内容。
  • 反向代理:作为反向代理服务器,将请求转发到后端应用服务器(如 Tomcat、Node.js 等)。
  • 负载均衡:在多个后端服务器之间分配负载,提高系统的可用性和性能。
  • API 网关:作为 API 网关,管理和路由 API 请求。
  • 微服务架构:在微服务架构中,Nginx 可以作为服务网关,管理不同微服务之间的通信。

结合使用 Tomcat 和 Nginx

在实际项目中,Tomcat 和 Nginx 经常结合使用,以充分利用各自的优势。以下是常见的配置示例:

  1. Nginx 作为反向代理和负载均衡器

    • Nginx 接收来自客户端的所有请求。
    • Nginx 将静态内容(如图片、CSS、JavaScript 文件)直接提供给客户端。
    • 对于动态内容(如 JSP 页面),Nginx 将请求转发到后端的 Tomcat 服务器。
    • Nginx 可以配置为负载均衡器,将请求分发到多个 Tomcat 实例,以提高系统的可扩展性和可靠性。
  2. 配置示例

    • Nginx 配置文件 (/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf):

      1http {
      2    upstream tomcat_servers {
      3        server 127.0.0.1:8080;
      4        server 127.0.0.1:8081;
      5        # 可以添加更多的 Tomcat 服务器
      6    }
      7
      8    server {
      9        listen 80;
      10        server_name example.com;
      11
      12        location / {
      13            root /var/www/html;
      14            index index.html index.htm;
      15        }
      16
      17        location /api/ {
      18            proxy_pass http://tomcat_servers;
      19            proxy_set_header Host $host;
      20            proxy_set_header X-Real-IP $remote_addr;
      21            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      22            proxy_set_header X-Forwarded-Proto $scheme;
      23        }
      24    }
      25}
    • Tomcat 服务器

      • 确保 Tomcat 服务器运行在指定的端口(例如 8080 和 8081)。
      • 部署你的 Java Web 应用程序到 Tomcat 服务器。


Web 服务器

Apache HTTP Server
  • 简介:Apache HTTP Server 是世界上最流行的开源 Web 服务器之一,由 Apache 软件基金会维护。
  • 主要特点
    • 模块化设计:可以通过添加或移除模块来扩展功能。
    • 安全性:提供了多种安全特性,如 SSL/TLS 支持、访问控制等。
    • 灵活性:支持多种操作系统,包括 Linux、Windows 和 macOS。
    • 社区支持:拥有庞大的用户和开发者社区,提供丰富的文档和支持。
  • 使用场景:适用于各种规模的网站,从小型个人站点到大型企业级应用。
Microsoft IIS (Internet Information Services)
  • 简介:IIS 是微软提供的 Web 服务器,与 Windows 操作系统紧密集成。
  • 主要特点
    • 集成性:与 Windows 系统和服务高度集成,便于管理和配置。
    • 安全性:提供了多种安全特性,如 Windows 集成身份验证、SSL/TLS 支持等。
    • 管理工具:提供了图形化的管理工具,方便管理员进行配置和监控。
    • ASP.NET 支持:特别适合运行 ASP.NET 应用程序。
  • 使用场景:适用于基于 Windows 的 Web 应用程序,特别是那些需要与 Windows 服务和功能紧密结合的应用。

应用服务器

WildFly (以前称为 JBoss AS)
  • 简介:WildFly 是一个开源的应用服务器,支持 Java EE 规范。
  • 主要特点
    • 全面的 Java EE 支持:支持所有 Java EE 标准技术,如 EJB、JPA、JMS 等。
    • 轻量级:启动速度快,资源消耗低。
    • 模块化架构:可以根据需要启用或禁用特定的功能模块。
    • 集群和负载均衡:支持高可用性和负载均衡配置。
  • 使用场景:适用于需要完整 Java EE 功能的企业级应用程序。
GlassFish
  • 简介:GlassFish 是一个开源的应用服务器,由 Oracle 维护。
  • 主要特点
    • Java EE 兼容性:完全符合 Java EE 规范。
    • 可扩展性:支持集群和负载均衡,适用于大规模部署。
    • 管理工具:提供了图形化的管理工具,方便管理和监控。
    • 开源:开放源代码,允许自定义和扩展。
  • 使用场景:适用于需要 Java EE 功能的企业级应用程序,特别是在开发和测试阶段。

数据库服务器

MySQL
  • 简介:MySQL 是一个开源的关系型数据库管理系统。
  • 主要特点
    • 高性能:支持高并发读写操作。
    • 可靠性:支持事务处理和数据完整性。
    • 易用性:提供了简单的 SQL 语法和管理工具。
    • 跨平台:可以在多种操作系统上运行。
  • 使用场景:适用于各种规模的应用程序,从小型项目到大型企业级应用。
PostgreSQL
  • 简介:PostgreSQL 是一个开源的对象关系型数据库管理系统。
  • 主要特点
    • 高级功能:支持复杂的数据类型、索引、视图和存储过程。
    • 扩展性:支持自定义函数和数据类型。
    • 安全性:提供了多种安全特性,如角色和权限管理。
    • ACID 合规:支持事务处理和数据一致性。
  • 使用场景:适用于需要高级数据库功能的应用程序,特别是在需要复杂查询和数据分析的情况下。

文件服务器

Samba
  • 简介:Samba 是一个开源软件套件,提供了文件和打印共享服务。
  • 主要特点
    • 跨平台:支持在不同操作系统之间共享文件和打印机。
    • 兼容性:与 Windows SMB/CIFS 协议兼容。
    • 安全性:提供了多种安全特性,如用户认证和访问控制。
    • 易于配置:提供了图形化的配置工具和命令行工具。
  • 使用场景:适用于需要在不同操作系统之间共享文件和打印机的网络环境。
NFS (Network File System)
  • 简介:NFS 是一种分布式文件系统协议,用于在网络上共享文件。
  • 主要特点
    • 跨平台:支持多种操作系统,包括 Unix、Linux 和 macOS。
    • 性能:通过缓存机制提高文件访问速度。
    • 透明性:对用户来说,远程文件系统看起来像本地文件系统一样。
    • 安全性:提供了基本的安全特性,如用户认证和访问控制。
  • 使用场景:适用于需要在网络中共享文件的 Unix 和 Linux 环境。

消息队列服务器

RabbitMQ
  • 简介:RabbitMQ 是一个开源的消息代理和队列服务器。
  • 主要特点
    • 多协议支持:支持 AMQP、MQTT、STOMP 等多种消息协议。
    • 高可用性:支持集群和镜像队列,提高系统的可靠性和可用性。
    • 插件系统:提供了丰富的插件,可以扩展功能。
    • 管理工具:提供了图形化的管理界面,方便管理和监控。
  • 使用场景:适用于需要异步消息传递和解耦的应用程序,特别是在微服务架构中。
Apache Kafka
  • 简介:Kafka 是一个开源的分布式流处理平台,主要用于构建实时数据管道和流应用。
  • 主要特点
    • 高吞吐量:能够处理大量数据流。
    • 持久化:将消息持久化到磁盘,确保数据不会丢失。
    • 水平扩展:支持大规模集群部署,提高系统的可扩展性。
    • 实时处理:支持实时数据处理和分析。
  • 使用场景:适用于需要处理大规模实时数据流的应用程序,如日志收集、事件驱动架构等。

这些服务器各有其特点和适用场景,选择合适的服务器取决于你的具体需求和技术栈。

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

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

相关文章

大模型榜单汇总整理

大型语言模型(LLM)评估榜单提供了对不同模型性能的标准化比较,涵盖了从通用能力到特定领域应用的多个方面。这些榜单专注于评估模型在特定领域的应用能力,有助于开发者了解模型的优势和局限性,推动语言模型的发展和优化…

彩虹表攻击

彩虹表攻击是一种通过查找预计算哈希值来破解密码的技术。攻击者会生成一个包含大量常见密码及其哈希值的查找表,随后将这些哈希值与数据库中的密码哈希进行匹配,从而快速找出对应的明文密码。该攻击方法特别适用于使用弱密码且未进行加盐处理的系统。 相…

Spring Cloud Alibaba-(6)Spring Cloud Gateway【网关】

Spring Cloud Alibaba-(1)搭建项目环境 Spring Cloud Alibaba-(2)Nacos【服务注册与发现、配置管理】 Spring Cloud Alibaba-(3)OpenFeign【服务调用】 Spring Cloud Alibaba-(4)Sen…

Windows电脑使用VNC远程桌面本地局域网内无公网IP树莓派5

目录 前言 1. 使用 Raspberry Pi Imager 安装 Raspberry Pi OS 2. Windows安装VNC远程树莓派 3. 使用VNC Viewer公网远程访问树莓派 3.1 安装Cpolar步骤 3.2 配置固定的公网地址 3.3 VNC远程连接测试 4. 固定远程连接公网地址 4.1 固定TCP地址测试 作者简介&#xff1…

在Windows系统上安装的 Arrow C++ 库

在Windows系统上安装的 Arrow C 库 正文第一步第二步第三步第四步注: 检查是否安装成功 吐槽 正文 第一步 git clone gitgithub.com:apache/arrow.git第二步 打开powershell (好像cmd也可以,不过我试了powershell中不报错,cmd中报错,不是很清楚为什么) 打开arrow的目录 cd …

利士策分享,如何培养良好的工作习惯?

利士策分享,如何培养良好的工作习惯? 在这个快节奏、高压力的职场环境中,培养良好的工作习惯不仅关乎个人职业发展的顺畅度, 更是提升工作效率、保持身心健康的关键。 以下是一些实用的建议,帮助你在日常工作中逐步构…

fiddler监听安卓http请求

下载安装Fiddler 官网 配置 选择Options 打开模拟器找到设置 打开app请求就能实现接口的监听了 https需要单独处理 参考 https://blog.csdn.net/lengdaochuqiao/article/details/88170522

靠AI视频在短视频平台接单月入过万,她怎么做到的?AI视频真的来了

大家好,我是画画的小强 相信大家和我一样,从小也有一个导演梦,感谢AI时代,替我完成了这个梦想,如果你想知道如何实现的,今天这篇文章,你一定要看完! 从去年11月份起,随…

MISC - 第三天(MSB二进制高地址位,ASCII编码,brainfuck编码)

前言 各位师傅大家好,我是qmx_07,今天继续讲解MISC题目 被嗅探的流量 观察题目信息,猜测可能是通过http网址传输文件,也可以查询内网ip进行筛查 过滤http协议,发现upload.php路径 查询POST提交请求 在第二条数据里…

【Python报错已解决】NameError: name ‘reload‘ is not defined

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

开学季好物合集!带你揭秘2024最全数码好物清单!学生党必看!

开学季总是令人充满期待与憧憬。对于学生党来说,拥有合适的学习装备和数码好物,不仅能提升学习效率,还能为校园生活增添诸多便利与乐趣。在科技飞速发展的今天,数码产品的更新换代日新月异,市场上琳琅满目的数码好物让…

数据结构算法题

目录 轮转数组原地移除数组中所有元素val删除有序数组中的重复项合并两个有序数组 轮转数组 思路1: 1.利用循环将最后一位数据放到临时变量(n)中 2.利用第二层循环将数据往后移一位 3.将变量(n)的数据放到数组第一位 时…

slam入门学习笔记

SLAM是Simultaneous localization and mapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题,目前广泛用于机器人定位导航领域,VR/AR方面,无人机领域,无人驾驶领域…

9.23每日作业

仿照string类&#xff0c;自己手动实现 My_string list.h #ifndef LIST_H #define LIST_H #include <iostream>using namespace std;class My_string { private:char *ptr;int size;int len;public://无参构造My_string();//有参构造My_string(const char * src);My_st…

哈希——字符串哈希

回顾/本期梗概 上期我们学习了图论基础&#xff08;空降链接&#xff09;&#xff0c;本期我们将学习哈希中的字符串哈希。 1、什么是哈希 哈希算法是&#xff1a;通过哈希函数讲字符串、较大的数等转换为能够用变量表示的或者是直接能作为数组下标的数&#xff0c;通过哈希算法…

代码随想录算法训练营Day13 | 递归遍历、迭代遍历、层序遍历

目录 递归遍历和迭代遍历&#xff1a; 144.二叉树的前序遍历 94.二叉树的中序遍历 145.二叉树的后序遍历 层序遍历&#xff1a; 102.二叉树的层序遍历 107.二叉树的层序遍历Ⅱ 199.二叉树的右视图 637.二叉树的层平均值 429.N叉树的层序遍历 515.在每个树行中找最大…

计算机组成体系与组成结构错题解析【软考】

目录 前言进制转换码制补码 CPU的组成输入/输出技术中断相关概念输入/输出技术的三种方式比较周期相关知识 主存编址计算流水线技术层次化存储体系可靠性 前言 本文专门用来记录本人在做软考中有关计算机上组成体系与组成结构的错题&#xff0c;我始终认为教学相长是最快提高的…

0-1开发自己的obsidian plugin DAY 2

今天上午解决了三个问题 1. typescript长得丑/一片飘红/格式检查太严格 在vscode的settings里搜索下面这个然后false掉&#xff1a; "typescript.validate.enable": false 就不会一片飘红了&#xff08;其他下载第三方插件如TSLint和typescript hero的方法都不好使&…

众数信科 AI智能体政务服务解决方案——寻知智能审查系统

政务服务解决方案 寻知智能审查方案 融合检察院起诉文书审查要求 能智能识别文书格式、内容缺失等错误 标记出不符合数百项监督提示点的内容 给出法律依据&#xff0c;正确率95% 3分钟助检察官完成起诉书审查 众数信科AI智能体 产品亮点 分析、理解行业知识和校验规则 A…

828华为云征文 | 云服务器Flexus X实例,基于宝塔搭建Typecho博客平台

828华为云征文 | 云服务器Flexus X实例&#xff0c;基于宝塔搭建Typecho博客平台 宝塔面板配置 华为云 Flexus X 实例购买 Flexus云服务器X实例-华为云 (huaweicloud.com) 1、下载宝塔面板&#xff0c;大约需要1~2分钟左右 yum install -y wget && wget -O install.sh…