Por que o endereço do ícone é localhost quando uso um IP como nome de host

Instalei a versão de desenvolvimento do Discourse no CentOS 7.7 seguindo o guia: beginners-guide-to-install-discourse-for-development-using-docker/102009

O passo a passo da configuração é:

  1. Obter o código-fonte do discourse.git
  2. Alterar a configuração do remetente de e-mail em config/discourse_default.conf
  3. Executar ./d/boot-env --init
  4. Executar ./d/unicorn

O hostname foi definido como um endereço IP, por exemplo: 10.201.0.115
Consigo acessar o Discourse usando 10.201.0.115:9292, mas todas as imagens não estão sendo exibidas.

Erro ao carregar recurso: net::ERR_CONNECTION_REFUSED de http://localhost:9292/images/discourse-logo-sketch.png
No entanto, consigo acessar a imagem usando http://10.201.0.115:9292/images/discourse-logo-sketch.png.

Além disso, o ícone de resposta também não está sendo carregado.
Sei que o problema é que a URL deve usar o IP 10.201.0.115 e não localhost.

O que preciso configurar em relação ao IP?

Agradeço a todos que puderem ajudar.

Você pode me ajudar @pfaffman?
Muito obrigado!

Minha solução é usar localhost na porta 3000. É isso que eu recomendo.

Muito obrigado.
Você quer dizer que seu site não está publicado para outros usuários.
Mas eu uso o Discourse na nossa empresa, e as pessoas podem acessar o site através da rede local da empresa.
O que devo fazer nessa situação?

@pfaffman
você quer dizer: eu só preciso configurar o DISCOURSE_HOSTNAME=localhost no app.yml?
mais alguma coisa?
Você pode me dar um exemplo da configuração correta?

Você instalou a versão de desenvolvimento, que é uma instalação local para modificar o código-fonte do Discourse. Ela não deve ser usada por várias pessoas para utilizar o software de fato.

Se você deseja usar o Discourse, siga a Instalação Padrão Oficial do Discourse.

Ok, muito obrigado!
Mas instalei outra versão conforme o mesmo endereço que você me forneceu, usando discourse_docker.git em vez de discourse.git.
O que precisamos fazer é que não podemos usar a porta 80, pois já está sendo utilizada por outro site.
Precisamos usar outra porta no lugar da 80.
Mudamos a porta para 28080, e o site principal do Discourse está acessível.
Mas surgiu um novo problema: o ícone ou o endereço PNG não está usando a nova porta 28080; ele apenas usa o IP para tentar obter o PNG, e, como você sabe, não é possível acessá-lo assim.
O endereço URL correto do PNG é: http://10.120.0.115:28080/some.png
O endereço URL incorreto do PNG é: http://10.120.0.115/some.png
O que posso fazer quando usamos outra porta no lugar da 80?
@Falco @pfaffman
Aguardo seu retorno.

O Discourse deve ser executado nas portas web padrão 80/443. Se você não puder permitir que o Discourse escute nessas portas diretamente, deve configurar um proxy reverso para redirecionar o tráfego dessas portas para o Discourse, preferencialmente usando um subdomínio.

Muito obrigado!
Eu também uso um proxy reverso Nginx
e agora surgiu um novo problema.

Estou executando o docker run diretamente.
/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

O problema é:
o status do navegador mostra bloqueado (csp)?
O que posso fazer?
Obrigado.

@Falco @pfaffman
Resolvi o problema de CSP.
Mas há um novo:
Mudei a porta padrão 80 para 28080,
mas o endereço do PNG não está usando a nova porta,
http://10.202.63.38/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
é um endereço errado.
O correto deve ser:
http://10.202.63.38:28080/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
Como faço para que a web use a nova porta?
Obrigado!

Ficarei feliz em ajudar. Por favor, veja Redirecting…

Mas tenho quase certeza de que já lhe foi dito que você não pode usar uma porta não padrão.

Muito obrigado!
Como você disse, precisamos usar a porta 80, é isso que teremos que fazer.

Novamente, você precisa de um domínio, mesmo que esse domínio esteja apontando para 10.202.63.38. Tenho certeza de que o Jay pode ajudar a configurar isso; provavelmente você terá que falar com a TI corporativa :slight_smile:

Obrigado pela sua ajuda! :grinning: