La Fibre
Datacenter et équipements réseaux => Équipements réseaux => NAS, serveurs et micro-serveurs => Discussion démarrée 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
-
Un Load Balancer, donc ?
-
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
-
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
-
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 ?
-
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?
-
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
-
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 ?
-
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...
-
Tu cherch à faire ça en gros ? : http://blogmotion.fr/programmation/php-sql/reverse-proxy-rules-6608
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)
-
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 !
-
Du coup, je suis perdu...
Message 10 contradictoire avec message 1?
-
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;
}
}
-
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. ?
-
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...
-
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
-
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 :/
-
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"
-
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
-
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/"
-
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
-
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 :/
-
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.
-
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?
-
Perso je gère tout ce genre de stuff avec un bon vieux HAProxy devant l'infra, et basta :-)
-
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
-
Heu nan je vais pas te copier/coller ma conf de mes domaines :-D
Ya une doc, bien foutue.
-
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 !
-
Génial 😉