[Nextcloud Docker] avec webroot et reverse proxy

Applications, problèmes de configuration réseau
Bob_le_pirate
newbie
Messages : 9
Inscription : sam. 18 janv. 2014, 11:10

[Nextcloud Docker] avec webroot et reverse proxy

Message par Bob_le_pirate »

Bonjour,

Je rencontre quelques difficultés à faire fonctionner le Docker officiel Nextcloud avec une modification du webroot (https://mondomaine/nextcloud/ au lieu de https://mondomaine/) et derrière un reverse proxy (jwilder/nginx-proxy).
Je sais que le reverse proxy fonctionne car j'ai une autre application qui l'utilise et ne rencontre pas de difficultés.

Ci-dessous le docker-compose de Nextcloud :

Code : Tout sélectionner

version: '2'

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    networks: ["common"]

  app:
    image: nextcloud:fpm
    restart: always
    links:
      - db
    volumes:
      - ./nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
      - OVERWRITEHOST=mondomaine
      - OVERWRITEWEBROOT=/nextcloud
      - NEXTCLOUD_TRUSTED_DOMAINS=mondomaine
    networks: ["common"]

  web:
    image: nginx
    restart: always
    ports:
      - 3080:80
    links:
      - app
    environment:
      - LETSENCRYPT_HOST=mondomaine
      - LETSENCRYPT_EMAIL=monadresse
      - VIRTUAL_HOST=mondomaine
      - VIRTUAL_PORT=3080
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    volumes_from:
      - app
    networks: ["net", "common"]

volumes:
  nextcloud:
  db:
    
networks:
  net:
    external: true
  common:
  
Nota : le réseau 'net' est celui du reverse proxy.

Ensuite j'ai utilisé le fichier nginx.conf disponible en exemple sur le Git de Nextcloud https://github.com/nextcloud/docker/blo ... nginx.conf.

Puis enfin coté reverse proxy, j'ai un fichier default_location dans le répertoire vhost.d avec :

Code : Tout sélectionner

location /nextcloud/ {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://nextcloud-docker_web_1/;
    break;
}
Je parviens à afficher la page de login de Nextcloud, mais ensuite lorsque j'essaye de me loguer pour créer un administrateur, je reste bloqué sur cette page. Je pense que l'anomalie est due au changement de webroot (/nextcloud/) et au fichier nginx.conf qui lui est prévue pour un fonctionnement sous "/". Malheureusement, mes connaissances ne me permettent pas de comprendre comment modifier ce fichier "nginx.conf".

Toute aide serait la bienvenue.

Merci d'avance.
Cordialement.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17188
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Nextcloud Docker] avec webroot et reverse proxy

Message par benjarobin »

Bonjour,
As tu bien suivi la documentation suivante : https://docs.nextcloud.com/server/lates ... ation.html
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Bob_le_pirate
newbie
Messages : 9
Inscription : sam. 18 janv. 2014, 11:10

Re: [Nextcloud Docker] avec webroot et reverse proxy

Message par Bob_le_pirate »

Merci pour le tuyau, le problème se situait en effet au niveau du trusted_proxies. Il m'a suffit d'ajouter la ligne suivante dans le docker-compose de nextcloud pour parvenir à me logguer :

Code : Tout sélectionner

TRUSTED_PROXIES=nginx-reverse-proxy
nginx-reverse-proxy étant le nom du conteneur de mon reverse proxy.

Il me reste une dernière difficulté avec les redirections CalDAV ou CardDAV, je ne parviens pas à les faire fonctionner. Dans la documentation nextcloud il est demandé de passer les codes suivants :

Code : Tout sélectionner

rewrite ^/\.well-known/carddav https://$server_name/nextcloud/remote.php/dav/ redirect;
rewrite ^/\.well-known/caldav https://$server_name/nextcloud/remote.php/dav/ redirect;
mais j'ai essayé de les mettre dans mon fichier default_location du reverse proxy sans succès.

Avez-vous une idée pour me permettre de trouver la solution ?

Cordialement.
Répondre