Ares_zhaojs 2023-05-30 19:48 采纳率: 0%
浏览 108
已结题

nginx如何解决上传pdf文件,时而成功,时而失败

即使我在 nginx.conf 里把这两个参数设置后
client_body_temp_path /tmp;
client_max_body_size 20m;
依然没什么用,后端用的是php,前端上传被调用时都没到调用后端接口就直接被阻止了不知道是什么原因?

img

img

  • 写回答

12条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-30 22:06
    关注
    获得5.00元问题酬金
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7790185
    • 除此之外, 这篇博客: 关于Nginx如何把nginx.conf配置文件解耦,拆成多个配置文件中的 前言 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 随着nginx的使用,一台服务器下的域名及端口多了以后,在nginx.conf配置文件中就需要不断的配置server。

      久而久之,就会发现nginx.conf特别臃肿。

      所以我在这里对这个nginx.conf进行解耦拆分,让每个端口都有自己独立的配置文件。

    • 以下回答由chatgpt基于相关博客总结生成:

      针对问题中的具体情况,需要考虑以下几个方面:

      1. 关于PDF文件的上传,需要注意nginx.conf中client_max_body_size参数的设置是否允许上传该大小的文件。可以将该参数设置为较大的值(例如100M),以确保PDF文件能够成功上传。
      2. 如果前端上传时一直被阻止,需要检查nginx是否设置了CORS相关的头信息。可以使用add_header命令添加相关头信息。例如,可以添加以下代码:
      location /upload {
          if ($request_method = 'OPTIONS') {
              add_header 'Access-Control-Allow-Origin' '*';
              add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
              add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since';
              add_header 'Access-Control-Max-Age' 1728000;
              add_header 'Content-Type' 'text/plain charset=UTF-8';
              add_header 'Content-Length' 0;
              return 204;
          }
          add_header 'Access-Control-Allow-Origin' '*';
          add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
          add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since';
          if ($request_method = 'POST') {
              add_header 'Access-Control-Expose-Headers' 'X-Requested-With,Content-Type,Content-Length';
              add_header 'Access-Control-Allow-Origin' '*';
          }
          ...
      }
      
      1. 如果PDF文件时而能够成功上传,时而失败,可能是由于后端php的处理方式不够稳定造成的。可以检查后端php代码,尝试优化相关逻辑或者调整PHP配置参数。

      总之,正确的配置nginx参数和添加CORS头信息,以及优化后端逻辑都可以在保证上传PDF文件成功的同时,提高整个系统的稳定性。

    评论

报告相同问题?

问题事件

  • 系统已结题 6月7日
  • 创建了问题 5月30日