Reversed by Nginx and met Input/Output error

What is the problem you are having with rclone?

There are three points in my configuration.
myPC >> VPS >> GDrive
I got a really low speed in achieving GDrive, so I thought I could take a VPS as a bridge.
I got a high speed of uploading things to my VPS.
And I could upload from VPS to GDrive in high speed as well.

So, in my opinion, if I deploy rclone serve webdav/http in my VPS connected to GDrive, I could get a high speed of reaching GDrive.
Actually, when I access my GDrive from the webdav/http deployed in VPS, it dose work in downloading.
Pretty high speed!!

When it comes to uploading, it doesn't work.
In my own PC, I tried to depoly rclone mount to mount the webdav as a local disk.
But I met the Input/Output Error continuously.

Actually, I found something special. My rclone serve webdav(VPS) was reversed by Nginx with ssl.
But when I tried to abandon Nginx and use IP:Port in my PC to mount webdav(VPS) directly. It does work. Though the uploading speed was extremely sloooooooooooooow.

What is your rclone version (output from rclone version)

myPC:
rclone v1.51.0

  • os/arch: linux/amd64
  • go version: go1.13.7

VPS:
rclone v1.51.0

  • os/arch: linux/amd64
  • go version: go1.13.7

Which OS you are using and how many bits (eg Windows 7, 64 bit)

myPC:
Linux 4.19.108-1-MANJARO

VPS:
Linux 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3 (2019-09-02) x86_64

Which cloud storage system are you using? (eg Google Drive)

Google Drive

The command you were trying to run (eg rclone copy /tmp remote:tmp)

VPS:

root@v154264:~# cat /etc/systemd/system/rclone-webdav.service 
[Unit]
Description=Rclone
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone serve webdav cc:/bus --addr 127.0.0.1:19843  --umask 0000  --buffer-size 32M  --dir-cache-time 12h  --vfs-read-chunk-size 64M  --vfs-read-chunk-size-limit 1G  --vfs-cache-mode writes
Restart=on-abort
User=root

[Install]
WantedBy=default.target

root@v154264:~# cat .config/rclone/rclone.conf 
[cc]
type = drive
scope = drive
token = {"access_token":"XXXXXXXXXXXXXXXXXXXXXXXXXX"}
root_folder_id = XXXXXXXXXXXXXX

root@v154264:~#cat /etc/nginx/sites-enabled/reverse-proxy.conf
server {
    listen  443 ssl;
    ssl on;
    ssl_certificate       /etc/nginx/ssl/certificate.cer;
    ssl_certificate_key   /etc/nginx/ssl/certificate.key;
    ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers           HIGH:!aNULL:!MD5;
    server_name           MY.DOMAIN.COM;
    location / {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:19843;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        # Show realip in v2ray access.log
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

myPC:

cat /root/.config/rclone/rclone.conf
[test]
type = webdav
url = https://MY.DOMAIN.COM/
vendor = other

command line to run:

/usr/bin/rclone mount test:/ /home/cc/Desktop/test \
 --umask 0000 \
 --default-permissions \
 --allow-non-empty \
 --allow-other \
 --buffer-size 32M \
 --dir-cache-time 12h \
 --vfs-read-chunk-size 64M \
 --vfs-read-chunk-size-limit 1G \
 -v > /home/cc/Desktop/rcloneLog.log

A log from the command with the -vv flag (eg output from rclone -vv copy /tmp remote:tmp)

I didn't record the log in VPS.
The log info from my PC shows below (Errors showed when I copied things into the mounted folder):

/usr/bin/rclone mount test:/ /home/cc/Desktop/test  --umask 0000  --default-permissions  --allow-non-empty  --allow-other  --buffer-size 32M  --dir-cache-time 12h  --vfs-read-chunk-size 64M  --vfs-read-chunk-size-limit 1G  -v > /home/cc/Desktop/rcloneLog.log 
2020/03/15 22:02:59 INFO  : webdav root '': poll-interval is not supported by this remote
2020/03/15 22:03:31 ERROR : VID_20190519_104757.mp4: Failed to copy: <html>
<head><title>413 Request Entity Too Large</title></head>
<body bgcolor="white">
<center><h1>413 Request Entity Too Large</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>: 413 Request Entity Too Large
2020/03/15 22:03:31 ERROR : VID_20190519_104757.mp4: WriteFileHandle.New Rcat failed: <html>
<head><title>413 Request Entity Too Large</title></head>
<body bgcolor="white">
<center><h1>413 Request Entity Too Large</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>: 413 Request Entity Too Large
2020/03/15 22:03:31 ERROR : VID_20190519_104757.mp4: WriteFileHandle.Flush error: <html>
<head><title>413 Request Entity Too Large</title></head>
<body bgcolor="white">
<center><h1>413 Request Entity Too Large</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>: 413 Request Entity Too Large

Actually, the mp4 file is only 20MB.

Please help me... Thanks!

Increase the client_max_body_size parameter for nginx.

1 Like

Thanks a lot!! After adding the parameter of 'client_max_body_size 0;' in Nginx, the uploading speed seems normal. Though it's slower than doing wget from my PC directly in VPS. I know that SSL will influence the performance.

Thanks !! :smiley:

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.