J'ai un site Web qui utilise Cloudflare pour protéger et proxy le site. J'utilise un certificat SSL Cloudflare sur mon serveur d'origine nginx pour que toutes les demandes soient traitées via HTTPS et que cela fonctionne selon les besoins.Nginx reverse proxy vers le serveur de l'application Jetty via Cloudflare
J'ai configuré un serveur Node.js et un serveur d'applications basé sur Jetty exécutant Xwiki sur le même serveur physique que celui hébergeant mon serveur web Nginx.
Je configure nginx reverse proxing via mon fichier nginx.conf afin que nginx pointe vers le serveur 'application' respectif lorsque l'URL correspondante est demandée, par ex.
https://SITE-ROOT/node
Ce proxy inverse à mon Node.js serveur exécutant sur le port 3001 sur l'hôte local en utilisant les paramètres d'emplacement ci-dessous dans mon fichier nginx.conf ...
location /node {
proxy_pass http://192.168.1.69:3001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
Cela fonctionne selon les besoins et la La page node.js est diffusée via HTTPS via l'URL pubic de mon site et via le service CloudFlares.
Lorsque j'essaie de faire la même chose pour le site Xwiki qui s'exécute sur le serveur d'applications Jetty (Java) sur l'hôte local sur le port 8080, par exemple.
https://SITE-ROOT/xwiki
location /xwiki/ {
proxy_pass http://192.168.1.69:8080/xwiki;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
Je reçois l'erreur suivante:
DNS points to prohibited IP
Unfortunately, it is resolving to an IP address that
is creating a conflict within Cloudflare's system.
Je ne comprends pas pourquoi cela se passe comme j'attendre la même chose se produise à la demande de proxy inverse nœud. La seule différence que je peux penser est que Xwiki tourne dans le serveur d'application de Jetty sur le même hôte que les services de nginx et de noeud et ceci signifie que nginx et Jetty ne sont pas/ne peuvent pas communiquer de la même manière nginx et node peuvent quand il s'agit de proxing inverse ...
Si je mets mes sites adresse IP réelle et le numéro de port Xwiki dans la section de redirection de proxy de mon fichier nginx.conf, par exemple
https://SITE-ROOT/xwiki
location /xwiki/ {
proxy_pass http://EXTERNAL-REAL-IP:8080/xwiki;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
Cela fonctionne en autant que la page se charge par défaut XWiki mais l'URL change au réel IP externe de mon serveur et ne pas utiliser SSL. Je comprends que c'est parce que le serveur Jetty sert la page via le port 8080 et en passant nginx tout à fait. Donc, ma vraie question est, comment puis-je obtenir le service Xwiki basé sur Jetty à charger sur un emplacement dans mon site proxyx Cloudflare utilisant Nginx proxy inverse ou pouvez-vous m'aider à comprendre où je vais ...
Je pense que je dois installer le certificat SSL est installé sur mon serveur nginx sur le serveur de la jetée aussi pour que nginx voir est le serveur Jetty comme ressource locale - mais je suis très incertain sur ce ...