当前位置: 首页 > news >正文

【网络】简单的 Web 服务器架构解析,包含多个服务和反向代理的配置,及非反向代理配置

在这里插入图片描述
这张图片描述了一个简单的 Web 服务器架构,包含多个服务和反向代理的配置。以下是对每个部分的详细解释,帮助你理解其中的技术内容:


1. Web Server: ifn666.com

  • 这是你的主域名(ifn666.com),所有服务都通过这个域名访问。
  • 域名下的不同路径(如 /locallib/carhire/cafe)会被反向代理转发到不同的本地服务。

2. Local Services(本地服务)

本地运行了三个独立的服务,每个服务监听不同的端口:

  • Local lib service

    • 文件路径:/apps/locallib/server.js
    • 监听端口::3000
    • 这是一个本地库服务,可能提供一些本地资源或功能。
  • Car hire service

    • 文件路径:/apps/carhire/server.js
    • 监听端口::3005
    • 这是一个租车服务,可能提供与租车相关的 API 或功能。
  • Cafe service

    • 文件路径:/apps/cafe/server.js
    • 监听端口::3010
    • 这是一个咖啡馆服务,可能提供与咖啡馆相关的 API 或功能。

3. Reverse Proxy(反向代理)

反向代理的作用是将外部请求转发到内部服务。以下是反向代理的配置:

  • Internet

    • :443 HTTPS:外部用户通过 HTTPS(加密的 HTTP 协议)访问你的服务。
    • :80 HTTP:外部用户也可以通过 HTTP(未加密的 HTTP 协议)访问你的服务。
  • GET Requests(GET 请求)

    • GET //ifn666.com/locallib/api:外部用户可以通过 ifn666.com/locallib/api 访问本地库服务的 API。
    • GET //ifn666.com/carhire/api:外部用户可以通过 ifn666.com/carhire/api 访问租车服务的 API。
    • GET //ifn666.com/cafe/api:外部用户可以通过 ifn666.com/cafe/api 访问咖啡馆服务的 API。
  • Reverse Proxy Configuration(反向代理配置)

    • 反向代理根据请求的路径将请求转发到不同的本地服务:
      • handle /locallib/*:匹配以 /locallib 开头的请求,去掉前缀 /locallib,然后转发到 localhost:3000
      • handle /carhire/*:匹配以 /carhire 开头的请求,去掉前缀 /carhire,然后转发到 localhost:3005
      • handle /cafe/*:匹配以 /cafe 开头的请求,去掉前缀 /cafe,然后转发到 localhost:3010

4. 详细解释每个语句

  • Listening on :3000:本地库服务在端口 3000 上监听请求。
  • Listening on :3005:租车服务在端口 3005 上监听请求。
  • Listening on :3010:咖啡馆服务在端口 3010 上监听请求。
  • handle /locallib/*:反向代理会处理所有以 /locallib 开头的请求。
  • url strip_prefix /locallib:在转发请求之前,去掉路径中的 /locallib 前缀。
  • reverse_proxy localhost:3000:将请求转发到本地运行的端口 3000 的服务。

5. 初学者如何理解

  • 域名和路径ifn666.com 是你的网站域名,/locallib/carhire/cafe 是网站的不同部分。
  • 端口:每个服务运行在本地不同的端口上(如 3000、3005、3010),端口是计算机上用于区分不同服务的数字。
  • 反向代理:反向代理就像一个“中间人”,它接收外部请求,然后根据请求的路径将请求转发到正确的本地服务。
  • HTTPS 和 HTTP:HTTPS 是加密的网络协议,HTTP 是未加密的网络协议。通常建议使用 HTTPS 以保护数据安全。

6. 总结

  • 这张图片展示了一个简单的 Web 服务器架构,包含多个本地服务和一个反向代理。
  • 反向代理的作用是将外部请求根据路径转发到不同的本地服务。
  • 每个服务监听不同的端口,提供不同的功能(如本地库、租车、咖啡馆)。

在这里插入图片描述
这张图片展示了一个基于 域名解析(DNS)独立服务器 的架构,没有使用反向代理。以下是对图片内容的详细分析,以及作为初学者如何理解这些技术。


1. 域名解析(DNS)

  • 域名:每个服务都有一个独立的域名,例如:
    • locallib.n123.ifn666.com
    • carhire.n123.ifn666.com
    • cafe.n123.ifn666.com
  • IP 地址:每个域名对应一个独立的 IP 地址,例如:
    • locallib.n123.ifn666.com 对应 186.94.58.23
    • carhire.n123.ifn666.com 对应 186.94.58.24
    • cafe.n123.ifn666.com 对应 186.94.58.25
  • 作用:DNS 将域名转换为 IP 地址,客户端通过域名访问服务时,DNS 会将其解析为对应的 IP 地址。

2. 独立服务器架构

  • 每个服务运行在独立的服务器上,每个服务器有自己的 IP 地址和端口。
  • 例如:
    • locallib.n123.ifn666.com 运行在 186.94.58.23 上,监听端口 :80(HTTP)和 :443(HTTPS)。
    • carhire.n123.ifn666.com 运行在 186.94.58.24 上,监听端口 :80:443
    • cafe.n123.ifn666.com 运行在 186.94.58.25 上,监听端口 :80:443

3. 不使用反向代理

  • 在这种架构中,没有使用反向代理,每个服务直接通过自己的域名和 IP 地址对外提供服务。
  • 客户端直接访问每个服务的域名,DNS 将其解析为对应的 IP 地址,然后客户端直接与目标服务器通信。

4. 初学者如何理解这种架构?

1. 域名和 IP 地址
  • 域名:类似于“家庭地址”,方便人们记忆(如 locallib.n123.ifn666.com)。
  • IP 地址:类似于“经纬度坐标”,是服务器在网络中的唯一标识(如 186.94.58.23)。
  • DNS:类似于“地图导航”,将域名转换为 IP 地址。
2. 独立服务器
  • 每个服务(如本地库、租车、咖啡馆)运行在独立的服务器上。
  • 每个服务器有自己的 IP 地址和端口,客户端直接访问这些服务器。
3. 不使用反向代理
  • 在这种架构中,没有“中间人”(反向代理),客户端直接与目标服务器通信。
  • 这种架构适合小型系统,但随着服务数量增加,管理起来会变得复杂。

5. 这种架构的优缺点

优点
  • 简单直接:每个服务独立运行,易于理解和部署。
  • 独立性:一个服务的故障不会影响其他服务。
缺点
  • 管理复杂:随着服务数量增加,需要管理多个域名和 IP 地址。
  • 缺乏统一入口:没有反向代理,无法实现负载均衡、路径路由等功能。
  • 安全性较低:每个服务直接暴露在公网,增加了被攻击的风险。

6. 初学者如何实践这种架构?

1. 设置 DNS
  • 在域名注册商(如 GoDaddy、Cloudflare)中,为每个服务添加 DNS 记录,将域名解析到对应的 IP 地址。
2. 部署服务
  • 在每个服务器上部署对应的服务(如本地库、租车、咖啡馆)。
  • 确保服务监听正确的端口(如 :80:443)。
3. 测试访问
  • 使用浏览器或工具(如 curl)访问每个服务的域名,测试是否能正常访问。

7. 与反向代理架构的对比

  • 反向代理架构
    • 使用一个统一的入口(如 ifn666.com)。
    • 反向代理根据路径将请求转发到不同的后端服务。
    • 适合中大型系统,易于扩展和管理。
  • 独立服务器架构
    • 每个服务有自己的域名和 IP 地址。
    • 适合小型系统,简单直接。

8. 总结

  • 这张图片展示了一个基于 DNS 和独立服务器的架构,没有使用反向代理。
  • 每个服务通过独立的域名和 IP 地址对外提供服务。
  • 这种架构简单直接,但随着服务数量增加,管理起来会变得复杂。
  • 初学者可以通过设置 DNS 和部署服务,实践这种架构的基本原理。

相关文章:

  • Java学习------初识JVM体系结构
  • 格雷码.
  • YOLOV8添加ASPP改进
  • Pyhon第五章01:函数的定义和练习
  • Qt 控件概述 QWdiget 1.1
  • 运维面试题(四)
  • C++|范围for
  • OpenCV基础知识
  • 分类操作-06.根据id删除分类
  • JS基础部分
  • 奇安信二面
  • 北京大学第六弹:《DeepSeek应用场景中需要关注的十个安全问题和防范措施》
  • 【论文阅读】Adversarial Patch Attacks on Monocular Depth Estimation Networks
  • 硬件地址反序?用位操作为LED灯序“纠偏”。反转二进制数即可解决
  • TCP/IP协议中三次握手(Three-way Handshake)与四次挥手(Four-way Wave)
  • 2025年跨网文件交换系统推荐:安全的内外网文件传输系统Top10
  • 01-1 音视频知识学习(音频)
  • 【Java代码审计 | 第十四篇】MVC模型、项目结构、依赖管理及配置文件概念详解
  • 九、Prometheus 监控windows(外部)主机
  • How To Change Windows VPS Password
  • 2025年五一档电影新片票房破3亿
  • 女冰队长于柏巍,拒绝被年龄定义
  • 剑指3000亿产业规模,机器人“武林大会”背后的无锡“野望”
  • 七部门联合发布《终端设备直连卫星服务管理规定》
  • 新开发银行如何开启第二个“金色十年”?
  • 现场聆听总书记讲话,“00后”博士和大模型CEO都“热血沸腾”