即使在client_max_body_size 100M之后,仍然会获得413请求实体太大

tob*_*yte 8 ruby-on-rails nginx digital-ocean

我在数字海洋上使用Rails和Nginx并且我一直在尝试上传一个17.6 MB的文件,413 Request Entity Too Large在设置client_max_body_size 100M我的/etc/nginx/nginx.conf文件后我仍然得到了.

这是文件的片段:

http {

  ##
  # Basic Settings
  ##

  client_max_body_size 100M;
  sendfile on;
  tcp_nopush on;
  ...
}
Run Code Online (Sandbox Code Playgroud)

设置完之后我就习惯了sudo service nginx reload.当这不起作用时,我甚至使用sudo shutdown -r now然后cap production puma:start从我的本地机器完全重启.我也尝试过client_max_body_size 0;,根据我的理解,应该完全禁用文件大小的检查.什么都行不通.此外,在达到这一点时,我在client_max_body_size语句的位置上犯了一些错误,并且在这些情况下服务器无法正确启动出现"出错"错误,所以我很确定这些更改制作是正确的文件.

有什么我可能会失踪?是否还有其他地方我没有配置这个?我正在配置它的方式是否有一些我缺少的东西?任何指针都将非常感激.

tob*_*yte 16

好的.我想通了.按照数字海洋指南了解如何配置nginx,我正在设置client_max_body_size 100M文件/etc/nginx/nginx.conf.当然,改变那里的东西肯定会影响服务器的功能.特别是当我在那个文件中弄乱一些东西并且服务器停止运行时.

但是,我忘记了在Ubuntu 14.04上使用Capistrano,Nginx和Puma部署Rails应用程序,这是我设置服务器的主要资源,它显示这些参数不是在上面设置nginx.conf而是在我的rails应用程序中设置有一个文件~/my_app/config/nginx.conf,其中的设置参数已包含在语句中

  client_max_body_size 10M;
Run Code Online (Sandbox Code Playgroud)

所以我改变了这个陈述以及/etc/nginx/nginx.conf生产中的文件.瞧!现在我可以上传高达100M的文件.