谷粒商城实战笔记-nginx问题记录

记录在使用nginx中遇到的问题。

1,网关路由匹配不生效

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

在这里插入图片描述

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

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

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

在这里插入图片描述

路由规则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配置缺少端口。
在这里插入图片描述

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

在这里插入图片描述

4,配置结尾少分号

nginx不能正常工作,查看日志,有如下错误信息。

nginx: [emerg] unexpected "}" in /etc/nginx/conf.d/gulimall.conf:10

在这里插入图片描述

这说明在nginx的配置中,某一行的配置可能缺失了分号,nginx配置规范要求每一行配置要以分号结尾。

在这里插入图片描述

5, proxy_pass 后跟的服务器 URL 是否以 / 结尾

在使用Nginx作为反向代理服务器时,配置的每一个细节都可能影响到代理的效率和行为。

5.1 proxy_pass 后跟URL的结尾

在配置Nginx的proxy_pass指令时,URL的结尾是否包含斜杠/是一个重要的考量点。这将直接影响到被代理服务器接收到的请求路径。

无斜杠结尾的URL

如果代理路径没有以斜杠结尾,例如设置为/hello,当Nginx接收到URL请求https://nginx_server_name/hello/world时,被代理的服务器将会收到完整的请求路径/hello/world

有斜杠结尾的URL

相对地,如果代理路径以斜杠结尾,如/hello/,被代理服务器收到的请求路径将会是/world。这是因为Nginx会将代理路径后面的部分(/hello/)从原始请求URL中剥离。

应用场景

选择哪种方式取决于应用场景。如果希望在同一个域名下通过不同的路径来分配不同的应用程序,推荐使用以斜杠结尾的代理路径。这样,每个应用程序可以独立地处理进入的请求,而无需处理前缀。

5.2 设置Nginx代理的HTTP版本

Nginx的代理模块默认使用HTTP 1.0版本。然而,在某些情况下,你需要将代理的HTTP版本设置为1.1,以支持更现代的HTTP特性,如持久连接。

配置HTTP 1.1

要设置Nginx代理使用HTTP 1.1,你可以在配置文件中添加以下指令:

proxy_http_version 1.1;
proxy_set_header Connection "";

这两条指令指示Nginx在代理请求时使用HTTP 1.1协议,并且通过清除Connection头部来确保与上游服务器的连接可以被适当地管理。

6,静态资源的正确位置

为了提升接口性能,将静态资源放在nginx,比如搜索模块的静态资源应该放在/mydata/nginx/html/static/search目录下,不能少了static

在实操的过程中,路径中少了static导致静态资源不能正常访问,页面不能正常显示。

在这里插入图片描述

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值