Удалось заставить работать KeenDNS + NextCloud (31.0.2 base version apache).
Застрял на том, что не давало пройти авторизацию и всё время перенаправляло на страницу login что бы не вводил.
Проблема была в том, что keenetic заголовки режет, и чтоб этого не было надо в CLI keenetic прописать:
ip http proxy nextcloud preserve-origin
system configuration save
* nextcloud - это dns имя моего приложения из раздела KeenDNS
А в config.php достаточно добавить:
'trusted_domains' =>
array (
0 => 'nextcloud.DOMAIN.keenetic.link',
),
'overwrite.cli.url' => 'https://nextcloud.DOMAIN.keenetic.link',
'overwritehost' => 'nextcloud.DOMAIN.keenetic.link',
'overwriteprotocol' => 'https',
После этого всё начало работать, НО только по доменному имени!
Больше по IP работать не будет и все запросы идут через интернет, даже внутри домашней сети.
* В KeenDNS протокол HTTP выбираем
Но можно донастроить, чтоб внутри сети запросы не выходили в интернет - через CLI keenetic добавить статический адрес в DNS keenetic:
ip host nextcloud.DOMAIN.keenetic.link 192.168.1.1
system configuration save
* 192.168.1.1 - ip адрес keenetic
* нужно сбросить dns кэш или подождать
* если используется KVAS, то можно добавить dns запись через команду kvas hosts edit
ДОПОЛНИТЕЛЬНО
Если нужно чтоб в логах nextcloud отображались IP адреса устройств с которых идёт обращение, а не IP прокси (192.168.1.1), то в CLI keenetic прописать:
ip http proxy nextcloud x-real-ip
system configuration save
Что ещё пробовалось, но вроде как не понадобилось и не помогло решить проблему:
keenetic cli:
ip http proxy nextcloud preserve-host
config.php
'trusted_proxies' => ['192.168.1.1'],
'forwarded_for_headers' => ['HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'],