
Estou tendo problemas com uma instância nextcloud em execução no Apache (+php-fpm) como um contêiner docker e meu proxy reverso nginx.
Quando eu abro o URL do Nextcloud, o nginx faz o proxy da solicitação para o apache e o apache me redireciona para /index.php/login. No entanto, por algum motivo, o nginx retorna um 404 para /index.php/login.
Este é o meu log nginx:
172.19.0.0 - - [29/Nov/2021:22:32:01 +0000] "GET / HTTP/1.1" 302 0 "-" "Some UA-String"
172.19.0.0 - - [29/Nov/2021:22:32:01 +0000] "GET /index.php/login HTTP/1.1" 404 548 "-" "Some UA-String"
Minha configuração nginx:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name cloud.example.com;
ssl_certificate [...];
ssl_certificate_key [...];
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_intercept_errors on;
proxy_pass http://nextcloud-httpd; #nextcloud-httpd is apaches hostname in the docker network
}
}
Por que o nginx não passa /index.php/login para o apache, mas passa todas as outras solicitações? Ah, e se estou acessando o apache diretamente, tudo funciona, então tem que ser o proxy nginx.
Agradeço sua ajuda ~anghenfil
Responder1
Eu encontrei o problema! Eu precisava adicionar a opção overwriteprotocol à minha configuração do nextcloud para manter o https. Basicamente, toda vez que fui redirecionado, o nextcloud me redirecionou para http, esse é um problema conhecido com proxies reversos e uma situação típica de RTFM:https://docs.nextcloud.com/server/19/admin_manual/configuration_server/reverse_proxy_configuration.html
Melhor anghenfil