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

南昌哪里可以做电商网站海外网站推广的公司

南昌哪里可以做电商网站,海外网站推广的公司,深圳高端别墅设计公司,上网站建设文章目录 一,通过域名访问商城架构设计1,为什么nginx要将请求转发给网关2,架构设计 二,配置1,nginx配置1.1 nginx.conf1.2 gulimall.conf1.3 配置原理 2,网关配置 三,记录2个问题1,网…

文章目录

  • 一,通过域名访问商城架构设计
    • 1,为什么nginx要将请求转发给网关
    • 2,架构设计
  • 二,配置
    • 1,nginx配置
      • 1.1 nginx.conf
      • 1.2 gulimall.conf
      • 1.3 配置原理
    • 2,网关配置
  • 三,记录2个问题
    • 1,网关路由匹配实现
    • 2,网关路由配置前后顺序导致的问题
    • 3,nginx.conf upstream配置缺少端口

一,通过域名访问商城架构设计

1,为什么nginx要将请求转发给网关

上一节实现通过Nignx将域名gulimall.com的请求直接转发给产品服务,这样的设计有比较大的缺陷:

  • 管理复杂性:如果需要更改服务的路由规则或负载均衡策略,可能需要在多个地方更新配置。
  • 安全性风险:直接暴露服务的IP地址可能会增加安全风险。

更好的方式是nginx将请求转发给网关,由网关实现路由转发和负载均衡。转发给网关的优势如下:

  • 统一入口:Nginx作为反向代理服务器,提供了一个统一的入口点,所有外部请求首先到达Nginx。
  • 安全性:隐藏了后端服务的真实IP地址,增加了系统的安全性。
  • 灵活性:可以在Nginx层面进行请求的路由、负载均衡、SSL终端等操作。
  • 可扩展性:易于添加新的服务或修改现有服务的路由规则,而不需要更改客户端的访问方式。

2,架构设计

在这里插入图片描述
根据图片,当我们在浏览器输入gulimall.com,nginx将这个请求转发给网关,原理如下:

  1. 本地DNS解析(hosts文件)

    • 在Windows系统的hosts文件中配置域名与虚拟机IP的映射关系。例如,gulimall.comsearch.gulimall.comitem.gulimall.commember.gulimall.com都被指向同一个虚拟机IP地址。这样,当在浏览器中输入这些域名时,系统会将它们解析到指定的虚拟机IP。
  2. Nginx作为网关

    • Nginx被配置为一个网关,用于接收来自上述域名的所有请求。
  3. server块配置

    • 在Nginx配置中,定义了一个server块来监听域名gulimall.com的80端口。这意味着所有HTTP请求都会首先到达这个server块。
  4. 反向代理配置(location块)

    • 在server块中,定义了一个location块,用于匹配根路径/的请求。使用proxy_pass指令将请求转发到内部网络的特定服务上,这里是转发到http://192.168.56.1:10000,即商品服务所在的地址。
  5. 请求处理

    • 当用户访问gulimall.com时,请求首先被发送到配置在hosts文件中的虚拟机IP。
    • 虚拟机上的Nginx监听80端口,接收到请求后,根据配置的location块,将请求转发到内部的商品服务。

二,配置

1,nginx配置

nginx修改两处配置:

  • 在nginx全局配置文件nginx.conf中配置服务器地址
  • 在server块配置文件gulimall.conf中配置负载均衡配置

1.1 nginx.conf

在这里插入图片描述

在nginx.conf中做如下配置。

	upstream gulimall{server 192.168.56.1:88;}   

在这里插入图片描述

1.2 gulimall.conf

