Owncloud/nextcloud on rancher 2 - HTTP/2 error


#1

Hello,

I’m trying to install a new owncloud/nextcloud service on a rancher 2 cluster.
Everything’s fine, except that the desktop client regulary returns a HTTP/2 protocol error.
It seems to happen only with big files (> 5M)

First, I had a problem with the size of the request body. I added “nginx.ingress.kubernetes.io/proxy-body-size” as an annotation of my ingress and it solved the problem.
My current issue looks like this one, that’s why i’m assuming that it comes from an option of a rancher ingress.

Anyone has an idea, please ?
I really need to fix this


#2

nobody has an idea ? :frowning:


#3

hmm…my nextcloud is running fine in rancher 2 with http2 (nginx ingress). Did you check your log files?


#4

Thanks for your answer p7k !

Does your ingress has something special ?
Did you also have the problem of large files that are not uploaded ? (solved with the annotation nginx.ingress.kubernetes.io/proxy-body-size)


#5

The only annotation i am using to modify nginx is nginx.ingress.kubernetes.io/proxy-body-size: "0" to disable file size limits in the ingress. How does the rest of your setup look like? Did you check your nextcloud log files for any kind of error messages? Maybe it is not the ingress controller. Is there another nginx/webserver running in front of nextcloud? I am using the fpm image so i run another nginx.


#6

I’ve changed the proxy-body-size to 0 (I had 10m) but the error still occurs.
It worked well but after approx. 1hour of uploading files, the HTTP/2 error came back. And usually after that, the desktop app tries to sync everything again and after a few succeses, it gives an error like :
" {filename} : error transferring https://…/remote.php/dav/uploads/{username}/{randomNumber} - server replied:"
I don’t even know what the server actually replied as the message stops here.

The docker logs doesn’t give anything interesting. I have only request traces with 201 or 207 http responses. And nextcloud.log gives nothing at all.

My ingress seems basic. I redirect the port 80, use a certificate and I have basic annotations:
cattle.io/creator = norman
field.cattle.io/ingressState = {}
nginx.ingress.kubernetes.io/proxy-body-size = 0

I’m using nextcloud:latest image. Everything seems pretty basic.
So you are using the 15-fpm image ?
What do you mean about another nginx/webserver ? I think that I don’t have that