Проблемы при загрузке больших файлов

DreamTails

Проверенные
Сообщения
1,614
Решения
82
Реакции
2,233
Баллы
1,050
Здравствуйте. Сегодня столкнулся с проблемой - загрузка больших файлов идет через раз, а иногда вообще не идет. Что происходит: при попытке загрузить файл больше чем 200 мегабайт - или ничего не происходит, или вываливается ошибка "Oops! We ran into some problems!" (это и заголовок и описание) (эти две ситуации проявляются на firefox) или нужно ооочень долго ждать для загрузки файла (хромиум). Журнал ошибок в движке при этом пуст, как и консоль.
Сервер стоит на CentOS 7 в связке nginx + php-fpm. Для защиты сайта используется cloudflare
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# configuration file /etc/nginx/nginx.conf:
user nginx nginx;
worker_processes 2;
pcre_jit on;
## Add modules
#
#load_module "/usr/lib64/nginx/modules/ngx_http_cache_purge_module.so";
#load_module "/usr/lib64/nginx/modules/ngx_http_push_stream_module.so";
#load_module "/usr/lib64/nginx/modules/ngx_pagespeed.so";
#load_module "/usr/lib64/nginx/modules/ngx_http_brotli_filter_module.so";
#load_module "/usr/lib64/nginx/modules/ngx_http_brotli_static_module.so";
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
}
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'cs=$upstream_cache_status';
charset utf-8;
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
reset_timedout_connection on;
keepalive_timeout 60;
server_tokens off;
server_names_hash_max_size 128;
server_names_hash_bucket_size 256;
client_header_timeout 15m;
client_body_timeout 15m;
send_timeout 15m;
client_max_body_size 700m;
connection_pool_size 256;
client_body_buffer_size 1024k;
client_header_buffer_size 8k;
gzip off;
#proxy_temp_path /var/lib/nginx/proxy 1 2;
#proxy_cache_valid 20s;
#proxy_cache_key $scheme$proxy_host$request_uri$cookie_user;
#proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:400m inactive=120m max_size=500M;
#proxy_cache_min_uses 2;
proxy_cache_valid 10s;
proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=one:100m max_size=300M;
proxy_cache_path /var/lib/nginx/cache1 levels=1:2 keys_zone=two:100m max_size=300M;
proxy_temp_path /var/lib/nginx/proxy 1 2;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_cache_min_uses 2;
limit_conn_zone $binary_remote_addr zone=lone:10m;
limit_req_zone $binary_remote_addr zone=ltwo:10m rate=5r/s;
limit_req_zone $binary_remote_addr zone=lstrict:10m rate=1r/s;
limit_req_zone $binary_remote_addr zone=highspeed:10m rate=10r/s;
fastcgi_cache_path /var/lib/nginx/fpm levels=1:2 keys_zone=fcgi:32m max_size=100m;
fastcgi_cache_path /var/lib/nginx/fpm2 levels=1:2 keys_zone=fcgi2:32m max_size=100m;
# fastcgi_cache_key "$scheme$request_method$host$request_uri$cookie_user";
fastcgi_temp_path /var/lib/nginx/fastcgi 1 2;
fastcgi_ignore_headers Expires Cache-Control;
fastcgi_cache_use_stale error timeout invalid_header;
# fastcgi_param PHP_ADMIN_VALUE "display_errors=off";
limit_conn_zone $binary_remote_addr zone=lfcgi:10m;
limit_req_zone $binary_remote_addr zone=lfsci2:10m rate=5r/s;
resolver 8.8.8.8 8.8.4.4 valid=300s ipv6=off;
resolver_timeout 5s;
map $http_accept $webp_suffix {
"~*webp" ".webp";
}
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See
# for more information.
ModSecurityEnabled off;
ModSecurityConfig modsecurity.conf;
include /etc/nginx/conf.d/*.conf;
index index.php index.html index.htm;
server {
root /var/www/html;
access_log /etc/nginx/vhost_logs/default_access;
error_log /etc/nginx/vhost_logs/default_error;
location / {
root /var/www/html;
index index.php index.html index.htm;
}
}
include /etc/nginx/sites-available/*.conf;
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# root html;
# location / {
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# root html;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# }
#}
}
# configuration file /etc/nginx/mime.types:
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
font/woff woff;
font/woff2 woff2;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
application/vnd.wap.wmlc wmlc;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk; application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
# configuration file /etc/nginx/conf.d/status.conf:
server{
listen 80 default_server;
access_log off;
server_name *айпи убран в целях безопасности*;
server_name_in_redirect off;
root /var/www/html;
location /server-status {
stub_status on;
access_log off;
allow *айпи убран в целях безопасности*;
deny all;
}
}
# configuration file /etc/nginx/sites-available/!!!lamp-ret.fun.conf:

server {
listen *айпи убран в целях безопасности*:80;
server_name lamp-ret.fun www.lamp-ret.fun;
root /home/lamp/sites/lamp-ret.fun;
access_log /etc/nginx/vhost_logs/lamp-ret.fun_access;
error_log /etc/nginx/vhost_logs/lamp-ret.fun_error;
location /install {
auth_basic 'Unauthorized';
auth_basic_user_file /home/lamp/sites/lamp-ret.fun/install/passwd;
}
location ~ /passwd {
deny all;
access_log off;
log_not_found off;
}
include /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun.nginx;
location ~ /.well-known { allow all; }
# location ~* robots.txt { root /etc/nginx; }
location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}
location / {
root /home/lamp/sites/lamp-ret.fun;
include /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun_location.nginx;
}
location ~ \.php$ {
try_files $fastcgi_script_name =404;
root /home/lamp/sites/lamp-ret.fun;
#fastcgi_pass localhost:9011;
fastcgi_pass unix:/var/run/php-fpm/php74w-lamp.sock;
include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/lamp/sites/lamp-ret.fun$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /home/lamp/sites/lamp-ret.fun$fastcgi_script_name;
fastcgi_buffers 8 32k;
fastcgi_buffer_size 4k;
fastcgi_busy_buffers_size 68k;
fastcgi_connect_timeout 120;
fastcgi_read_timeout 900;
fastcgi_send_timeout 900;
fastcgi_cache off;
fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
fastcgi_cache_valid 200 10s;
limit_conn lfcgi 50;
#fastcgi_param SCRIPT_FILENAME /sites/lamp-ret.fun$fastcgi_script_name;
#fastcgi_param PATH_TRANSLATED /sites/lamp-ret.fun$fastcgi_script_name;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
}
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
}
# configuration file /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun.nginx:
if ($http_host != lamp-ret.fun) {
return 444;
}
# configuration file /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun_location.nginx:
location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
location ~ /(internal_data|library|src)/ {
internal;
}
location /install/data/ {
internal;
}
location /install/templates/ {
internal;
}
location /chat.io/ {
proxy_pass http://127.0.0.1:8880;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location ~ /(wp-content|wp-includes)/ { return 444; }
# configuration file /etc/nginx/fastcgi_params:
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
# configuration file /etc/nginx/sites-available/!!!ssl.lamp-ret.fun.conf:
server {
listen *айпи убран в целях безопасности*:443 ssl http2;
server_name lamp-ret.fun www.lamp-ret.fun;
root /home/lamp/sites/lamp-ret.fun;
# ssl on;
ssl_certificate /etc/certs/lamp/lamp-ret.fun__wildcard_letsen.crt_v2;
ssl_certificate_key /etc/certs/lamp/lamp-ret.fun__wildcard_letsen.key;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:ECDHE:!COMPLEMENTOFDEFAULT;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security 'max-age=604800';
access_log /etc/nginx/vhost_logs/lamp-ret.fun_access;
error_log /etc/nginx/vhost_logs/lamp-ret.fun_error;
location /install {
auth_basic 'Unauthorized';
auth_basic_user_file /home/lamp/sites/lamp-ret.fun/install/passwd;
}
location ~ /passwd {
deny all;
access_log off;
log_not_found off;
}
include /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun.nginx.ssl;
location ~ /.well-known { allow all; }
# location ~* robots.txt { root /etc/nginx; }
location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}
location / {
root /home/lamp/sites/lamp-ret.fun;
include /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun_location.nginx.ssl;
}
location ~ \.php$ {
try_files $fastcgi_script_name =404;
root /home/lamp/sites/lamp-ret.fun;
#fastcgi_pass localhost:9011;
fastcgi_pass unix:/var/run/php-fpm/php74w-lamp.sock;
include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/lamp/sites/lamp-ret.fun$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /home/lamp/sites/lamp-ret.fun$fastcgi_script_name;
fastcgi_buffers 8 32k;
fastcgi_buffer_size 4k;
fastcgi_busy_buffers_size 68k;
fastcgi_connect_timeout 120;
fastcgi_read_timeout 900;
fastcgi_send_timeout 900;
fastcgi_cache off;
fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
fastcgi_cache_valid 200 10s;
limit_conn lfcgi 50;
#fastcgi_param SCRIPT_FILENAME /sites/lamp-ret.fun$fastcgi_script_name;
#fastcgi_param PATH_TRANSLATED /sites/lamp-ret.fun$fastcgi_script_name;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
}
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
}
# configuration file /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun.nginx.ssl:
proxy_read_timeout 3000s;
proxy_connect_timeout 750s;
if ($http_host != lamp-ret.fun) {
return 444;
}
# configuration file /var/brainycp/data/webserver_config/user_includes/lamp/lamp-ret.fun_location.nginx.ssl:
location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
location /install/data/ {
internal;
}
location /install/templates/ {
internal;
}
location ~ /(internal_data|library|src)/ {
internal;
}
location /chat.io/ {
proxy_pass http://127.0.0.1:8880;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location ~ /(wp-content|wp-includes)/ { return 444; }
# configuration file /etc/nginx/sites-available/!!default.conf:
server {
listen *айпи убран в целях безопасности*:80;
server_name default ;
root /var/www/html;
access_log /etc/nginx/vhost_logs/!!default_access;
error_log /etc/nginx/vhost_logs/!!default_error;
location ~ /.well-known { allow all; }
# location ~* robots.txt { root /etc/nginx; }
location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}

location / {
root /var/www/html;

index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}

}
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
}
# configuration file /etc/nginx/sites-available/!!ssl.default.conf:
server {
listen *айпи убран в целях безопасности*:443 ssl;
server_name default ;
root /var/www/html;
# ssl on;
ssl_certificate /etc/brainy/ssl/webserver.crt_v2;
ssl_certificate_key /etc/brainy/ssl/webserver.key;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-256-GCM-SHA384:ECDHE:!COMPLEMENTOFDEFAULT;
ssl_prefer_server_ciphers on;


add_header Strict-Transport-Security 'max-age=604800';

access_log /etc/nginx/vhost_logs/!!default_access;
error_log /etc/nginx/vhost_logs/!!default_error;

location ~ /.well-known { allow all; }

# location ~* robots.txt { root /etc/nginx; }

location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}

location / {

root /var/www/html;

index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
}
По словам Atikin : "Если смотреть в код загрузчика вложений, пустая ошибка выкидывается, когда срабатывает отбытие успешной загрузки, но отсутствует ответ от сервера (если я правильно понял)."
Собственно, вопрос. Куда копать, что смотреть?
 
Куда копать, что смотреть?
Логи
Код:
error_log /etc/nginx/vhost_logs/lamp-ret.fun_error;
php.ini
Код:
upload_max_filesize
post_max_size
Проверить без CF
Cloudflare limits upload size (HTTP POST request size) per plan type:

  • 100MB Free and Pro
  • 200MB Business
  • 500MB Enterprise by default ( to request a limit increase)
 
Самое занятное, сам столкнулся с этой проблемой, когда переехал на днс сервера cloudflare. Оказывается, действительно есть ограничение по загрузке файлов:

Я понять не могу, почему на VPS моём стоит выше 1 гб загрузка,а выше 100 мб не пропускает, а тут на те. А виной настройка прокси на записях ДНС. Нужно просто их вырубить и всё. Но вот вопрос, так ли важно иметь поддержку их прокси, что вообще оно даёт? Ответ тоже есть:
Отключение Proxy допускает к потенциальному раскрытию ваших исходных IP-адресов злоумышленникам и DDoS-атакам и сохранение ваших записей только для DNS означает, что Cloudflare не сможет оптимизировать, кэшировать и защищать запросы к вашему ресурсу.
И возникает вопрос, а так ли оно нужно? Вопрос, открытый.

Сама проблема по загрузке решается простым способом:
днс2.pngднс.png
 
Последнее редактирование:
Я себе когда то ставил для загрузки файлов
Тогда кстати клаудфлер пропускает большие файлы
 
Последнее редактирование:
It Works, немного не пойму логику того плагина, как он может допускать загрузку выше заявленного на сервере? Ведь настройки сервера в приоритете, другое дело, если на уровне ДНС это блокируют, как делают cloudflare.
 
It Works, немного не пойму логику того плагина, как он может допускать загрузку выше заявленного на сервере? Ведь настройки сервера в приоритете, другое дело, если на уровне ДНС это блокируют, как делают cloudflare.
Логика такова
Допустим указываем дробить файл по 10мб
Файл кусками по 10мб загружается во временную папку на сервере,потом он в этой папке собирается целиком и перемещается(или копируется) в папку вложений.
Почему перемещается или копируется - до конца не разобрался в этом моменте,в один из моментов заметил что растет количество вложений как то не понятно.Поиском была найдена временная папка мода,путем наблюдений и была установлена логика работы мода.Покрутив немного мод и почитав англ. тему по этому моду - папка должна заданием регулярно очищаться.Но этого не происходит.Может быть из-за того что там используется S3 хранилище. Времени выяснять этот вопрос подробно не было,настроил на сервере крон задание каждую ночь чистить эту папку и все
 
Sadorimatsu, если вы отключаете использование DNS от клауды, то по большей части нужды в кф после этого действия нет. Выше порекомендовали загружать файл чанками (если нужен бесплатный тариф), или раскошелиться и иметь возможность загружать файлы чуть большего размера
 
Логика такова
Допустим указываем дробить файл по 10мб
Файл кусками по 10мб загружается во временную папку на сервере,потом он в этой папке собирается целиком и перемещается(или копируется) в папку вложений.
Почему перемещается или копируется - до конца не разобрался в этом моменте,в один из моментов заметил что растет количество вложений как то не понятно.Поиском была найдена временная папка мода,путем наблюдений и была установлена логика работы мода.Покрутив немного мод и почитав англ. тему по этому моду - папка должна заданием регулярно очищаться.Но этого не происходит.Может быть из-за того что там используется S3 хранилище. Времени выяснять этот вопрос подробно не было,настроил на сервере крон задание каждую ночь чистить эту папку и все
Занятная схема, но почему изначально нельзя настроить лимит на сервере? 🤔 Если тоже облако без VPS не поднять, как вы указали. Смысл плагина теряется ведь. Ладно бы был хостинг с ограничением, то может и обыгралось как-то. Или этот способ хорошо подходит для работы с cloudflare с ограничением загрузки 100 мб на файл?

DreamTails, так их не отключаем, ты просто отключаем прокси своих днс адресов, по факту сервис то никуда не девается и используется. Лишний раз маскировать адреса, конечно полезно, но жертвовать при подобных условиях не хочется, а платить за это подавно, когда на стороне своего сервера необходимое и так реализовано на случай тех же дос атак. Рекомендация по делениями файлами занятно, но так ли актуально? Или отключать прокси у cloudflare нежелательно?
 
Последнее редактирование:
Занятная схема, но почему изначально нельзя настроить лимит на сервере?
Можно, никто не запрещает. Только при использовании проксирования файл сначала вписывается в лимиты кф, а только потом уже сервера.
так их не отключаем, ты просто отключаем прокси своих днс адресов
Вы отключаете проксирование до форума, что уже сводит на нет все фишки, что предоставляет клауда при включенном проксировании. Конечно если форум это не важная ветха во всём проекте, что заведен под ДНС сервера кф, то тогда да.
Лишний раз маскировать адреса, конечно полезно, но жертвовать при подобных условиях не хочется, а платить за это подавно, когда на стороне своего сервера необходимое и так реализовано на случай тех же дос атак.
КФ предоставляет не только проксирование, но и например кэширование, выигрывая время по загрузке. Если это не требуется, и кф планировался использоваться для защиты от атак, то вектор сильно снижается до 1 сервера, и тем самым если очень сильно захотеть, то можно его положить, даже с защитой от провайдера (привет, овх).
Рекомендация по делениями файлами занятно, но так ли актуально?
Зависит.
Или отключать прокси у cloudflare нежелательно?
Зависит.

Навязывать использование клауды не собираюсь, но вышеуказанные действия сводятся к тому, что из цепочки доставки клиент <-> сервер клауда выкидывается, и нужно уже самому решать, а нужно ли оно вам
 
Занятная схема, но почему изначально нельзя настроить лимит на сервере? 🤔 Если тоже облако без VPS не поднять, как вы указали. Смысл плагина теряется ведь. Ладно бы был хостинг с ограничением, то может и обыгралось как-то. Или этот способ хорошо подходит для работы с cloudflare с ограничением загрузки 100 мб на файл?
VPS сервер посредственный с малым дисковым хранилищем
Картинки и прочая графическая лабуда хранится на самом сервере,вложения архивы и то что емкое через этот сервер проксируются в S3 хранилище,дешевле его покупать чем емкую VPS или выделенный сервер.В S3 хранилище ограничение на 200мб.Для этого и ставилось это дополнение.Так же по ходу использования этого дополнения и выяснилось что оно еще и на клаудфлер позволяет ограничения обойти
 
DreamTails, благодарю за разъяснение, убедили, что стоит рассмотреть тот плагин по загрузке и отключить прокси не желательно судя по всему. Лишаться полезных плюшек не очень хочется тоже, ведь они реально полезные. Но и грузить файлы не более 100 мб для меня не вариант, потому нужно рассматривать вопрос дробления загрузки, как выше предложили.
It Works, благодарю за уточнение, не будет лишним изучить работу плагина. Будут какие рекомендации по тому плагину? И как сказывается по времени загрузки?
 
Последнее редактирование:
Будут какие рекомендации по тому плагину? И как сказывается по времени загрузки?
Работает все точно так как и работало, просто вложение в несколько потоков грузит. Количество потоков тоже можно указать
Единственное в папке internal_data следить за папкой chunked_uploads
У меня в ней данные разрастались. Но судя по всему у меня из-за S3 хранилища
 
@It Works, немного не пойму логику того плагина, как он может допускать загрузку выше заявленного на сервере?
Вроде бы на стороне клиента происходит дробление файлов на чанки. По этому и в теории может помочь.
 
Работает все точно так как и работало, просто вложение в несколько потоков грузит. Количество потоков тоже можно указать
Единственное в папке internal_data следить за папкой chunked_uploads
У меня в ней данные разрастались. Но судя по всему у меня из-за S3 хранилища
Проверил со своим S3 яндекса. Архив он раздробил и загрузил, но на ресурсе как грузил 1 вид архива, так и осталось, но при этом он сохраняет лишь часть от дробленного архива, а целиком не выводит. Полагаю причина в обработке облака. Получается мне такой способ с моим облаком проблематичен в применении... Либо может какие-то отдельные права доступа надо прописывать, пока непонятки. Я как посмотрел, он тупо дробные файлы грузит с одним именем с одним размером по тому, что я указал на делении и потом гадай, как это собирать. При этом такой способ работать будет только на архивах... такое себе решение на самом деле. Такой порядок в моём случае точно неприемлемо.
Вроде бы на стороне клиента происходит дробление файлов на чанки. По этому и в теории может помочь.
На практике так и есть, но вот при работе с облаком есть вопросы этого дробления т.к. не собирает после.
Тогда зачем тебе КФ если обнаружат твой IP и положат твой сайт?)
Для того, что он позволяет через себя зайти людям, у кого на днс серверах того же рег.ру ко мне не имели, как проверил. Банально причина была в этом и мне уже этого было достаточно. А уж про обнаружение адреса не сильно беспокоюсь.
 
Последнее редактирование:
Это в каком таком S3 всего 200 мб?
Timeweb
Когда подключался к ним они судя по всему начинали только
При общении через тикеты было озвучено 200мб,если больше то использовать составную загрузку.Может быть сейчас что то и изменилось,но как настроено тогда было мной так и работает.Не проверял

но на ресурсе как грузил 1 вид архива, так и осталось, но при этом он сохраняет лишь часть от дробленного архива, а целиком не выводит.
Подождать надо
Я как помню на ресурсе как грузил 1 вид так и есть,просто чанками добавляется архив
Там настройки мода есть,поиграйся ими
Я ставил размер чанка -2мб и в 10 потоков
Тоже получается когда то игрался настройками
 
Подождать надо
Я как помню на ресурсе как грузил 1 вид так и есть,просто чанками добавляется архив
Там настройки мода есть,поиграйся ими
Я ставил размер чанка -2мб и в 10 потоков
Тоже получается когда то игрался настройками
Проблема в том, что это деление чанкой актуально только для архивов. Я проверил, что он грузит архив и загружает их по порядку по мере деления, но это так нелепо смотрится... не думаю, что для моего ресурса такой способ приемлем. Идея неплохая, но реализация хромает. Если загрузить, например видео, он его разделит и загрузит разными файлами с разными размерами и как такое загружать?))) Или я чего-то не понимаю? Видимо я буду вынужден отказаться от прокси в cloudflare, да и платить за это не вижу причин, у меня не такие масштабы, чтобы работать себе в убыток. Задумка конечно хорошая сама по себе, но увы, не для всех она подойдёт. Либо может такие косяки у меня на S3 Яндекса, не могу судить за других.
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу