Perché l'indirizzo dell'icona è localhost quando uso un IP come hostname

Ho installato la versione di sviluppo di Discourse su CentOS 7.7 seguendo la guida “beginners-guide-to-install-discourse-for-development-using-docker/102009”.

I passaggi di configurazione sono:

  1. Ottenere il codice sorgente da discourse.git
  2. Modificare la configurazione del mittente delle email in config/discourse_default.conf
  3. Eseguire ./d/boot-env --init
  4. Eseguire ./d/unicorn

L’hostname è impostato su un indirizzo IP come: 10.201.0.115
Posso accedere a Discourse tramite 10.201.0.115:9292, ma le immagini non vengono visualizzate.

Errore nel caricamento della risorsa: net::ERR_CONNECTION_REFUSED da http://localhost:9292/images/discourse-logo-sketch.png
Tuttavia, riesco ad accedere all’immagine utilizzando http://10.201.0.115:9292/images/discourse-logo-sketch.png.

Inoltre, anche l’icona di risposta non viene caricata.
So che il problema è che l’URL deve essere l’IP 10.201.0.115 e non localhost.

Cosa devo configurare riguardo all’IP?

Grazie a chiunque possa aiutarmi.

Puoi aiutarmi, @pfaffman?
Grazie mille!

La mia soluzione è utilizzare localhost sulla porta 3000. È quello che consiglio.

Grazie mille.
Vuoi dire che il tuo sito web non è pubblicato per gli altri utenti.
Ma io uso Discourse per la nostra azienda; le persone possono accedere al sito web tramite la rete locale aziendale.
Cosa posso fare in questa situazione?

@pfaffman
intendi: devo solo configurare DISCOURSE_HOSTNAME=localhost in app.yml?
c’è altro?
puoi fornire un esempio della configurazione corretta?

Hai installato la versione di sviluppo, che è un’installazione locale destinata alla modifica del codice sorgente di Discourse. Non è pensata per essere utilizzata da più persone per impiegare effettivamente il software.

Se desideri utilizzare Discourse, segui la installazione standard ufficiale di Discourse.

Ok, grazie mille!
Ma ho installato un’altra versione seguendo lo stesso indirizzo che mi hai fornito, usando discourse_docker.git invece di discourse.git.
Ciò di cui abbiamo bisogno è non poter utilizzare la porta 80, che è già occupata da un altro sito web.
Dobbiamo utilizzare un’altra porta invece della 80.
Abbiamo cambiato la porta in 28080 e il sito principale di Discourse è accessibile.
Ma abbiamo riscontrato un nuovo problema: gli indirizzi delle icone o dei file PNG non utilizzano la nuova porta 28080; usano solo l’IP per cercare di recuperare i PNG, che, come sai, non sono raggiungibili.
L’indirizzo URL corretto per i PNG è: http://10.120.0.115:28080/some.png
L’indirizzo URL errato per i PNG è: http://10.120.0.115/some.png
Cosa posso fare quando utilizziamo una porta diversa dalla 80?
@Falco @pfaffman
Resto in attesa di un vostro riscontro.

Discourse deve essere eseguito sulle porte web standard 80/443. Se non è possibile configurare Discourse per ascoltare direttamente su queste porte, dovresti impostare un proxy inverso per reindirizzare il traffico da queste porte verso Discourse, preferibilmente utilizzando un sottodominio.

Grazie mille!
Anch’io utilizzo un reverse proxy Nginx
e ora sorge un nuovo problema.

Sto usando docker run direttamente.
/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

Il problema è:
lo stato del browser è bloccato (csp)?
Cosa posso fare?
Grazie.

@Falco @pfaffman
Ho risolto il problema CSP.
ma ce n’è uno nuovo:
ho cambiato la porta predefinita 80 in 28080
ma l’indirizzo PNG non sta utilizzando la nuova porta,
http://10.202.63.38/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
è un indirizzo errato.
quello corretto deve essere:
http://10.202.63.38:28080/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
come posso far sì che il web utilizzi la nuova porta?
Grazie!

Sarò felice di aiutarti. Per favore, consulta Redirecting…

Ma sono abbastanza sicuro che ti sia già stato detto che non puoi utilizzare una porta non standard.

Grazie mille!
Come dici, dobbiamo usare la porta 80, è quello che dovremo fare.

Ancora una volta, hai bisogno di un dominio, anche se quel dominio punta a 10.202.63.38. Sono sicuro che Jay possa aiutarti a configurarlo; probabilmente dovrai parlare con l’IT aziendale :slight_smile:

Grazie mille per il tuo aiuto! :grinning: