Discourse carregado parcialmente e erros 404 em alguns arquivos css, js e svg

Olá, membros do fórum Discourse.

Instalei o Discourse com sucesso anteriormente usando este link, mas desta vez, obtive o seguinte erro, então preciso da ajuda de vocês para a instalação.

Quando resolver este problema, gostaria de compartilhar como consegui corrigi-lo.

A partir do navegador, obtive o seguinte erro ao instalar o Discourse.

[Erro] Falha ao carregar recurso: o servidor respondeu com o status 404 () (wizard_c4aee3fa9261fde8baf9c596832d10e16a40c298.css, linha 0)
[Erro] Falha ao carregar recurso: o servidor respondeu com o status 404 () (wizard-vendor-e639f7bedb553c62a51539714bacf10a7bb9c2a68ee57d9d9e9da130ede31d8b.js, linha 0)
[Erro] Falha ao carregar recurso: o servidor respondeu com o status 404 () (tada.svg, linha 0)
[Erro] Falha ao carregar recurso: o servidor respondeu com o status 404 () (ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js, linha 0)
[Erro] Recusa em executar https://forum.sangean.co.kr/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js como script porque “X-Content-Type: nosniff” foi definido e seu Content-Type não é um tipo MIME de script.
[Erro] Recusa em executar https://forum.sangean.co.kr/assets/wizard-vendor-e639f7bedb553c62a51539714bacf10a7bb9c2a68ee57d9d9e9da130ede31d8b.js como script porque “X-Content-Type: nosniff” foi definido e seu Content-Type não é um tipo MIME de script.
[Erro] Falha ao carregar recurso: o servidor respondeu com o status 404 () (tada.svg, linha 0)

Meu ambiente: Ubuntu 18.94, Nginx como proxy reverso.

Instalei todo o processo usando root, então aqui estão as informações do “ls -al” de /var/discourse/shared/standalone

Acho que é um problema relacionado a permissões, mas não tenho certeza.

drwxr-xr-x 11 root root 4096 Apr 4 05:50 .
drwxr-xr-x 3 root root 4096 Apr 4 04:45 ..
drwxr-xr-x 2 1000 www-data 4096 Apr 4 04:45 backups
drwxr-xr-x 4 root root 4096 Apr 4 04:45 log
drwxr-xr-x 2 uuidd uuidd 4096 Apr 4 04:45 postgres_backup
drwx------ 19 uuidd uuidd 4096 Apr 4 05:50 postgres_data
drwxrwxr-x 3 uuidd uuidd 4096 Apr 4 05:50 postgres_run
drwxr-xr-x 2 landscape ssh 4096 Apr 4 06:00 redis_data
drwxr-xr-x 4 root root 4096 Apr 4 05:50 state
drwxr-xr-x 4 1000 www-data 4096 Apr 4 05:50 tmp
drwxr-xr-x 3 1000 www-data 4096 Apr 4 04:47 uploads

Minha configuração do /nginx/sites-available/forum.sangean.co.kr

server {
listen 80; listen [::]:80;
server_name forum.sangean.co.kr;

return 301 https://$host$request_uri;

}