在这里插入图片描述
在conf.d目录下的gulimall.conf做如下配置。

	location / {proxy_pass http://gulimall;}

在这里插入图片描述
注意,配置完成要重启docker容器。

1.3 配置原理

  1. location / { … }

    • 这个location块定义了对于根路径/的请求的处理方式。location块可以包含在server块内,用于匹配特定的URI或路径。
    • location /表示匹配所有以根路径开始的请求。
  2. proxy_pass http://gulimall;

    • proxy_pass指令用于设置请求的代理转发目标。这里它指定了请求应该被转发到名为gulimall的上游服务器组(upstream)。注意,这里的http://是可选的,因为proxy_pass默认就是HTTP代理。
  3. upstream gulimall { … }

    • upstream块定义了一个服务器组的名称和一组后端服务器的地址。在这个例子中,gulimall是服务器组的名称。
    • upstream gulimall块内,使用server指令来指定后端服务器的地址和端口。这里的server 192.168.56.1;表示将请求代理到IP地址为192.168.56.1的服务器。默认情况下,如果没有指定端口,则使用80端口。

这两段配置是如何起作用的:

  • 当一个请求到达Nginx,并且请求的URI是根路径/时,Nginx会根据配置的location /块来处理这个请求。
  • location /块中,proxy_pass指令告诉Nginx将请求转发到名为gulimall的上游服务器组。
  • Nginx查找upstream gulimall块,找到后端服务器的列表。在这个例子中,只有一个服务器,即IP地址为192.168.56.1的服务器。
  • Nginx将请求转发到这个后端服务器,由它来处理请求并返回响应。

这种配置方式允许Nginx作为一个反向代理服务器,将请求分发到不同的后端服务。使用upstream可以方便地进行负载均衡和故障转移等操作,而proxy_pass则定义了具体的请求转发行为。

2,网关配置

在网关服务的配置文件中,增加如下配置。

        - id: gulimall-index-routeuri: lb://gulimall-productpredicates:- Host=**.gulimall.com

这段配置的作用是:

  • 当API网关接收到一个HTTP请求时,它会检查请求的Host头部。
  • 如果Host头部匹配**.gulimall.com的模式(即任何子域名的gulimall.com),则这个请求将被路由到名为gulimall-product的服务。
  • 请求将通过负载均衡器发送到后端服务实例,以实现请求分发和故障转移。

配置完成重启网关。

三,记录2个问题

1,网关路由匹配实现

在网关中配置工具域名来进行路由转发,测试发现并未生效,原因是nginx转发请求会丢失域名信息,需要在nginx的server块配置文件gulimall.conf中配置中重设请求头域名信息,配置如下。

在这里插入图片描述

 	location / {proxy_set_header Host $host;proxy_pass http://gulimall;}

2,网关路由配置前后顺序导致的问题

如果将下列配置放在路由配置的最前面,将会出现一些问题。

在这里插入图片描述

路由规则gulimall-index-route使用Host谓词匹配所有以.gulimall.com结尾的请求。

如果这个规则gulimall-index-route放在最前面,可能出现的问题包括:

  1. 匹配优先级问题

    • 路由规则是从上到下匹配的,一旦匹配成功,就不会再考虑下面的规则。如果gulimall-index-route放在最前面,所有.gulimall.com的请求都会被这个规则捕获,即使这些请求的路径可能更适合下面的某个Path谓词规则。
  2. 路径路由失效

    • 由于gulimall-index-route会捕获所有.gulimall.com的请求,其他基于特定API路径(如/api/search/**/api/coupon/**等)的路由规则将不会生效,因为请求在到达这些规则之前已经被gulimall-index-route匹配并路由了。
  3. 服务发现问题

    • 如果gulimall-product服务不能处理所有可能的API请求(例如,它不包含搜索、优惠券、库存等API的实现),那么将所有请求都路由到这个服务将导致错误或不期望的响应。

3,nginx.conf upstream配置缺少端口

重启nginx和网关后,仍然不能正常访问页面,查看nginx日志,发现转发到80端口,而网关是在88端口,说明配置nginx.confupstream配置缺少端口。
在这里插入图片描述

如下图修改之后,即能正常访问。

在这里插入图片描述

http://www.khdw.cn/news/29894.html

相关文章:

  • 如何建设一个专业的网站短视频营销常用平台有
  • 英文网站建设合同项目推广方案怎么写
  • 织梦网站如何生成伪静态现在阳性最新情况
  • wordpress mysql缓存百度seo
  • 成都企业网站设计制作seo公司彼亿营销
  • 毕业设计做网站用什么软件百度快速排名提升
  • wordpress 知鸟seo工程师
  • 天津个人网站建设海南网站制作
  • 平顶山公司做网站app开发流程
  • 辽宁省人民政府令第316号重庆seo排
  • 服装网站设计模板第三方网络营销平台有哪些
  • 日本做的视频网站有哪些问题吗交换链接营销案例
  • 网站规划与建设模板合肥网站优化排名推广
  • 网站漂浮特效流量平台
  • vue做的博客网站cps推广接单平台
  • 专业做网站联系方式软文广告经典案例300
  • seo成功案例分析百度seo营销
  • 网站建设制作设计seo优化珠海seo技巧分享
  • 花钱做的网站本人可以关闭吗专业技能培训机构
  • 很有设计感的企业网站今日头条新闻头条
  • 中介专门做别墅的网站google搜索免费入口
  • 直播课网站怎样做的seo优化关键词0
  • 墨刀可以做网站原型图吗百度网站收录入口
  • 网站seo招聘百度网盘app下载安装官方免费版
  • 个人工作室网站模板重庆seo主管
  • 珠海专业网站制作公今天的特大新闻有哪些
  • 网站变灰百度关键字推广费用
  • 服务型政府与政府网站建设注册一个域名需要多少钱
  • 只有做推广才能搜索到网站吗今天
  • 关于手机的网站有哪些内容吗外贸网站推广服务