Pourquoi l'adresse de l'icône est localhost lorsque j'utilise une IP comme nom d'hôte

J’ai installé la version de développement de Discourse sur CentOS 7.7 en suivant le guide : beginners-guide-to-install-discourse-for-development-using-docker/102009

Les étapes de configuration sont les suivantes :

  1. Récupérer le code source depuis discourse.git
  2. Modifier la configuration de l’expéditeur d’e-mails dans config/discourse_default.conf
  3. Exécuter ./d/boot-env --init
  4. Exécuter ./d/unicorn

L’hostname est défini avec une adresse IP comme : 10.201.0.115
Je peux accéder à Discourse via 10.201.0.115:9292, mais aucune image ne s’affiche.

Échec du chargement de la ressource : net::ERR_CONNECTION_REFUSED depuis http://localhost:9292/images/discourse-logo-sketch.png
Cependant, je peux accéder à l’image PNG via http://10.201.0.115:9292/images/discourse-logo-sketch.png.

De plus, l’icône de réponse ne peut pas être chargée non plus.
Je sais que la cause est que l’URL doit être l’adresse IP 10.201.0.115 et non localhost.

Que dois-je configurer concernant l’adresse IP ?

Merci à tous ceux qui pourront m’aider.

Pouvez-vous m’aider @pfaffman ?
Merci beaucoup !

Ma solution consiste à utiliser localhost sur le port 3000. C’est ce que je recommande.

Merci beaucoup.
Vous voulez dire que votre site web n’est pas publié pour les autres utilisateurs.
Mais j’utilise Discourse pour notre entreprise, et les personnes du réseau local de l’entreprise peuvent accéder au site.
Comment puis-je procéder dans cette situation ?

@pfaffman
Tu veux dire : il me suffit de configurer DISCOURSE_HOSTNAME=localhost dans app.yml ?
Y a-t-il autre chose ?
Peux-tu me donner un exemple de configuration correcte ?

Vous avez installé la version de développement, qui est une installation locale destinée à la modification du code source de Discourse. Elle n’est pas conçue pour être utilisée par plusieurs personnes afin d’exploiter le logiciel.

Si vous souhaitez utiliser Discourse, suivez la documentation officielle d’installation standard de Discourse.

D’accord, merci beaucoup !
Mais j’ai installé une autre version selon la même adresse que celle que vous m’avez fournie, en utilisant discourse_docker.git au lieu de discourse.git.
Ce dont nous avons besoin, c’est que nous ne pouvons pas utiliser le port 80, qui est déjà utilisé par un autre site web.
Nous devons utiliser un autre port à la place du 80.
Nous avons changé le port en 28080, et notre site principal Discourse est accessible.
Mais nous rencontrons un nouveau problème : l’icône ou l’adresse PNG n’utilise pas le nouveau port 28080, elle utilise simplement l’adresse IP pour tenter de récupérer le PNG, comme vous le savez, cela ne peut pas être atteint.
La bonne adresse URL du PNG est : http://10.120.0.115:28080/some.png
La mauvaise adresse URL du PNG est : http://10.120.0.115/some.png
Que puis-je faire lorsque nous utilisons un autre port à la place du 80 ?
@Falco @pfaffman
J’attends avec impatience vos retours.

Discourse doit être exécuté sur les ports web standards 80/443. Si vous ne pouvez pas permettre à Discourse d’écouter directement sur ces ports, vous devez configurer un proxy inverse pour rediriger le trafic de ces ports vers Discourse, de préférence en utilisant un sous-domaine.

Merci beaucoup !
J’utilise également un proxy inverse Nginx.
Voici le nouveau problème.

J’utilise docker run directement.
/usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=8 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET= -e DISCOURSE_DB_HOST=10.201.0.116 -e DISCOURSE_DB_PORT=5432 -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=10.201.0.115 -e DISCOURSE_DEVELOPER_EMAILS=sheoixoet@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.gmail.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=sheoixoet -e DISCOURSE_SMTP_PASSWORD=wpjedgfoiibrbffe -e DISCOURSE_SMTP_ENABLE_START_TLS=true -e DISCOURSE_SMTP_AUTHENTICATION=login -e DISCOURSE_SMTP_OPENSSL_VERIFY_MODE=none -e DISCOURSE_DB_NAME=discourse -e DISCOURSE_DB_USERNAME=postgres -e DISCOURSE_DB_PASSWORD=wetrwet@26 -h wetwrigp93-app --name app -t -p 28080:80 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:3a:0a:b4:ce:e9 --privileged local_discourse/app /sbin/boot

Le problème est le suivant :
L’état du navigateur indique « bloqué (csp) » ?
Que puis-je faire ?
Merci.

@Falco @pfaffman
J’ai résolu le problème CSP.
Mais il y en a un nouveau :
J’ai changé le port par défaut 80 en 28080,
mais l’adresse PNG n’utilise pas le nouveau port,
http://10.202.63.38/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
c’est une adresse incorrecte.
L’adresse correcte doit être :
http://10.202.63.38:28080/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
Comment puis-je faire en sorte que le site web utilise le nouveau port ?
Merci !

Je serai ravi de vous aider. Veuillez consulter Redirecting…

Mais je suis presque certain qu’on vous a déjà dit que vous ne pouvez pas utiliser un port non standard.

Merci beaucoup !
Comme vous le dites, nous devons utiliser le port 80, c’est ce que nous devrons faire.

Encore une fois, vous avez besoin d’un nom de domaine, même si ce domaine pointe vers 10.202.63.38. Je suis sûr que Jay peut vous aider à le configurer ; vous devrez probablement en parler au service informatique de l’entreprise :slight_smile:

Merci pour votre aide ! :grinning: