La Fibre

Datacenter et équipements réseaux => Équipements réseaux => Serveurs NAS, serveurs et micro-serveurs => Discussion démarrée par: DamienC le 30 janvier 2020 à 14:38:13

Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 30 janvier 2020 à 14:38:13
Bonjour,

Cela fait un moment que j'essai sans succès.
Mon objectif est que les clients se connectent sur un serveur web (port 80 ou 443) et que ce serveur web se charge de se connecter a d'autres serveurs web (réseaux non accessibles directement aux clients) en forwardant tout le contenu des backend, donc pas uniquement une redirection comme un simple reverse proxy.

J'ai mis en PJ un schéma. En gros il ne faut pas que les clients aient besoin d'intéroger en direct les serveurs derrière le forward proxy.

J'ai essayé avec nginx, en mode reverse; je charge que les entêtes HTML (normal, c'est son rôle) et également avec apache2 et son mod "ProxyVia" mais je ne pense pas que cela réponde à ma probèmatique.

Avez-vous des tips?

Cordialement,
DamienC

Titre: Forward Proxy ? Reverse Proxy?
Posté par: Hugues le 30 janvier 2020 à 14:38:48
Un Load Balancer, donc ?
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 30 janvier 2020 à 14:47:58
Un Load Balancer, donc ?
Bas pour moi un load balancer redistribue les requêtes vers divers backend, mais les clients communiquent directement avec ces backends non? Il se contente juste de forward les requêtes et non pas le contenu HTML/PHP/CSS/IMG?

Car la les clients ne peuvent pas du tout d'aucune manière communiquer avec les backend.
Uniquement le proxy est autorisé à communiquer à la fois avec les backends et les clients
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 30 janvier 2020 à 16:14:31
J'ai essayé avec la conf apache suivante:

<VirtualHost *:80>

        ServerName xxxxxxxxxxxxxx
        ServerAdmin xxxxxxxxxxxxxxx
        DocumentRoot /var/www/xxxx

    <Proxy *>
            AddDefaultCharset off
            Order deny,allow
    #Deny from all
    Allow from all
    </Proxy>

        ProxyPreserveHost On
        ProxyPass /xxx http://xxxbackend/
        ProxyPassReverse /xxx http://xxxbackend/
        ProxyRequests Off

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Lorsque j'accède à l'url /xxx je suis bien forward vers le serveur en question mais mon navigateur cherche à charger le body etc depuis le backend et non pas depuis le reverse...
Je sèche complet
Titre: Forward Proxy ? Reverse Proxy?
Posté par: kazyor le 30 janvier 2020 à 16:33:12
Lorsque j'accède à l'url /xxx je suis bien forward vers le serveur en question mais mon navigateur cherche à charger le body etc depuis le backend et non pas depuis le reverse...
Je sèche complet

Tu n'as que de simples pages web (html/php/js/css) ?
Ne serait-ce pas parce que xxxbackend est écrit en dur dans les sources ?
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 30 janvier 2020 à 21:24:48
Tu n'as que de simples pages web (html/php/js/css) ?
Ne serait-ce pas parce que xxxbackend est écrit en dur dans les sources ?
Il s'agit d'Observium. Donc grosso-modo HTML/PHP/CSS oui

Sans doute, mais n'exist-il pas une solution capable de tout réécrire à la volée?
Comment fonctionne les proxy que l'on trouve sur le web où il suffit de mettre l'URL et le serveur se charge de télécharger le contenu demandé puis de le redistribuer?
Titre: Forward Proxy ? Reverse Proxy?
Posté par: Ilyazam le 30 janvier 2020 à 22:22:31
En gros il te faut un reverse proxy qui gère la translation des URLs / liens avec le nom de domaine complet / headers de redirection.

Il faudrait que tu fasse une capture des requêtes sur la console réseau de ton navigateur pour voir quel est le comportement exact (quel script / partie de la page est appelé en direct, est-ce qu'il y a une redirection avec un code 301/302).
Sur Firefox la console s'affiche avec CTRL+MAJ+E
Titre: Forward Proxy ? Reverse Proxy?
Posté par: kazyor le 30 janvier 2020 à 23:11:29
Il s'agit d'Observium. Donc grosso-modo HTML/PHP/CSS oui

Sans doute, mais n'exist-il pas une solution capable de tout réécrire à la volée?
Comment fonctionne les proxy que l'on trouve sur le web où il suffit de mettre l'URL et le serveur se charge de télécharger le contenu demandé puis de le redistribuer?

Tu es dans un contexte entreprise ?
Un proxy transparent style squid ?
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 00:08:29
Tu es dans un contexte entreprise ?
Un proxy transparent style squid ?
Yes j'ai une dizaine d'Observium sur divers sites, chaque Observium est capable de communiquer avec un serveur "central" en HTTP/HTTPS/SSH/SNMP

Je souhaite pouvoir consulter tous les Observium sur l'ensemble des réseaux du groupe; pour des raisons de sécurité/simplicité sur les firewall, j'autorise en source "all" et en destination mon serveur central.
Ainsi, chaque PC de chaque site peut taper l'interface web du serveur central.
Donc en gros; les clients ne peuvent communiquer qu'avec le serveur central et ce serveur central est le seul à pouvoir communiquer avec les divers Observium.

Il faut donc un forward proxy ou autre, mais pas un simple load balancer.

Car à l'heure actuelle, je charge les données de la page mais sans CSS, sans images, sans rien... Car les clients tentent de charger ce contenu sur les serveurs Observium en direct, et ça se n'est pas faisable :/

J'ai pensé à Squid mais comment faire pour avoir une seule page web regroupant tous les serveurs??

En gros il te faut un reverse proxy qui gère la translation des URLs / liens avec le nom de domaine complet / headers de redirection.

Il faudrait que tu fasse une capture des requêtes sur la console réseau de ton navigateur pour voir quel est le comportement exact (quel script / partie de la page est appelé en direct, est-ce qu'il y a une redirection avec un code 301/302).
Sur Firefox la console s'affiche avec CTRL+MAJ+E
J'ai déjà check, les headers sont bien rewrite par le proxy, mais pas le body. J'ai testé avec nginx, nginx plus, apache2... Et même... IIS...
Titre: Forward Proxy ? Reverse Proxy?
Posté par: xp25 le 31 janvier 2020 à 00:34:33
Tu cherch à faire ça en gros ? : http://blogmotion.fr/programmation/php-sql/reverse-proxy-rules-6608

Citer
Le reverse proxy (proxy inverse) est souvent utilisé en entreprise. Il permet d’atteindre des applications depuis Internet sans laisser entrer le visiteur sur le réseau de l’entreprise. C’est une pierre angulaire de la sécurité dans le cas de l’utilisation de serveurs web.

(http://blogmotion.fr/wp-content/uploads/2010/11/reverse-proxy.png)
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 07:47:54
Tu cherch à faire ça en gros ? : http://blogmotion.fr/programmation/php-sql/reverse-proxy-rules-6608

(http://blogmotion.fr/wp-content/uploads/2010/11/reverse-proxy.png)
Oui exactement !
Titre: Forward Proxy ? Reverse Proxy?
Posté par: Steph le 31 janvier 2020 à 08:12:54
Du coup, je suis perdu...
Message 10 contradictoire avec message 1?
Titre: Forward Proxy ? Reverse Proxy?
Posté par: zoc le 31 janvier 2020 à 08:18:08
Je comprends pas trop le problème, j'ai par le passé fait ça chez moi avec nginx en reverse proxy pour Observium, que j'ai remplacé par Librenms (qui est moche mais intègre plus de trucs vu qu'il n'y a pas de version payante). La config de mon vhost pour librenms si ça peut aider (et comme on va me faire la remarque, oui, je sais, la connexion entre le proxy et l'instance n'est pas chiffrée):
# Upstream connection
upstream librenms {
#       server 192.168.69.203:443;
        server [fd00:dead:babe:69::211]:80;
}

# HTTP, redirecting everything to HTTPS
server {
        listen 80;
        listen [::]:80;

        server_name librenms.mydomain.com;

        access_log off;
        return 301 https://librenms.mydomain.com$request_uri;
}

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        access_log off;

        server_name librenms.mydomain.com;

        ssl_certificate     certs/librenms.mydomain.com/fullchain.crt;
        ssl_certificate_key certs/librenms.mydomain.com/key.crt;
        ssl_certificate     certs/librenms.mydomain.com/fullchain.ecc.crt;
        ssl_certificate_key certs/librenms.mydomain.com/key.ecc.crt;

        ssl_trusted_certificate certs/librenms.mydomain.com/fullchain.ecc.crt;
        add_header Strict-Transport-Security max-age=15768000;

        location / {
                proxy_pass http://librenms;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto https;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }
}
Titre: Forward Proxy ? Reverse Proxy?
Posté par: kazyor le 31 janvier 2020 à 08:21:07
Si j'ai bien compris, il a besoin d'un reverse proxy avec des réécriture d'url à la volée.

Je ne connais pas bien Observium, la clé du problème ne serait pas dans sa config. ?
Titre: Forward Proxy ? Reverse Proxy?
Posté par: zoc le 31 janvier 2020 à 08:23:49
Si j'ai bien compris, il a besoin d'un reverse proxy avec des réécriture d'url à la volée.
Ok, je vois, dans mon cas, comme mon instance librenms n'est accessible QUE à travers le proxy, elle génère elle-même directement les bonnes URLs...

Ceci dit, ça ne devrait pas être un problème si Observium génère des URLs relatives et pas absolues...
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 09:09:32
Merci à tous pour vos réponses; j'ai du coup testé la conf de ZOC mais mon navigateur est redirigé trop de fois :/

Voici la conf nginx:
# Upstream connection
upstream sag {
       server 828-monitoring.agrom.mousquetaires.com:80;
}
upstream kp {
       server 861-monitoring.agrom.mousquetaires.com:80;
}
upstream cook-ker {
       server 804-monitoring.agrom.mousquetaires.com:80;
}
#upstream cook-ploz {
#       server 842-monitoring.agrom.mousquetaires.com:80;
#}
upstream dvp {
       server 809-monitoring.agrom.mousquetaires.com:80;
}
upstream sveltic {
       server 848-monitoring.agrom.mousquetaires.com:80;
}
#upstream tdlt {
#       server 831-monitoring.agrom.mousquetaires.com:80;
#}
#upstream mdlm {
#       server 823-monitoring.agrom.mousquetaires.com:80;
#}
#upstream dsl {
#       server 808-monitoring.agrom.mousquetaires.com:80;
#}


# HTTP, redirecting everything to HTTPS
server {
        listen 80;
        listen [::]:80;

        server_name 861-observium-filiere.agrom.mousquetaires.com;

        access_log off;
        return 301 http://861-observium-filiere.agrom.mousquetaires.com$request_uri;
}

#server {
#        listen 443 ssl http2;
#        listen [::]:443 ssl http2;

#        access_log off;

#        server_name librenms.mydomain.com;

#        ssl_certificate     certs/librenms.mydomain.com/fullchain.crt;
#        ssl_certificate_key certs/librenms.mydomain.com/key.crt;
#        ssl_certificate     certs/librenms.mydomain.com/fullchain.ecc.crt;

location /sag {
                proxy_pass http://sag;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto http;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }
        location /kp {
                proxy_pass http://kp;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto http;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }
        location /dvp {
                proxy_pass http://dvp;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto http;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }
        location /sveltic {
                proxy_pass http://sveltic;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto http;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }
        location /cook-ker {
                proxy_pass http://cook-ker;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto http;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }
        location /cook-ploz {
                proxy_pass http://cook-ploz;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto http;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }
}


Pour le moment c'est du lab donc je n'ai pas inclu HTTPS.

Vous avez une idée du pourquoi je serai redirigé trop de fois??

Cordialement,
DamienC
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 09:14:20
Je m'auto répond, c'est vendredi je n'avais pas vu la redirection vers https...  ::)
J'ai donc commenté cette ligne:
#return 301 http://861-observium-filiere.agrom.mousquetaires.com$request_uri;
Désormais j'accède bien aux diverses pages Observium des divers sites, mais voici le problème:

Observium semble être codé en dur donc le client tente de se connecter au serveur 172.30.159.3 qui n'est pas accessible depuis les clients.
Uniquement le reserve proxy en .11 l'est.

Je suis donc au même stade... Je sèche :/
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 09:19:15
Voici un extrait des logs nginx, les ressources en js etc. sont en not found, d'où l'affichage pourri...
2020/01/31 09:15:58 [error] 15489#15489: *15 open() "/usr/share/nginx/html/js/observium-screen.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/observium-screen.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *16 open() "/usr/share/nginx/html/js/jquery.qtip.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/jquery.qtip.min.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *17 open() "/usr/share/nginx/html/js/d3.v3.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/d3.v3.min.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *18 open() "/usr/share/nginx/html/js/donut-chart.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/donut-chart.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/twitter-bootstrap-hover-dropdown.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/twitter-bootstrap-hover-dropdown.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *19 open() "/usr/share/nginx/html/images/login-hamster-large.png" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /images/login-hamster-large.png HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *18 open() "/usr/share/nginx/html/js/bootstrap-select.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-select.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/bootstrap-switch.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-switch.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/twitter-bootstrap-hover-dropdown.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/twitter-bootstrap-hover-dropdown.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/bootstrap-select.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-select.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:59 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/bootstrap-switch.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-switch.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:16:50 [error] 15489#15489: *12 "/usr/share/nginx/html/devices/index.html" is not found (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /devices/ HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
Titre: Forward Proxy ? Reverse Proxy?
Posté par: kazyor le 31 janvier 2020 à 09:29:24
Voici un extrait des logs nginx, les ressources en js etc. sont en not found, d'où l'affichage pourri...
2020/01/31 09:15:58 [error] 15489#15489: *15 open() "/usr/share/nginx/html/js/observium-screen.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/observium-screen.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *16 open() "/usr/share/nginx/html/js/jquery.qtip.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/jquery.qtip.min.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *17 open() "/usr/share/nginx/html/js/d3.v3.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/d3.v3.min.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *18 open() "/usr/share/nginx/html/js/donut-chart.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/donut-chart.js?v=17.9.0 HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/twitter-bootstrap-hover-dropdown.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/twitter-bootstrap-hover-dropdown.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *19 open() "/usr/share/nginx/html/images/login-hamster-large.png" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /images/login-hamster-large.png HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *18 open() "/usr/share/nginx/html/js/bootstrap-select.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-select.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/bootstrap-switch.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-switch.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/twitter-bootstrap-hover-dropdown.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/twitter-bootstrap-hover-dropdown.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:58 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/bootstrap-select.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-select.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:15:59 [error] 15489#15489: *12 open() "/usr/share/nginx/html/js/bootstrap-switch.min.js" failed (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /js/bootstrap-switch.min.js HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"
2020/01/31 09:16:50 [error] 15489#15489: *12 "/usr/share/nginx/html/devices/index.html" is not found (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /devices/ HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag"

Pour ce point là, c'est qqch de connu, du fait du changement du path via : ProxyPass /subdir/ http://xxxx/ (ou équivalent nginx).
Au choix :
- déposer les ressources statiques sur le nginx proxy.
- appliquer des rewrites
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 09:33:23
Pour ce point là, c'est qqch de connu, du fait du changement du path via : ProxyPass /subdir/ http://xxxx/ (ou équivalent nginx).
Au choix :
- déposer les ressources statiques sur le nginx proxy.
- appliquer des rewrites
Yes je viens de déposer les ressources en dur sur le proxy car il s'agit de la même version d'Observium sur l'ensemble des sites; du coup ça fonctionne maintenant. Pas hyper propre mais c'est déjà un bon test.

Par contre lorsque j'accède à http://monserveur/sag par exemple, et que je navigue via les menus Observium; il manque dans les liens la location /sag; je suis redirigé vers le dossier parent :/
Des idées?

EDIT: en fait à part l'index je n'accède à aucune page même en essayant une URL à la main:
http://861-observium-filiere.agrom.mousquetaires.com/sag/device/device=140/

Je retombe sur l'index observium du site SAG :/

EDIT2: Voici un extrait des logs, ça semble logique que cela ne fonctionne pas du coup...
2020/01/31 09:34:03 [error] 15489#15489: *42 "/usr/share/nginx/html/devices/index.html" is not found (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /devices/ HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag/devices/"
2020/01/31 09:34:09 [error] 15489#15489: *51 "/usr/share/nginx/html/device/device=140/index.html" is not found (2: No such file or directory), client: 10.0.0.17, server: 861-observium-filiere.agrom.mousquetaires.com, request: "GET /device/device=140/ HTTP/1.1", host: "861-observium-filiere.agrom.mousquetaires.com", referrer: "http://861-observium-filiere.agrom.mousquetaires.com/sag/devices/"
Titre: Forward Proxy ? Reverse Proxy?
Posté par: kazyor le 31 janvier 2020 à 09:56:23
Au lieu de faire ton balancing via un subdir tu n'as pas moyen de le faire via un host name ?
sag.proxy.tld --> http://sag
truc.proxy.tld --> http://truc

Où sac.proxy.tld et truc.proxy.tld résolve en 172.30.159.11
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 10:01:04
Au lieu de faire ton balancing via un subdir tu n'as pas moyen de le faire via un host name ?
sag.proxy.tld --> http://sag
truc.proxy.tld --> http://truc

Où sac.proxy.tld et truc.proxy.tld résolve en 172.30.159.11
Désolé je ne suis pas sur d'avoir compris :/
Titre: Forward Proxy ? Reverse Proxy?
Posté par: kazyor le 31 janvier 2020 à 10:06:48
Aujourd'hui, tu as une "proxification" de :
http://monserveur/sag vers http://sag/
Et http://monserveur/kp vers http://kp/

Je te propose, si tu as la main sur les enregistrements DNS, de plutôt faire un truc comme ça :
http://sag-monserveur/ vers http://sag/
Et http://kp-monserveur/ vers htto://kp/

Pour cela, il faut enregistrer les DNS sag-monserveur et kp-monserveur pour qu'il pointe vers ton proxy.
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 10:09:06
Aujourd'hui, tu as une "proxification" de :
http://monserveur/sag vers http://sag/
Et http://monserveur/kp vers http://kp/

Je te propose, si tu as la main sur les enregistrements DNS, de plutôt faire un truc comme ça :
http://sag-monserveur/ vers http://sag/
Et http://kp-monserveur/ vers htto://kp/

Pour cela, il faut enregistrer les DNS sag-monserveur et kp-monserveur pour qu'il pointe vers ton proxy.
Ok en fait j'avais bien compris je n'étais pas sur^^
Alors je n'ai pas la main sur les DNS mais bon je peux demander des records; du coup je vais tenter ça.
Tu penses que ça réglerai le pb?

Du coup je fais 1 vhost par site sur nginx, c'est bien ça?
Titre: Forward Proxy ? Reverse Proxy?
Posté par: doctorrock le 31 janvier 2020 à 11:19:24
Perso je gère tout ce genre de stuff avec un bon vieux HAProxy devant l'infra, et basta :-)
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 31 janvier 2020 à 11:26:43
Perso je gère tout ce genre de stuff avec un bon vieux HAProxy devant l'infra, et basta :-)
Tu aurais une conf à proposer? :p
Titre: Forward Proxy ? Reverse Proxy?
Posté par: doctorrock le 31 janvier 2020 à 11:33:24
Heu nan je vais pas te copier/coller ma conf de mes domaines :-D
Ya une doc, bien foutue.
Titre: Forward Proxy ? Reverse Proxy?
Posté par: DamienC le 05 février 2020 à 09:58:34
upstream dsl {
       server 808-monitoring.agrom.mousquetaires.com:80;
}

server {
        listen 80;
        listen [::]:80;

        server_name 808-proxy-monitoring.agrom.mousquetaires.com;

        access_log /var/log/nginx/dsl-access-moni.log;
        error_log /var/log/nginx/dsl-error-moni.log;

location / {
                proxy_pass http://dsl;
                client_max_body_size 20M;

                proxy_set_header Proxy "";
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto http;
                proxy_redirect off;
                proxy_buffers 4 256k;
                proxy_buffer_size 128k;
                proxy_busy_buffers_size 256k;
        }

}

Hello, ainsi cela fonctionne parfaitement, merci à tous !
Titre: Forward Proxy ? Reverse Proxy?
Posté par: xp25 le 05 février 2020 à 10:23:10
Génial 😉