
Tengo problemas con una instancia de nextcloud que se ejecuta en Apache (+php-fpm) como contenedor acoplable y mi proxy inverso nginx.
Cuando abro la URL de Nextcloud, nginx envía la solicitud a Apache y Apache me redirige a /index.php/login. Sin embargo, por alguna razón, nginx devuelve un 404 para /index.php/login.
Este es mi registro de 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"
Mi configuración de 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 qué nginx no pasa /index.php/login a Apache pero pasa todas las demás solicitudes? Ah, y si accedo a Apache directamente, todo funciona, por lo que tiene que ser el proxy nginx.
Agradezco tu ayuda ~anghenfil
Respuesta1
¡Encontré el problema! Necesitaba agregar la opción de protocolo de sobrescritura a mi configuración de nextcloud para seguir con https. Básicamente, cada vez que me redirigen, nextcloud me redirige a http, este es un problema conocido con los servidores proxy inversos y una situación RTFM típica:https://docs.nextcloud.com/server/19/admin_manual/configuration_server/reverse_proxy_configuration.html
Mejor anghenfil