Comment faire pour exécuter sonatype nexus sur le port 80?
J'ai une fedora server. J'ai installé tomcat via yum gestionnaire de paquets. Ensuite, j'ai déployé la guerre du nexus sur le répertoire webapps. J'ai essayé à l'aide de jsvc pour exécuter le serveur sur le port 80 et n'a pas de travail. J'ai vu que vous pouvez également utiliser port fowarding. Quelle est la meilleure alternative ?
edit 1: httpd
J'ai suivi 3.8. L'exécution de Nexus Derrière un Proxy de sonatype doc et je suis un peu confus.
J'ai installé httpd, et j'ai la configuration suivante, où example.com est mon domaine.
/etc/httpd/conf.d/nexus.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /nexus/http://localhost:8081/nexus/
ProxyPassReverse /nexus/http://localhost:8081/nexus/
ProxyPreserveHost On
<Location />
Order allow,deny
Allow from all
</Location>
ErrorLog logs/nexus/error.log
CustomLog logs/nexus/access.log common
</VirtualHost>
/home/guillaume/www/nexus/conf
# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-webapp=${bundleBasedir}/nexus
nexus-webapp-context-path=/nexus
# Nexus section
nexus-work=${bundleBasedir}/../sonatype-work/nexus
runtime=${bundleBasedir}/nexus/WEB-INF
pr.encryptor.publicKeyPath=/apr/public-key.txt
lorsque j'essaie d'accéder à
http://localhost:8081/nexus/index.html
tout travailhttp://localhost/nexus/index.html
tout travailhttp://example.com/nexus/index.html
juste accrocher ( le port 80 est ouvert dans le pare-feu )$netstat -tulpn | grep :80
tcp 0 0 :::80 :::* ÉCOUTER 3965/httpd
tcp 0 0 :::8081 :::* ÉCOUTER 3811/java
udp 0 0 0.0.0.0:803 0.0.0.0:* 1051/rpc.statd
aucune idée sur comment faire pour que la procuration de travail ?
edit 2: nginx
J'ai trouvé l'erreur, le dns a été mauvais: nslookup example.com
résolu à x.x.x.x
quand mon ip a été x.x.x.y
mais j'ai apprécié ngix configuration
server {
listen 80;
server_name example.com;
access_log off;
error_log off;
location /{
proxy_pass http://localhost:8081;
proxy_redirect off;
#Proxy Settings
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# would be a good idea to redirect static assets
}
OriginalL'auteur Guillaume Massé | 2012-08-27
Vous devez vous connecter pour publier un commentaire.
Je n'aime pas courir application java serveurs sur le port 80. Nécessite le processus à exécuter en tant que root.
La meilleure approche est d'installer Apache ou Nginx) et configurer la connexion d'un serveur proxy inverse. Pour plus de détails sur la façon dont cela est fait, je vous suggère la lecture de la corporation de la section de la Nexus livre:
Note
Cette réponse est obsolète donné un monde où docker existe. Ces jours, il est hautement souhaitable d'exécuter des serveurs d'application dans un conteneur sur le port 80.
OriginalL'auteur Mark O'Connor
Il est possible d'utiliser authbind pour faire le travail (sans proxy). De l'utiliser pour la nexus c'est un peu compliqué cependant, depuis le nexus est commencé par une java service wrapper (are), qui à son tour est lancé par un script de démarrage (qui rappelle lui-même comme un autre utilisateur, si désiré).
La solution est comme suit (les chemins relatifs sont par rapport à la nexus répertoire home,
$NEXUS_HOME
):conf/nexus.properties
ensemble(ou ce que vous avez besoin)
créer un (système) de l'utilisateur nexus, qui a un shell de connexion (!), par exemple,
(tous les nexus fichiers appartiennent à l'utilisateur, par exemple
chown -R nexus:nexus .
)Un shell de connexion est nécessaire, parce que
bin/nexus
appelssu - $RUN_AS_USER ...
, c'est pourquoi l'utilisateurnexus
doit être en mesure de "login" (pas vraiment).obtenir l'id d'utilisateur pour l'utilisateur:
id -u nexus
(disons que c'était108
)créer le authbind fichier de configuration
/etc/authbind/byuid/108
(utiliser le nexus id de l'utilisateur comme nom de fichier):L'IP et le port doit être le même que celui utilisé dans
nexus.properties
(voir étape 1). L'IPv6 port peut ou peut ne pas être nécessaire, dépend de la configuration (à partir de la Jetée). Il est sûr de lui permettre de authbind./usr/local/bin/authbind-java
):(rendre le fichier exécutable, par
chmod +x /usr/local/bin/authbind-java
)bin/jsw/conf/wrapper.conf
, trouver le réglagewrapper.java.command
(devrait lirejava
de la valeur) et remplacez la valeur avecauthbind-java
(le script d'aide juste à l'écrit).Maintenant, vous êtes prêt à commencer à nexus. De la nexus répertoire home:
(ou de modifier des
bin/nexus
et définirRUN_AS_USER=nexus
directement et appelbin/nexus start
)Nexus (le serveur jetty) devrait maintenant démarrer, initialiser et enfin lier au port 80, mais toujours en cours d'exécution comme le "non privilégiés" utilisateur
nexus
.Une note de côté: depuis que vous êtes à la liaison du port 80 pour les nexus, c'est probablement en cours d'exécution sur un propre (virtuel) de l'hôte, donc il est facilement possible de désigner un propre nom de domaine (par exemple.
nexus.example.com
). Ce faisant, je préfère à la bande/nexus
préfixe (chemin de contexte) à partir de l'URI, pour sauver la dactylographie, c'est dans le nom de domaine déjà. Pour avoir nexus pour servir sous la racine, misnexus-webapp-context-path
à/
(enconf/nexus.properties
). Chemin du référentiel, qui allait devenir par exemplehttp://nexus.example.com/content/repositories/releases
(au lieu dehttp://nexus.example.com/nexus/content/repositories/releases
).OriginalL'auteur nix
Que diriez-vous simplement à l'aide d'iptables pour rediriger le port.
Donc, nexus est toujours en cours d'exécution sur le port 8080, mais vous pouvez aussi y accéder via le port 80.
Voir (par exemple) https://www.systutorials.com/816/port-forwarding-using-iptables/ pour plus d'informations sur cette mise en place.
OriginalL'auteur Rainer Jung