Dolibarr avec reverse proxy

Bonjour,

Je ne parviens pas à faire fonctionner dolibarr derrière mon reverse proxy. J’utilise Nginx mais ce n’est pas le point bloquant

Le reverse proxy appelle
http://IP_PRIVEE/dolibarr/htdocs

Sur le serveur hébergeant l’application j’utilise le virtual host par défaut

    location ^~ /dolibarr/htdocs {
      root /var/www/htdocs;
      index index.php;


location ~ .php$ {
root /var/www/htdocs/dolibarr/htdocs;

}
}

Je parviens à avoir la mire de login mais lorsque j’affiche son code html tous les liens sont en
href=/dolibarr/htdocs/includes/…
C’est le chemin sur le serveur backend

Mais comme je suis sur internet à l’exterieur, il faudrait que j’ai
href=/dolibarr/htdocs/includes/…

J’ai regardé le fichier conf.php en essayant de manipuler $dolibarr_main_document_root mais sans succès.

Avez vous déjà résolu ce cas ?

Bonjour,

Il faut faire un règle de rewrite sur ton reverse proxy ou/et configurer ton virtual host sur ton backend pour mapper le domain / sous domain que tu utilise type erp.domaine.com à « ^~ /dolibarr/htdocs » (il prendra en compte l’adresse dans le navigateur pas celle appelé par le reverse proxy), si le backend ne sert que pour dolibarr alors tu peux configurer le virtual host de dolibarr pour mapper http://IP_PRIVEE a ^~ /dolibarr/htdocs.

Bien à toi

1 « J'aime »

Bonjour Delcroip,

Merci pour ta réponse, après quelques jours de repos, l’esprit frais et avoir lu plusieurs fois ton message j’y suis parvenu.
J’ai mappé sur le virtual host du backend le domaine que j’utilise erp.domaine.com.
Le reverse proxy effectue la requête sur le domaine erp.domaine.com mais avec une résolution dns en IP privée.
J’ai adapté conf.php
Je n’ai pas réussi à faire plus propre.

Bon week end

Bonjour,

Voila ma conf pour un reverse proxy avec Nginx

 
server {
    listen 80;
    server_name erp.******.com;
    location / {
    proxy_pass       http://IPBACKEND:80;
    client_max_body_size 100M;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
        }
}

Merci par contre je pense voir un ou deux problème dans ta configuration.

Ton vhost est en écoute sur le port 80 mais devrait plutôt écouter sur le port 443.

Sinon, qu’as tu mis en configuration sur le backend ?

Bonjour Miky,

Le port 443 c’est pour du HTTPS j’en fait pas, sur le backend une Debian, avec apache mysql