
Docker 컨테이너 및 nginx 역방향 프록시로 Apache(+php-fpm)에서 실행되는 nextcloud 인스턴스에 문제가 있습니다.
Nextcloud URL을 열면 nginx는 요청을 Apache로 프록시하고 Apache는 나를 /index.php/login으로 리디렉션합니다. 그러나 어떤 이유로 nginx는 /index.php/login에 대해 404를 반환합니다.
이것은 내 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"
내 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
}
}
nginx가 /index.php/login을 Apache에 전달하지 않고 다른 모든 요청을 전달하는 이유는 무엇입니까? 아, 그리고 Apache에 직접 액세스하는 경우 모든 것이 작동하므로 nginx 프록시여야 합니다.
도움을 주셔서 감사합니다 ~anghenfil
답변1
문제를 발견했습니다! https를 고수하려면 nextcloud 구성에 overwriteprotocol 옵션을 추가해야 했습니다. 기본적으로 nextcloud가 나를 http로 리디렉션하는 리디렉션을 받을 때마다 이는 역방향 프록시 및 일반적인 RTFM 상황에서 알려진 문제입니다.https://docs.nextcloud.com/server/19/admin_manual/configuration_server/reverse_proxy_configuration.html
최고의 앙헨필