¿Por qué la dirección del icono es localhost cuando uso una IP como nombre de host?

He instalado la versión de desarrollo de Discourse en CentOS 7.7 siguiendo la guía: beginners-guide-to-install-discourse-for-development-using-docker/102009.

Los pasos de configuración son:

  1. Obtener el código fuente de discourse.git
  2. Modificar la configuración del remitente de correo en config/discourse_default.conf
  3. Ejecutar ./d/boot-env --init
  4. Ejecutar ./d/unicorn

El nombre de host está configurado con una dirección IP como: 10.201.0.115
Puedo acceder a Discourse usando 10.201.0.115:9292, pero todas las imágenes no se muestran.

Error al cargar el recurso: net::ERR_CONNECTION_REFUSED desde http://localhost:9292/images/discourse-logo-sketch.png
Sin embargo, sí puedo obtener el PNG usando http://10.201.0.115:9292/images/discourse-logo-sketch.png.

Además, el icono de respuesta tampoco se carga.
Sé que la causa es que la URL debe ser la IP 10.201.0.115 y no localhost.

¿Qué necesito configurar respecto a la IP?

Gracias a quien pueda ayudar.

¿Puedes ayudarme @pfaffman?
¡Muchas gracias!

Mi solución es usar localhost en el puerto 3000. Eso es lo que recomiendo.

Muchas gracias.
¿Quisiste decir que tu sitio web no está publicado para otros usuarios?
Sin embargo, yo utilizo Discourse en nuestra empresa; las personas pueden acceder al sitio web a través de la red local de la empresa.
¿Qué puedo hacer en esta situación?

@pfaffman
¿Te refieres a que solo necesito configurar DISCOURSE_HOSTNAME=localhost en app.yml?
¿Hay algo más?
¿Podrías darme un ejemplo de la configuración correcta?

Has instalado la versión de desarrollo, que es una instalación local destinada a modificar el código fuente de Discourse. No está diseñada para que varias personas utilicen el software de manera real.

Si quieres usar Discourse, sigue la Instalación Estándar Oficial de Discourse.

¡Ok, muchas gracias!
Pero he instalado otra versión según la misma dirección que me diste, usando discourse_docker.git en lugar de discourse.git.
Lo que necesitamos es que no podemos usar el puerto 80, ya que está siendo utilizado por otro sitio web.
Debemos usar otro puerto en lugar del 80.
Hemos cambiado el puerto al 28080 y nuestro sitio principal de Discourse puede accederse.
Pero hemos encontrado un nuevo problema: los iconos o las direcciones PNG no toman el nuevo puerto 28080; simplemente usan la IP para intentar obtener el PNG, como sabes, no se puede alcanzar.
La dirección URL correcta del PNG es: http://10.120.0.115:28080/some.png
La dirección URL incorrecta del PNG es: http://10.120.0.115/some.png
¿Qué puedo hacer cuando usamos otro puerto en lugar del 80?
@Falco @pfaffman
Quedo a la espera de sus respuestas.

Discourse debe ejecutarse en los puertos web estándar 80/443. Si no puedes permitir que Discourse escuche directamente en esos puertos, debes configurar un proxy inverso para redirigir el tráfico desde esos puertos hacia Discourse, preferiblemente utilizando un subdominio.

¡Muchas gracias!
También utilizo un proxy inverso Nginx y ahora surge un nuevo problema.

Ejecuto el comando docker run directamente:
/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

El problema es:
¿El estado del navegador indica “bloqueado (CSP)”?
¿Qué puedo hacer?

¡Gracias!

@Falco @pfaffman
He resuelto el problema de CSP.
Pero ahora hay uno nuevo:
He cambiado el puerto predeterminado 80 al 28080,
pero la dirección PNG no está adoptando el nuevo puerto:
http://10.202.63.38/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
es una dirección incorrecta.
La correcta debe ser:
http://10.202.63.38:28080/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
¿Cómo puedo hacer que la web utilice el nuevo puerto?
¡Gracias!

Me encantará ayudarte. Por favor, consulta Redirecting…

Pero estoy bastante seguro de que ya te han dicho que no puedes usar un puerto no estándar.

¡Muchas gracias!
Como dices, debemos usar el puerto 80, eso es lo que tendremos que hacer.

De nuevo, necesitas un dominio, incluso si ese dominio apunta a 10.202.63.38. Estoy seguro de que Jay puede ayudarte a configurarlo; probablemente tendrás que hablar con el departamento de TI corporativo :slight_smile:

¡Gracias por tu ayuda! :grinning: