Sonatype Nexus: proxy à partir de SSL utilisant Apache

Nous exécutons Nexus de Sonatype pour stocker toutes nos versions, mettre en cache nos dépendances, etc. Cependant, je voudrais m’éloigner de l’URL du port 8081 de l’installation par défaut et l’héberger via SSL via un proxy Apache. mod_proxy le mod_proxy d’Apache sur proxy pour que https://myserver.com/nexus mod_proxy apparaître Nexus. J’ai utilisé les directives de configuration suivantes dans la configuration de mon hôte virtuel:

 # Configure mod_proxy to be used for proxying URLs on this site to other URLs/ports on this server. ProxyRequests Off ProxyVia Off ProxyPreserveHost On  AddDefaultCharset off Order deny,allow Allow from all  # Proxy the Sonatype Nexus OSS web application running at http://localhost:8081/nexus  ProxyPass http://localhost:8081/nexus ProxyPassReverse http://localhost:8081/nexus  

Cela semble correspondre aux instructions de Running Nexus Behind a Proxy . Cependant, je n’ai pas pu effacer le paramètre “URL de base” dans Nexus: cela ne me laissait pas le laisser vide.

Et tout fonctionne principalement : je peux accéder à Nexus à l’URL HTTPS, me connecter et exécuter la plupart des fonctions de l’interface graphique.

Cependant, lorsque vous vous connectez, le message d’avertissement suivant s’affiche:

AVERTISSEMENT : Le paramètre d’URL de base de http://myserver.com/nexus ne correspond pas à votre URL réelle! Si vous utilisez Apache mod_proxy, voici plus d’informations sur la configuration de Nexus.

Et tout ne fonctionne pas dans l’interface graphique. Jusqu’à présent, j’ai remarqué ce qui suit:

  • Flux système: génère l’erreur suivante:

Problème d’access / lien / service / local / stream. Raison:

La ressource identifiée par la requête ne peut générer que des entités de réponse dont les caractéristiques de contenu ne sont pas acceptables en fonction des en-têtes d’acceptation envoyés dans la requête.

Nexus a renvoyé une erreur: ERREUR 406: la ressource identifiée par la requête ne peut générer que des entités de réponse dont les caractéristiques de contenu ne sont pas acceptables en fonction des en-têtes d’acceptation envoyés dans la requête.

  • Suppression de référentiels hébergés: J’ai parcouru et supprimé plusieurs référentiels vides et inutiles. Cependant, après confirmation des suppressions, seule la première a été supprimée. J’ai dû me connecter au site 8081 pour supprimer les autres.
  • Il vous suffit d’ajuster le paramètre baseUrl dans l’écran de configuration Administration-> Serveur. Définissez l’URL que vous utilisez et cliquez sur l’option Forcer l’URL de base.

    Selon la documentation , une meilleure solution pourrait être d’append un RequestHeader à la configuration d’Apache:

     RequestHeader set X-Forwarded-Proto "https" 

    J’ai essayé la réponse acceptée, qui semble fonctionner, mais une fois que j’ai ajouté le RequestHeader, j’ai été capable de décocher l’URL de la force et l’avertissement a été effacé. Je n’ai pas testé l’autre comportement que l’OP décrit, cependant.