spring boot + spring cloud config + hystrix + spring gateway +zuul + nginx 上传图片的一些坑

注意点:

  • zuul 中默认的文件上传大小为 1M
  • nginx 中默认的文件上传大小为 1M

相关问题

场景1:

如果只需要上传1M及以下的文件, 当我们在发送上传图片的请求是会出现以下异常。

spring boot + spring cloud config + hystrix + spring gateway +zuul + nginx 上传图片的一些坑_第1张图片

解决:
gateway.yml对该 serviceroute进行处理

zuul:
  routes:
    app-demo:
      path: /app-demo/**
      url: http://app-demo:8080

##改为

zuul:
  routes:
    app-demo:
      path: /app-demo/**
      serviceId: appDemoUploadImage


appDemoUploadImage:
  ribbon:
    NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
    listOfServers: http://app-demo:8080

场景2:
如果上传图片大于 1M,那么需要

  • 在 nginx 中配置 client_max_body_size xxMB
  • 在当前service项目下的 bootstrap.yml 中添加配置信息(一定要在bootstrap.yml中设置)
spring:
  servlet:
    multipart:
      max-file-size: xxMB
      max-request-size: xxMB
  • 假如我们的上传接口为http://localhost:8080/api/upload,那么我们在上传的时候需要加上 /zuul,即curl -F "[email protected]" http://localhost:8080/zuul/api/upload 才能正确的上传成功

场景3:
当上传图片过大时,会出现 timeout 的异常。
解决:在gateway.yml 中添加超时时长设置

  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 10000 // 以秒为单位

你可能感兴趣的:(spring boot + spring cloud config + hystrix + spring gateway +zuul + nginx 上传图片的一些坑)