server {
server_name forum.sangean.co.kr www.forum.sangean.co.kr;

access_log /var/log/nginx/forum.sangean.co.kr.access.log ;
error_log /var/log/nginx/forum.sangean.co.kr.error.log;

include common/locations-wo.conf;
include /var/www/forum.sangean.co.kr/conf/nginx/*.conf;

location / {
    proxy_pass http://forum.sangean.co.kr:25654/;
    proxy_set_header Host $http_host;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_redirect http://forum.sangean.co.kr:25654/ https://forum.sangean.co.kr;
}

}

Se precisarem dos arquivos de configuração do nginx ou dos arquivos de configuração do Discourse incluídos, posso editar ou responder a este post.

Muito obrigado.

Sua configuração do nginx não parece correta. Você pode compartilhar seu arquivo yml também?

Acho que você está tentando executar o Discourse na porta 25654, mas é fácil usar o modelo de sockets do Discourse para executá-lo em um socket e usar o proxy para encaminhar as solicitações ao socket.

Você pode entender melhor a configuração do nginx com este guia: Add an offline page to display when Discourse is rebuilding or starting up

@itsbhanusharma Muito obrigado pela sua resposta

Vou ler e implementar sua postagem também por conta própria.

Aqui está o meu arquivo app.yml.

## este é o modelo de contêiner Docker Discourse tudo-em-um, autônomo
##
## Após fazer alterações neste arquivo, você DEVE reconstruir
## /var/discourse/launcher rebuild app
##
## TENHA *MUITO* CUIDADO AO EDITAR!
## ARQUIVOS YAML SÃO SUPER SUPER SENSÍVEIS A ERROS DE ESPAÇAMENTO OU ALINHAMENTO!
## visite http://www.yamllint.com/ para validar este arquivo conforme necessário

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  #- "templates/web.ratelimited.template.yml"
## Descomente estas duas linhas se desejar adicionar o Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## quais portas TCP/IP este contêiner deve expor?
## Se você deseja que o Discourse compartilhe uma porta com outro servidor web como Apache ou nginx,
## consulte https://meta.discourse.org/t/17247 para detalhes
expose:
  - "25654:80"
  #- "80:80"   # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

## Defina db_shared_buffers para no máximo 25% da memória total.
  ## será definido automaticamente pelo bootstrap com base na RAM detectada, ou você pode substituir
  db_shared_buffers: "256MB"

  ## pode melhorar o desempenho de ordenação, mas aumenta o uso de memória por conexão
  #db_work_mem: "40MB"

  ## Qual revisão do Git este contêiner deve usar? (padrão: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Quantas solicitações web simultâneas são suportadas? Depende da memória e dos núcleos da CPU.
  ## será definido automaticamente pelo bootstrap com base nas CPUs detectadas, ou você pode substituir
  UNICORN_WORKERS: 3

  ## TODO: O nome de domínio ao qual esta instância do Discourse responderá
  ## Obrigatório. O Discourse não funcionará com um número IP puro.
  DISCOURSE_HOSTNAME: 'forum.sangean.co.kr'

  ## Descomente se quiser que o contêiner seja iniciado com o mesmo

## nome de host (opção -h) especificado acima (padrão "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de e-mails separados por vírgula que serão administradores e desenvolvedores
  ## no exemplo de inscrição inicial 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'admin@sangean.co.kr'

  ## TODO: O servidor de e-mail SMTP usado para validar novas contas e enviar notificações
  ## ENDEREÇO SMTP, nome de usuário e senha são obrigatórios
  # AVISO: o caractere '#' na senha SMTP pode causar problemas!
  DISCOURSE_SMTP_ADDRESS: smtp.elasticemail.com
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: admin@sangean.co.kr
  DISCOURSE_SMTP_PASSWORD: 58BD8932EDB9FEF87F8B3F0A75F482295B4B
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, padrão true)

  ## Se você adicionou o modelo Lets Encrypt, descomente abaixo para obter um certificado SSL gratuito
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## O endereço http ou https do CDN para esta instância do Discourse (configurado para buscar)
  ## consulte https://meta.discourse.org/t/14857 para detalhes
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## O contêiner Docker é sem estado; todos os dados são armazenados em /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins vão aqui
## consulte https://meta.discourse.org/t/19157 para detalhes
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Quaisquer comandos personalizados para executar após a construção
run:
  - exec: echo "Início dos comandos personalizados"
  ## Se você quiser definir o endereço de e-mail 'De' para sua primeira inscrição, descomente e altere:
  ## Após receber o primeiro e-mail de inscrição, comente novamente a linha. Só precisa ser executado uma vez.
  - exec: rails r "SiteSetting.notification_email='admin@sangean.co.kr'"
  - exec: echo "Fim dos comandos personalizados"

A única coisa que posso sugerir aqui é implementar o post que sugeri… Assim, você não terá problemas com o proxy reverso.