Что ж, это может показаться очень простым, простым и многократно задаваемым вопросом, но если бы в сети был ответ для решения моей проблемы, я бы нашел его в предыдущем5 (!) Дней тщательных исследований и неудачных попыток.
Я получаю сообщение об ошибке 413 от NGINX, когда пытаюсь загрузить немного большие файлы (работает до ~ 8-10 МБ, но не обязательно для каждого файла) в WordPress.Что я сделал:
- (Выполнение чистой установки WP около 4 раз)
- Проверенные права доступа к каталогу
- Изменено
client_max_body_size
ВЕЗДЕ (даже выполнено полное-текстовый поиск на моем сервере, чтобы изменить его практически везде, даже установить его на 0 везде, чтобы временно полностью отключить ограничение) - Изменены значения конфигурации PHP (да, я убедился, что это правильный php.ini и да, он правильно загружен)
- Попытался добавить
client_body_in_file_only clean;
client_body_buffer_size 32K;
- Убедитесь, что в журналах NGINX НЕТ ОШИБКИ ... (действительно нет)
- ПровереноНастройки PHP FPM
Да, я перезагружал NGINX и PHP (PHP7.2-FPM) каждый раз, когда вносил изменения в любые конфигурации.Я уже несколько часов гуглю и не знаю, что делать ... То, что я сделал, даже НАМНОГО БОЛЬШЕ, чем обычно нужно, чтобы запустить этот ... Не говоря уже о том, что в моем Laravel все хорошоприложение на сервере (куда я также загружаю большие файлы) ... Я действительно начинаю сомневаться в себе ... Вот мой nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
client_max_body_size 0;
client_body_in_file_only clean;
client_body_buffer_size 32K;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
Это мой файл конфигурации сервера NGINX (да, я сделалуверен, что он правильно загружен):
upstream php {
server unix:/var/run/php/php7.2-fpm.sock;
server 127.0.0.1:9000;
}
server {
root /var/www/wp;
index index.php;
server_name www.example.com example.com;
client_max_body_size 0;
location / {
client_max_body_size 0;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
client_max_body_size 0;
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_connect_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_send_timeout 300s;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
client_max_body_size 0;
if ($scheme != https) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name example.com www.example.com;
listen 80;
return 404; # managed by Certbot
}
Хорошо ... Надеюсь, что может быть хитрость, чтобы заставить это работать ... Я так отчаялся ...: - /
РЕДАКТИРОВАТЬ: Это вывод заголовков Live HTTP (точное содержимое cookie
)
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: www.example.com:443
Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: wordpress_sec_f828006c09c634a9c87995108de4c055=xxxx; wp-settings-time-1=xxxx; spcsrf=xxxx;andsomemorecookieshere
Origin: https://www.example.com
Referer: https://www.example.com/wp-admin/upload.php
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
X-Requested-With: XMLHttpRequest
HTTP/1.1 200
access-control-allow-credentials: true
access-control-allow-origin: https://www.example.com
access-control-allow-origin: *
cache-control: no-cache, must-revalidate, max-age=0
content-type: application/json; charset=UTF-8
date: Tue, 29 Jan 2019 11:36:35 GMT
expires: Wed, 11 Jan 1984 05:00:00 GMT
referrer-policy: strict-origin-when-cross-origin
server: fbs
set-cookie: spcsrf=cf0870b291b52a7c657c5d3f098b8f6f; Expires=Tue, 29-Jan-19 13:36:35 GMT; Path=/; HttpOnly; SameSite=Strict
status: 200
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-hw: 1548761795.cds116.fr8.hc,1548761795.cds105.fr8.sc,1548761795.cdn2-wafbe01-fra1.stackpath.systems.-.wx,1548761795.cds105.fr8.p
x-robots-tag: noindex
Я должен также отметить, что эта конкретная страница работает за WAF StackPath (включая CDN и т. Д.).Однако я не нашел бы ЛЮБОГО параметра, чтобы изменить что-либо о максимально допустимом размере для переноса (или подобного), и поиск Google «StackPath WAF 413» или «WAF 413» не дал никаких полезных результатов.