tomcat+nginx上传文件配置

我用的 tomcat 搭建的网站,然后用 nginx 做的代理。

问题

网站需要上传文件时出现了一些问题,我上传大约 150M 的视频上传失败。

解决

首先我先想到的是修改 tomcat 配置文件,因为用的这个搭建的网站,查看官方文档后。
文档地址:http://tomcat.apache.org/tomcat-9.0-doc/config/http.html
在这里插入图片描述做了以下修改,Tomcat中修改上传文件大小及上传时间阀值:

  1. 上传文件大小阀值:在server.xml中的connector元素中添加:maxPostSize=”0” ,0表示无限制(可以自己设置大小200m)
  2. 连接时间阀值: 在server.xml中的connector元素中添加:connectonTimeout=“200000”,单位毫秒

默认的大小为2097152,即2M,我修改为200M,即209715200
默认时间为20000,即20秒,我修改为200秒,即200000

在这里插入图片描述
但是问题没有解决。。。。。。

然后发现自己还用了 nginx 做代理,百度 nginx 上传文件大小限制,发现默认的大小只有 1M。
nginx默认安装路径/etc/nginx/ngxin.conf,绿色安装默认路径/usr/local/nginx/conf/nginx.conf,在/usr/local/nginx/conf/nginx.conf配置文件中设置域名,修改部分配置如下:

  1. server 下设置上传文件大小,即所有代理网站路径的上传文件限制都为这么多。

  2. 文件太大,连接时间可能不够,超过连接时间也会错误,所以再相关代理路径下修改连接时间,location / { 即该网站以下所有路径最大连接时间都为这么多。

  3. 最后这个就不怎么重要,就是添加允许的文件格式,创建 location ~ \.(gif|jpg|png|htm|html|css|js|flv|ico|swf|mp4|MOV|MP4)(.*)

    server {
        listen       80;
        server_name  localhost;
        # 上传文件的大小限制
        client_max_body_size 200m;
        # nginx缓存限制
        client_body_buffer_size 200m;
     
        #charset koi8-r;
     
        #access_log  logs/host.access.log  main;
     
        location / {
     		# 连接时间
     		proxy_connect_timeout   600;
         	proxy_send_timeout      600;
         	proxy_read_timeout      600;
                     
     		proxy_pass http://127.0.0.1:8080;
     		proxy_set_header Host      $host;
     		proxy_set_header X-Real-IP $remote_addr;
     		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     		proxy_redirect default;
         }
     
        # 文件类型
        location ~ \.(gif|jpg|png|htm|html|css|js|flv|ico|swf|mp4|MOV|MP4)(.*) {
     		proxy_pass http://127.0.0.1:8080;
     		proxy_redirect default;
     		proxy_set_header Host $host;
        }
    }
    

在这里插入图片描述这样配置过后,然后重新运行 nginx,问题终于解决了。
命令:/usr/local/nginx/sbin/nginx -s reload
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
出现Nginx Tomcat 200MB文件上传504错误通常是由于上传文件的大小超出了服务器允许的最大限制或处理时间过长导致的。以下是可能导致此错误的一些原因和解决方法: 1. 上传文件大小超过服务器限制:NginxTomcat都有默认的上传文件大小限制。你可以通过修改Nginx配置文件中的client_max_body_size参数和Tomcat配置文件中的maxPostSize参数来增加文件上传大小限制。 2. 上传文件处理时间过长:如果上传的文件过大或者网络速度较慢,可能导致Tomcat无法在规定的时间内处理完整个上传过程。你可以通过调整NginxTomcat的超时设置来延长处理时间。 3. 网络问题:上传文件的过程需要通过网络传输,如果网络不稳定或存在其他问题,可能导致上传过程中断。检查网络连接是否正常,或者考虑使用其他更稳定的网络环境。 4. 资源不足:如果服务器的硬件资源不足,如内存或磁盘空间不足,可能导致上传过程中断。确保服务器的硬件资源满足上传文件的需求。 5. 优化服务器配置:根据服务器的实际情况,可能需要对NginxTomcat配置进行优化,如增加线程池大小、调整缓存设置等,以提高服务器的性能和稳定性。 以上是一些可能导致Nginx Tomcat上传200MB文件出现504错误的原因和解决方法。根据具体情况进行适当调整,应该能够解决这个问题。如果问题仍然存在,建议查看相关日志以获取更多详细信息来确定问题所在。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值