目录

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

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

https://i-blog.csdnimg.cn/direct/e3622d7afff249dfa91c3282171008eb.png

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

https://i-blog.csdnimg.cn/direct/c721a098243046f8aa232fcc4114b6c5.png

这张图片展示了一个基于 域名解析(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 和部署服务,实践这种架构的基本原理。