需求:
近期要做大文件上傳功能,除了修改前端框架上傳控件jQuery Uploadify的上傳文件限制大小和Spring MVC框架配置的文件上傳模塊中的MultipartResolver中的文件上傳限制大小,還需要去修改Nginx服務器中conf目錄下的nginx.conf配置文件中的client_max_body_size屬性以及Tomcat服務器中conf目錄下的server.xml配置文件中的connectionTimeout屬性、maxPostSize屬性,以上內容就是我做的修改。
問題:
先是修改Nginx服務器和Tomcat服務器的配置,重啟Nginx服務器,再是修改頁面和代碼后重新部署和運行,然后在頁面進行大文件上傳操作,然后提交保存都出現了問題,自己懷疑可能是大文件保存出現了問題,忙著去查看服務器上的日志,接著同事又說文件刪除功能失效,接下來又有同事說網站登錄不上了,輸入正確的驗證碼后報錯說是驗證碼登錄過期,,,,各種問題接踵而至,看了半天的服務器日志沒有發現問題,還是自己看的不仔細,也沒有定位到問題出現在哪里。
排查:
無奈去請求大牛,先是問我修改了哪些東西,我說Nginx服務器和Tomcat服務器的配置我都修改了,大??戳薒inux上的Nginx服務器的配置文件和Tomcat服務器的server.xml配置文件,回頭問我maxPostSize=“0”屬性的配置是什么意思,我說是HTTP的POST請求下的body大小不做限制,如果不設置的話,缺省的情況下是maxPostSize=“2097152”,也就是2M的大小,因為單位是Byte。大牛接著去查看了相關資料,得知可能是Tomcat版本帶來的問題,不同的Tomcat版本maxPostSize屬性設置的可能有差異,知道了問題所在,那么就去著手進行配置了。
解決:
百度了下Tomcat maxPostSize這兩個關鍵詞,很幸運的是第一條就是關于Tomcat不同版本的maxPostSize的設置,

這篇博客內容

看了這篇博客,接著去查看Linux下的項目使用的統一的Tomcat版本,使用的版本是Tomcat 7.0.70,接著看這篇文章你還能說什么,改唄,將屬性maxPostSize修改為-1,代表不限制,重啟Tomcat服務器,重新登錄網站和以上出現的問題都沒有了。
附上這個博主的博客地址:https://www.jb51.net/article/190134.htm
總結:想著昨天出現的這個問題,今天休息正好可以總結一下,接著去看Tomcat官網上的相關文檔,去看下這個問題。如今Tomcat版本更新很快,很多Tomcat7的版本不再好找,我們可以查看最新的Tomcat7版本信息,打開Tomcat官網后,查看
Documention下的Tomcat7.0

接著查看Reference下的Configuration部分

接著查看Connectors下的HTTP部分,這個和Tomcat下的conf中的server.xml配置文件的結構有很大的相關性,只要你很熟悉server.xml配置,那么找到這個不是問題

查看相關屬性,我們就會看到maxPostSize的詳細介紹,這個限制必須設置為小于0的負數才能不限制,缺省下是2097152,也就是2M的大小,單位是Byte。

你要知道以上的介紹僅僅是Tomcat 7.0.86版本的信息

那么我們怎么看Tomcat歷史版本的變化呢,回到剛開始進來的文檔首頁,點擊最下方的Changelog部分,

這里面是Tomcat7所有的歷史版本的變化,我們找到Tomcat 7.0.63版本,可以看到變化的第一項就是關于maxPost屬性的內容,上面的博客的哥們果然是滿滿的干貨,雖然內容少,但是一擊必中啊。

通過以上的總結,如果以后出現類似的問題,排查問題的能力要有所提升,自己總結問題的排查步驟:
- 第一:查看服務器上的各種日志
- 第二:查看服務器上的各種配置文件
- 第三:考慮各個版本的差異,就比如上面的問題,這個前提是你要知道你修改了哪些配置,增加了哪些配置。
總結
到此這篇關于解決Tomcat的maxPostSize屬性的配置需要注意的問題的文章就介紹到這了,更多相關Tomcat的maxPostSize屬性配置內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!