{"id":335,"date":"2026-10-02T11:26:49","date_gmt":"2026-10-02T18:26:49","guid":{"rendered":"https:\/\/hostandtech.com\/kb\/uncategorized\/plesk-413-request-entity-too-large\/"},"modified":"2026-10-02T11:26:49","modified_gmt":"2026-10-02T18:26:49","slug":"plesk-413-request-entity-too-large","status":"publish","type":"post","link":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/","title":{"rendered":"413 Request Entity Too Large in Plesk: How to Raise the Upload Limit (nginx, Apache and PHP)"},"content":{"rendered":"<h2>Overview<\/h2>\n<p>&#8220;413 Request Entity Too Large&#8221; in Plesk means the upload was bigger than nginx is allowed to accept, so it was refused before PHP or your application ever saw it. Fix it in two places for the domain: raise <code class=\"\" data-line=\"\">client_max_body_size<\/code> under <strong>Apache &amp; nginx Settings &gt; Additional nginx directives<\/strong>, then raise <code class=\"\" data-line=\"\">upload_max_filesize<\/code> and <code class=\"\" data-line=\"\">post_max_size<\/code> in the domain&#8217;s <strong>PHP Settings<\/strong>. If the 413 page doesn&#8217;t say nginx, ModSecurity or a CDN is the one blocking it.<\/p>\n<p>This guide is for Plesk Obsidian on Linux, on a VPS or dedicated server, where an upload of a large image, video, plugin, theme or database dump fails. Every request passes through up to four gates, each with its own size limit, and raising only one of them is why so many fixes &#8220;don&#8217;t work&#8221;. You&#8217;ll find which gate stopped the upload, raise it, and test the result with a real file instead of guessing.<\/p>\n<figure class=\"wp-block-image\"><img src=\"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/10\/plesk-upload-limits-four-gates-diagram.webp\" alt=\"Diagram of the four upload size limits in Plesk: CDN, nginx client_max_body_size, Apache and ModSecurity, then PHP post_max_size and upload_max_filesize, with the error each one shows\" width=\"1000\" height=\"600\" loading=\"lazy\" decoding=\"async\"><figcaption>An upload must fit through every gate. The first one that&#8217;s too small decides the error you see.<\/figcaption><\/figure>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>Plesk administrator access, or a customer account with permission to change PHP and web server settings.<\/li>\n<li>SSH root access for the testing and log steps (optional but much faster).<\/li>\n<li>The size you need. Pick a value a little above your largest real upload, such as 256 MB for site backups. Setting everything to unlimited makes it easy for anyone to fill your disk.<\/li>\n<\/ul>\n<h2>Step 1: Find out which gate refused the upload<\/h2>\n<p>Look at the error page and the logs before changing anything.<\/p>\n<table>\n<thead>\n<tr>\n<th>What you see<\/th>\n<th>Who refused it<\/th>\n<th>Fix<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>413 page with <code class=\"\" data-line=\"\">nginx<\/code> at the bottom<\/td>\n<td>nginx<\/td>\n<td>Step 2<\/td>\n<\/tr>\n<tr>\n<td>413 or 403 from Apache, or a ModSecurity entry in the log<\/td>\n<td>Apache or ModSecurity<\/td>\n<td>Step 4<\/td>\n<\/tr>\n<tr>\n<td>Your CDN&#8217;s branded 413 page<\/td>\n<td>The CDN, before your server<\/td>\n<td>Upload directly or raise the CDN limit<\/td>\n<\/tr>\n<tr>\n<td>&#8220;The uploaded file exceeds the upload_max_filesize directive in php.ini&#8221; or a silent empty form<\/td>\n<td>PHP<\/td>\n<td>Step 3<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Over SSH, the domain&#8217;s logs tell you directly. Replace <code class=\"\" data-line=\"\">example.com<\/code> with your domain:<\/p>\n<div class='ht-code-snippet'><button class='ht-code-snippet__copy' onclick='htCopyCode(\"code-block-1\")' type='button' aria-label='Copy code'><svg class='ht-copy-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z'><\/path><path d='M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z'><\/path><\/svg><svg class='ht-check-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M13,24l-9-9,1.414-1.414L13,21.171,26.586,7.586,28,9Z'><\/path><\/svg><\/button><span class='ht-code-snippet__feedback'>Copied to clipboard<\/span><\/p>\n<pre class='ht-code-snippet__code' id='code-block-1'><code class=\"\" data-line=\"\">grep -i &quot;too large body&quot; \/var\/www\/vhosts\/system\/example.com\/logs\/proxy_error_log | tail -5\ngrep -i &quot;ModSecurity&quot; \/var\/www\/vhosts\/system\/example.com\/logs\/error_log | tail -5<\/code><\/pre>\n<\/div>\n<p>A line containing <code class=\"\" data-line=\"\">client intended to send too large body: 104857600 bytes<\/code> is nginx, and it tells you the exact size of the failed upload. These logs are also in Plesk under <strong>Websites &amp; Domains &gt; example.com &gt; Logs<\/strong>.<\/p>\n<h2>Step 2: Raise the nginx limit for the domain<\/h2>\n<ol>\n<li>Go to <strong>Websites &amp; Domains<\/strong> and open the domain.<\/li>\n<li>Click <strong>Apache &amp; nginx Settings<\/strong> (on the <strong>Hosting &amp; DNS<\/strong> tab in recent Plesk versions).<\/li>\n<li>Scroll to <strong>Additional nginx directives<\/strong> and add the line below.<\/li>\n<li>Click <strong>OK<\/strong>. Plesk tests the configuration and reloads nginx.<\/li>\n<\/ol>\n<div class='ht-code-snippet'><button class='ht-code-snippet__copy' onclick='htCopyCode(\"code-block-2\")' type='button' aria-label='Copy code'><svg class='ht-copy-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z'><\/path><path d='M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z'><\/path><\/svg><svg class='ht-check-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M13,24l-9-9,1.414-1.414L13,21.171,26.586,7.586,28,9Z'><\/path><\/svg><\/button><span class='ht-code-snippet__feedback'>Copied to clipboard<\/span><\/p>\n<pre class='ht-code-snippet__code' id='code-block-2'><code class=\"\" data-line=\"\">client_max_body_size 256m;<\/code><\/pre>\n<\/div>\n<p>If Plesk refuses with <code class=\"\" data-line=\"\">&quot;client_max_body_size&quot; directive is duplicate<\/code>, the value is already being written for this domain from another setting. See the troubleshooting section below.<\/p>\n<p>To confirm what nginx is really using after the change:<\/p>\n<div class='ht-code-snippet'><button class='ht-code-snippet__copy' onclick='htCopyCode(\"code-block-3\")' type='button' aria-label='Copy code'><svg class='ht-copy-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z'><\/path><path d='M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z'><\/path><\/svg><svg class='ht-check-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M13,24l-9-9,1.414-1.414L13,21.171,26.586,7.586,28,9Z'><\/path><\/svg><\/button><span class='ht-code-snippet__feedback'>Copied to clipboard<\/span><\/p>\n<pre class='ht-code-snippet__code' id='code-block-3'><code class=\"\" data-line=\"\">nginx -T 2&gt;\/dev\/null | grep -n client_max_body_size<\/code><\/pre>\n<\/div>\n<h2>Step 3: Raise the PHP limits<\/h2>\n<p>nginx now lets the upload through, but PHP has its own ceiling. Open the domain&#8217;s <strong>PHP Settings<\/strong> (in recent Plesk versions it&#8217;s on the domain&#8217;s <strong>Dashboard<\/strong> or <strong>Dev Tools<\/strong> tab, or click the PHP version shown for the domain) and set:<\/p>\n<table>\n<thead>\n<tr>\n<th>Setting<\/th>\n<th>Example value<\/th>\n<th>Why<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code class=\"\" data-line=\"\">upload_max_filesize<\/code><\/td>\n<td>256M<\/td>\n<td>Largest single file<\/td>\n<\/tr>\n<tr>\n<td><code class=\"\" data-line=\"\">post_max_size<\/code><\/td>\n<td>264M<\/td>\n<td>Whole request, so slightly larger than the file<\/td>\n<\/tr>\n<tr>\n<td><code class=\"\" data-line=\"\">memory_limit<\/code><\/td>\n<td>256M<\/td>\n<td>Enough to process what was uploaded<\/td>\n<\/tr>\n<tr>\n<td><code class=\"\" data-line=\"\">max_execution_time<\/code><\/td>\n<td>300<\/td>\n<td>Time for the script to handle the file<\/td>\n<\/tr>\n<tr>\n<td><code class=\"\" data-line=\"\">max_input_time<\/code><\/td>\n<td>300<\/td>\n<td>Time allowed to receive the upload on slow connections<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Pick <strong>Custom<\/strong> for any value not in the drop-down, then click <strong>OK<\/strong>. If the domain&#8217;s PHP handler runs under a service plan with locked settings, change the plan instead (<strong>Service Plans &gt; plan &gt; PHP Settings<\/strong>) so the change isn&#8217;t reverted on the next sync. For more on handlers and versions, see <a href=\"https:\/\/hostandtech.com\/kb\/plesk-linux\/how-to-manage-php-versions-in-plesk\/\">managing PHP versions in Plesk<\/a>.<\/p>\n<p>To check the values PHP actually loaded, create a temporary file in the site&#8217;s document root:<\/p>\n<div class='ht-code-snippet'><button class='ht-code-snippet__copy' onclick='htCopyCode(\"code-block-4\")' type='button' aria-label='Copy code'><svg class='ht-copy-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z'><\/path><path d='M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z'><\/path><\/svg><svg class='ht-check-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M13,24l-9-9,1.414-1.414L13,21.171,26.586,7.586,28,9Z'><\/path><\/svg><\/button><span class='ht-code-snippet__feedback'>Copied to clipboard<\/span><\/p>\n<pre class='ht-code-snippet__code' id='code-block-4'><code class=\"\" data-line=\"\">&lt;?php phpinfo();<\/code><\/pre>\n<\/div>\n<p>Save it as <code class=\"\" data-line=\"\">info-7f3k.php<\/code>, open it in a browser and search for <code class=\"\" data-line=\"\">upload_max_filesize<\/code> and <code class=\"\" data-line=\"\">post_max_size<\/code>. <strong>Delete it straight afterwards<\/strong>; it shows a lot about your server.<\/p>\n<h2>Step 4: Apache and ModSecurity (only if they blocked it)<\/h2>\n<p>Apache 2.4.53 and later already allow request bodies up to 1 GB by default, so Apache itself is rarely the limit unless someone set <code class=\"\" data-line=\"\">LimitRequestBody<\/code> lower. ModSecurity is the usual suspect. Its default request body limit is about 12.5 MB, and when it blocks you&#8217;ll see a log line mentioning <code class=\"\" data-line=\"\">Request body (Content-Length) is larger than the configured limit<\/code>.<\/p>\n<p>Raise it for one domain under <strong>Apache &amp; nginx Settings &gt; Additional Apache directives<\/strong>, in both the HTTP and HTTPS boxes:<\/p>\n<div class='ht-code-snippet'><button class='ht-code-snippet__copy' onclick='htCopyCode(\"code-block-5\")' type='button' aria-label='Copy code'><svg class='ht-copy-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z'><\/path><path d='M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z'><\/path><\/svg><svg class='ht-check-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M13,24l-9-9,1.414-1.414L13,21.171,26.586,7.586,28,9Z'><\/path><\/svg><\/button><span class='ht-code-snippet__feedback'>Copied to clipboard<\/span><\/p>\n<pre class='ht-code-snippet__code' id='code-block-5'><code class=\"\" data-line=\"\">&lt;IfModule mod_security2.c&gt;\n    SecRequestBodyLimit 268435456\n&lt;\/IfModule&gt;\nLimitRequestBody 268435456<\/code><\/pre>\n<\/div>\n<p>268435456 bytes is 256 MB. Don&#8217;t switch ModSecurity off for the whole site to get one upload through; you lose its protection for every other request.<\/p>\n<h2>Step 5: Test with a real file<\/h2>\n<p>Rather than clicking upload and waiting, send a test request of a known size from the server or your own computer:<\/p>\n<div class='ht-code-snippet'><button class='ht-code-snippet__copy' onclick='htCopyCode(\"code-block-6\")' type='button' aria-label='Copy code'><svg class='ht-copy-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z'><\/path><path d='M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z'><\/path><\/svg><svg class='ht-check-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M13,24l-9-9,1.414-1.414L13,21.171,26.586,7.586,28,9Z'><\/path><\/svg><\/button><span class='ht-code-snippet__feedback'>Copied to clipboard<\/span><\/p>\n<pre class='ht-code-snippet__code' id='code-block-6'><code class=\"\" data-line=\"\">fallocate -l 200M \/tmp\/upload-test.bin\ncurl -s -o \/dev\/null -w &#039;%{http_code}&#039; -F &quot;file=@\/tmp\/upload-test.bin&quot; https:\/\/example.com\/ ; echo\nrm \/tmp\/upload-test.bin<\/code><\/pre>\n<\/div>\n<p>A <code class=\"\" data-line=\"\">413<\/code> means a gate is still too small. Any other code, including <code class=\"\" data-line=\"\">200<\/code>, <code class=\"\" data-line=\"\">403<\/code> or <code class=\"\" data-line=\"\">405<\/code>, means the body got through nginx; your application simply didn&#8217;t expect a file at that URL. Finish with a real upload in your application.<\/p>\n<h2>Troubleshooting<\/h2>\n<h3>Invalid nginx configuration: &#8220;client_max_body_size&#8221; directive is duplicate<\/h3>\n<p>Plesk already writes a <code class=\"\" data-line=\"\">client_max_body_size<\/code> line for this domain, so adding a second one in the same block fails the config test. Find where it comes from:<\/p>\n<div class='ht-code-snippet'><button class='ht-code-snippet__copy' onclick='htCopyCode(\"code-block-7\")' type='button' aria-label='Copy code'><svg class='ht-copy-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z'><\/path><path d='M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z'><\/path><\/svg><svg class='ht-check-icon' viewBox='0 0 32 32' width='16' height='16' fill='currentColor'><path d='M13,24l-9-9,1.414-1.414L13,21.171,26.586,7.586,28,9Z'><\/path><\/svg><\/button><span class='ht-code-snippet__feedback'>Copied to clipboard<\/span><\/p>\n<pre class='ht-code-snippet__code' id='code-block-7'><code class=\"\" data-line=\"\">grep -rn client_max_body_size \/var\/www\/vhosts\/system\/example.com\/conf\/ \/etc\/nginx\/conf.d\/ \/etc\/nginx\/plesk.conf.d\/ 2&gt;\/dev\/null<\/code><\/pre>\n<\/div>\n<p>If the existing value comes from a field on the <strong>Apache &amp; nginx Settings<\/strong> page, change it there instead of adding a directive. If it&#8217;s in a custom file under <code class=\"\" data-line=\"\">\/etc\/nginx\/conf.d\/<\/code> from an earlier fix, edit that file, then run <code class=\"\" data-line=\"\">nginx -t<\/code> and <code class=\"\" data-line=\"\">systemctl reload nginx<\/code>.<\/p>\n<h3>The change saved but uploads still fail with 413<\/h3>\n<p>Check the page footer again: if it&#8217;s not nginx any more, a different gate is now the smallest. Also make sure you edited the right site. Subdomains and aliases served as separate domains in Plesk have their own settings. If the site sits behind Cloudflare, uploads larger than 100 MB are refused on the Free and Pro plans no matter what your server allows; upload through a DNS-only (grey cloud) hostname or the server&#8217;s IP instead.<\/p>\n<h3>WordPress: The uploaded file exceeds the upload_max_filesize directive in php.ini<\/h3>\n<p>nginx is fine; PHP is the limit. Repeat Step 3 and confirm with <code class=\"\" data-line=\"\">phpinfo()<\/code>. On a WordPress multisite, also raise <strong>Max upload file size<\/strong> under <strong>Network Admin &gt; Settings<\/strong>, which WordPress enforces on its own.<\/p>\n<h3>504 Gateway Timeout or the upload stops partway through<\/h3>\n<p>The size limit is fine, but the upload takes longer than a timeout. Raise <code class=\"\" data-line=\"\">max_input_time<\/code> and <code class=\"\" data-line=\"\">max_execution_time<\/code> in PHP, and for very large or slow uploads add <code class=\"\" data-line=\"\">client_body_timeout 300s;<\/code> next to <code class=\"\" data-line=\"\">client_max_body_size<\/code> in the nginx directives. If nginx itself won&#8217;t restart after an edit, follow <a href=\"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-nginx-failed-to-start-fix\/\">fixing nginx failed to start in Plesk<\/a>.<\/p>\n<p>Running Plesk yourself on a <a href=\"https:\/\/hostandtech.com\/vps-ssd-servers\">Host &amp; Tech VPS<\/a> gives you root access for every step here. If you&#8217;re setting up a new site, <a href=\"https:\/\/hostandtech.com\/kb\/plesk-linux\/how-to-create-website-in-plesk\/\">creating a website in Plesk<\/a> covers the rest of the hosting settings, and on cPanel servers the same PHP limits live in <a href=\"https:\/\/hostandtech.com\/kb\/whm\/how-to-configure-php-settings-whm-easyapache\/\">WHM&#8217;s PHP configuration<\/a>.<\/p>\n<div class=\"ht-faq-section\">\n<h2>Frequently Asked Questions<\/h2>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">What causes 413 Request Entity Too Large in Plesk?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>The request body is larger than nginx&#8217;s client_max_body_size for that domain, so nginx refuses it before Apache or PHP sees it. Less often, ModSecurity, Apache&#8217;s LimitRequestBody or a CDN such as Cloudflare is the limit instead.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">Where do I change client_max_body_size in Plesk?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>Open the domain in Websites &amp; Domains, go to Apache &amp; nginx Settings and add client_max_body_size 256m; to Additional nginx directives. Plesk tests and reloads nginx when you click OK.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">Do I need to change PHP settings as well?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>Yes. Once nginx accepts the upload, PHP&#8217;s upload_max_filesize and post_max_size must also be large enough, or the upload fails with a PHP error instead of a 413. Set post_max_size slightly larger than upload_max_filesize.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">Why do I still get 413 after changing the settings?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>Another gate is now the smallest: check whether the error page still says nginx, look for ModSecurity entries in the domain&#8217;s error log, and remember Cloudflare&#8217;s Free and Pro plans cap uploads at 100 MB regardless of your server.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">Is it safe to set the upload limit to unlimited?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>It is not recommended. An unlimited body size lets anyone send huge requests that tie up the server or fill the disk. Set a limit a little above your largest real upload.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Find which of the four upload gates refused the file, raise client_max_body_size in the domain&#8217;s nginx directives, match the PHP limits, fix ModSecurity if it&#8217;s involved, and prove it with a test upload.<\/p>\n","protected":false},"author":1,"featured_media":323,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[61],"tags":[154,53,62,156,194],"class_list":["post-335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plesk-linux","tag-nginx","tag-php","tag-plesk","tag-plesk-linux","tag-plesk-obsidian"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>413 Request Entity Too Large in Plesk: Raise the Upload Limit<\/title>\n<meta name=\"description\" content=\"Fix 413 Request Entity Too Large in Plesk: find which limit refused the upload, raise nginx client_max_body_size, PHP and ModSecurity, then test it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"413 Request Entity Too Large in Plesk: Raise the Upload Limit\" \/>\n<meta property=\"og:description\" content=\"Fix 413 Request Entity Too Large in Plesk: find which limit refused the upload, raise nginx client_max_body_size, PHP and ModSecurity, then test it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/\" \/>\n<meta property=\"og:site_name\" content=\"Host And Tech knowledge base\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/stshostandtech\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-02T18:26:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/10\/plesk-413-request-entity-too-large.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@stshostandtech\" \/>\n<meta name=\"twitter:site\" content=\"@stshostandtech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/person\\\/b6fa79c48ddaba71af32e395c5b017ee\"},\"headline\":\"413 Request Entity Too Large in Plesk: How to Raise the Upload Limit (nginx, Apache and PHP)\",\"datePublished\":\"2026-10-02T18:26:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/\"},\"wordCount\":1386,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/plesk-413-request-entity-too-large.webp\",\"keywords\":[\"nginx\",\"PHP\",\"plesk\",\"plesk linux\",\"plesk-obsidian\"],\"articleSection\":[\"Plesk on Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/\",\"name\":\"413 Request Entity Too Large in Plesk: Raise the Upload Limit\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/plesk-413-request-entity-too-large.webp\",\"datePublished\":\"2026-10-02T18:26:49+00:00\",\"description\":\"Fix 413 Request Entity Too Large in Plesk: find which limit refused the upload, raise nginx client_max_body_size, PHP and ModSecurity, then test it.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/plesk-413-request-entity-too-large.webp\",\"contentUrl\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/plesk-413-request-entity-too-large.webp\",\"width\":1200,\"height\":630,\"caption\":\"A 240 MB upload blocked at the nginx gate with a 413 error before it reaches Apache, PHP and the website\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/plesk-linux\\\/plesk-413-request-entity-too-large\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"413 Request Entity Too Large in Plesk: How to Raise the Upload Limit (nginx, Apache and PHP)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#website\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/\",\"name\":\"Host And Tech knowledge base\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#organization\",\"name\":\"Host And Tech knowledge base\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/logo-dark.png\",\"contentUrl\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/logo-dark.png\",\"width\":1134,\"height\":395,\"caption\":\"Host And Tech knowledge base\"},\"image\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/stshostandtech\",\"https:\\\/\\\/x.com\\\/stshostandtech\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/person\\\/b6fa79c48ddaba71af32e395c5b017ee\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\\\/\\\/hostandtech.com\\\/kb\"],\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/author\\\/admin_fjj7qydm\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"413 Request Entity Too Large in Plesk: Raise the Upload Limit","description":"Fix 413 Request Entity Too Large in Plesk: find which limit refused the upload, raise nginx client_max_body_size, PHP and ModSecurity, then test it.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/","og_locale":"en_US","og_type":"article","og_title":"413 Request Entity Too Large in Plesk: Raise the Upload Limit","og_description":"Fix 413 Request Entity Too Large in Plesk: find which limit refused the upload, raise nginx client_max_body_size, PHP and ModSecurity, then test it.","og_url":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/","og_site_name":"Host And Tech knowledge base","article_publisher":"https:\/\/www.facebook.com\/stshostandtech","article_published_time":"2026-10-02T18:26:49+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/10\/plesk-413-request-entity-too-large.webp","type":"image\/webp"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@stshostandtech","twitter_site":"@stshostandtech","twitter_misc":{"Written by":"admin","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#article","isPartOf":{"@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/"},"author":{"name":"admin","@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/person\/b6fa79c48ddaba71af32e395c5b017ee"},"headline":"413 Request Entity Too Large in Plesk: How to Raise the Upload Limit (nginx, Apache and PHP)","datePublished":"2026-10-02T18:26:49+00:00","mainEntityOfPage":{"@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/"},"wordCount":1386,"commentCount":0,"publisher":{"@id":"https:\/\/hostandtech.com\/kb\/#organization"},"image":{"@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#primaryimage"},"thumbnailUrl":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/10\/plesk-413-request-entity-too-large.webp","keywords":["nginx","PHP","plesk","plesk linux","plesk-obsidian"],"articleSection":["Plesk on Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/","url":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/","name":"413 Request Entity Too Large in Plesk: Raise the Upload Limit","isPartOf":{"@id":"https:\/\/hostandtech.com\/kb\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#primaryimage"},"image":{"@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#primaryimage"},"thumbnailUrl":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/10\/plesk-413-request-entity-too-large.webp","datePublished":"2026-10-02T18:26:49+00:00","description":"Fix 413 Request Entity Too Large in Plesk: find which limit refused the upload, raise nginx client_max_body_size, PHP and ModSecurity, then test it.","breadcrumb":{"@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#primaryimage","url":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/10\/plesk-413-request-entity-too-large.webp","contentUrl":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/10\/plesk-413-request-entity-too-large.webp","width":1200,"height":630,"caption":"A 240 MB upload blocked at the nginx gate with a 413 error before it reaches Apache, PHP and the website"},{"@type":"BreadcrumbList","@id":"https:\/\/hostandtech.com\/kb\/plesk-linux\/plesk-413-request-entity-too-large\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hostandtech.com\/kb\/"},{"@type":"ListItem","position":2,"name":"413 Request Entity Too Large in Plesk: How to Raise the Upload Limit (nginx, Apache and PHP)"}]},{"@type":"WebSite","@id":"https:\/\/hostandtech.com\/kb\/#website","url":"https:\/\/hostandtech.com\/kb\/","name":"Host And Tech knowledge base","description":"","publisher":{"@id":"https:\/\/hostandtech.com\/kb\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hostandtech.com\/kb\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/hostandtech.com\/kb\/#organization","name":"Host And Tech knowledge base","url":"https:\/\/hostandtech.com\/kb\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/logo\/image\/","url":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/05\/logo-dark.png","contentUrl":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/05\/logo-dark.png","width":1134,"height":395,"caption":"Host And Tech knowledge base"},"image":{"@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/stshostandtech","https:\/\/x.com\/stshostandtech"]},{"@type":"Person","@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/person\/b6fa79c48ddaba71af32e395c5b017ee","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/hostandtech.com\/kb"],"url":"https:\/\/hostandtech.com\/kb\/author\/admin_fjj7qydm\/"}]}},"_links":{"self":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/posts\/335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/comments?post=335"}],"version-history":[{"count":0,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/posts\/335\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/media\/323"}],"wp:attachment":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/media?parent=335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/categories?post=335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/tags?post=335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}