请教一个前端项目 Docker+Nginx 部署的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nxgh
V2EX    前端开发

请教一个前端项目 Docker+Nginx 部署的问题

  •  
  •   nxgh 282 天前 1630 次点击
    这是一个创建于 282 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前端使用 Nuxt.js 打包为 SPA ,使用 docker + Nginx 部署,生产环境有个文件上传接口报错, 接口使用 Nginx 反代到 Java 服务 报错信息为: { "message": "An unexpected error occurred", "request_id": "b7aa8b336db52027b752634d9fba3b47" } 接口是传统的 POST + FormData 形式,此时 nginx 日志里也没有这个请求 在添加手动添加 heade 头 Content-Type: multiprt/form-data 后报错会消失,但此时后台没有接收到 body 同时使用 postman 可以调通,nginx 也有日志信息 Nginx 关于文件上传相关的配置应该都配置上了,测试环境正常访问, 怀疑是 https 的问题, 之前部署过的项目都是上传请求都是 http1.1 ,这个是 h2

    人麻了

    15 条回复    2024-12-31 16:47:14 +08:00
    itechify
        1
    itechify  
    PRO
       282 天前
    nginx 的过敏配置贴一下
    Suaxi
        3
    Suaxi  
       282 天前 via Android
    此时 nginx 日志里也没有这个请求

    但此时后台没有接收到 body 同时使用 postman 可以调通

    看描述有点乱,建议分别贴一下 nginx 的配置,error log ,java 服务端有报错的全量栈信息也可以贴一下

    ps: 1. postman/swagger 等等直接调接口能调通,检查一下前端的统一请求拦截(一般文件上传和普通的 crud 接口要分开处理一下)

    2. 如果服务端正确收到了请求(请求顺利通过网关等转发到了对应的服务),但是上传失败,一般在报错的栈信息那就能找到问题

    3. nginx 配置这里一般就是 request_body_size 大小的设置,内部的 http 已经被反代为了 https ,和是否 https 没有太大关系
    evan1
        4
    evan1  
    PRO
       282 天前
    postman 能调通的话应该是前端调用的问题。

    把 postman 的 console 打开看看请求详细信息,request head 、body 等等,对比下前端发起的请求的 head 、body 看看有什么区别。
    nxgh
        5
    nxgh  
    OP
       282 天前
    @Suaxi 原本应该有换行的;


    使用浏览器访问就会返回 [An unexpected error occurred] 没有其他的信息, 此时 nginx 没有关于这个接口的日志,error_log 等级已经设置为 debug 了


    前端请求方式应该啥没问题,测试环境过了而且在报错后试过好几种方式。Nuxt.js 的 $fetch 、和默认的 fetch XHR axios 等


    在不让浏览器自动生成 boundary 参数,手动添加 Content-Type 时,接口能访问通,ngxin 可以看到日志。但是服务端拿不到请求体。
    nxgh
        6
    nxgh  
    OP
       282 天前
    @evan1 对比过,只有协议不一样,postman 发送的是 http1.1 , 浏览器是 h2
    Suaxi
        7
    Suaxi  
       282 天前 via Android
    @nxgh nginx 配置的 default_type 这一行先注释掉试试
    evan1
        8
    evan1  
    PRO
       282 天前
    @nxgh #6 nginx 要配置下 h2.
    majunbo
        9
    majunbo  
       282 天前
    既然是 https ,你 nginx 不应该有 443 的端口配置吗?你上面只有 80 呀。
    nxgh
        10
    nxgh  
    OP
       282 天前
    @majunbo k8s 集群,HTTPS 终止在 Ingress 了
    nxgh
        11
    nxgh  
    OP
       282 天前
    @Suaxi 试过了,也不成
    Suaxi
        12
    Suaxi  
       282 天前 via Android   1
    @nxgh 有权限操作 K8s 的话,请求进来的时候看看 ingress 具体的日志,没权限的话请运维那边帮忙找找问题
    GGbeng1
        13
    GGbeng1  
       282 天前
    你这个配置不是生产的配置吧,看着配置没啥问题
    http2 默认只能在 https 下生效,需要 ssl 后面加个 http2
    会不会是文件大小问题
    Suaxi
        14
    Suaxi  
       282 天前 via Android
    @GGbeng1 看刚刚楼上的描述是请求还没到服务端,在 ingress 那一层就停了
    GGbeng1
        15
    GGbeng1  
       282 天前   1
    @Suaxi #14 如果其他服务都正常,只有上传服务异常,很难不怀疑是不是 proxy-body-size 配置问题,还有没有接入什么 waf 吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1152 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:28 PVG 07:28 LAX 16:28 JFK 19:28
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86