2
votes

Eureka renvoie toujours l'URL avec le port 8080

Le port 8080 est toujours renvoyé par eureka, quelle que soit la configuration du client. Voici un exemple de ma configuration eureka sur le client:

Voici l'application.yml

spring:
  application:
    name: myappname

L'application utilisant la configuration ci-dessus essaiera de s'enregistrer auprès d'eureka. il peut s'enregistrer avec succès mais eureka renvoie http://myhost.com:8080 . L'URL attendue est supposée être http://myhost.com.

L'application fonctionne sur le port 8080 mais le point de retour est atteint par http: // myhost. com . y a-t-il un moyen de résoudre ce problème?

--Edit--

voici mon bootstrap.yml

eureka:
  client:
    register-with-eureka: true
    fetch-registry: false
    serviceUrl:
      defaultZone: http://eurekaserver.com/eureka
  instance:
    nonSecurePort: 80
    nonSecurePortEnabled: true
    hostname: myhost


15 commentaires

il ne vous manque pas eureka: ? avant l'instance :


ok, j'ai ajouté le reste de la configuration


ok, une autre question, êtes-vous sûr de ne pas avoir plusieurs profils dans votre projet? peut-être que votre eureka utilise une autre configuration?


Quand vous dites qu'eureka retourne 8080, comment vérifiez-vous cela?


l'interface web eureka a 8080 dans l'url pour chaque application enregistrée auprès d'eureka.


@ycf_l oui J'ai vérifié plusieurs fois qu'il utilise le bon profil


Je pense que par défaut defaultZone: http://eurekaserver.com/eureka utilise le port 80 donc quand vous voulez enregistrer votre MS avec le même port, cela crée un conflit? essayez d'utiliser un autre port au lieu de 80 ou 8080 comme ça nous pouvons nous assurer que les informations sont modifiées correctement


@YCF_L J'ai essayé de démarrer l'application sur le port 8081. J'ai obtenu le même résultat.


Dans ce cas, votre configuration n'est pas utilisée, pouvez-vous s'il vous plaît nous montrer comment vous exécutez votre api et les profils que vous utilisez?


@YCF_L J'ai changé le numéro de port du serveur en 8081. Ensuite, eureka a renvoyé une URL avec le port 8081. J'utilise eureka avec un client feint sans URL de base.


hmm, désolé pas d'idée dans ce cas, mais je pense que vous devez envoyer un ping à l'expert (monsieur @spencergibb) en espérant qu'il pourra nous aider à résoudre ce problème


@spencergibb Salut spencer auriez-vous une idée de la solution à ce problème?


Non, non. Pouvez-vous fournir un exemple d'application?


@ Luke101 c'est à l'équipe d'administration de changer le nom d'hôte et le numéro de port, c'est au serveur frontal si vous en utilisez un, j'ai vu ce problème plusieurs fois, mais l'équipe d'administration résout le problème en donnant un nouveau DNS où ils cachent le port dans le DNS


Donc, pour résoudre votre problème de recherche (comment masquer le numéro de port dans DNS, dans le serveur que vous utilisez)


3 Réponses :


1
votes

Dans quel fichier avez-vous ajouté cette configuration? bootstrap.yml , application.yml ou un profil spécifique? Vérifiez également les fautes de frappe dans le nom du fichier de propriétés.

Ce qui se passe, c'est que votre configuration n'est pas chargée correctement. La configuration automatique d'Eureka Client ne trouve pas de EurekaInstanceConfigBean dans le contexte actuel, donc elle en crée un pour vous. Par défaut, il vérifie d'abord server.port , puis port et finalement il définit le port sur 8080 si les clés précédentes n'ont pas été définies.

Je ne savais pas quelle version vous utilisez, mais c'est le comportement par défaut depuis un certain temps maintenant.

J'espère que cela vous aidera! :)


2 commentaires

Salut, nous utilisons la version 2.0.1 et j'ai posté le bootstrap.yml dans la question. Nous voulons que l'application démarre sur le port 8080, mais lorsque l'URL est publiée dans eureka, elle ne doit pas utiliser 8080. L'application est accessible sans utiliser de port.


Tout fonctionne lorsque vous utilisez tout en exécutant localement. Cependant, lorsque l'application est déployée sur dev , elle ajoute un port 8080 à l'url, ce qui n'est pas souhaité. L'application démarre sur le port 8080 en interne mais ce port doit être ignoré lors de l'enregistrement avec eureka.



0
votes

Je constate exactement le même comportement. Tous les clients enregistrés auprès du serveur sont renvoyés avec la bonne URL mais le mauvais numéro de port, 8080. J'ai 2 clients fonctionnant sur le même nœud avec un nom et un port différents, celui qui utilise vraiment le port 8080 est correctement affiché sur le serveur eureka mais le on utilise le port 9090 et montre en quelque sorte également le port 8080 sur le serveur eureka. J'ai essayé de déplacer le server.port ici et là (bootstrap.yml ou application.yml) mais il n'y a pas de chance. Toute aide sera appréciée!


0 commentaires

0
votes

Dans ce cas, accédez à:

  1. Exécuter en tant que -> Exécuter les configurations
  2. Environnement
  3. Supprimez le numéro de port 8080 et appliquez-le
  4. Essayez d'exécuter votre application avec un port différent en passant server.port = 8081 dans application.properties

0 commentaires