GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Discourse Forum con Nginx su CentOS 7

Discourse è un software gratuito e open source per la creazione di comunità di forum su Internet e mailing list. È stato creato nel 2013 e scritto utilizzando i linguaggi di programmazione Ruby e Javascript. Il software del forum Discourse è stato utilizzato da molte organizzazioni, tra cui Codeacademy, Udacity, Twitter Developers, Docker Community Forum ecc.

In questo tutorial, ti mostreremo passo dopo passo come installare e configurare Discourse Forum con il server Web Nginx sotto il server CentOS 7. In particolare, ti mostreremo come installare il software del forum del discorso, configurare Nginx come proxy inverso per l'app Discourse e proteggere il software del forum del discorso utilizzando SSL gratuito da Letsencrypt.

Cosa faremo

  1. Installa Docker su CentOS 7
  2. Installa e configura il software del forum Discourse
  3. Genera SSL Letsencrypt su CentOS 7
  4. Installa e configura Nginx come proxy inverso per il discorso
  5. Installatore Web Discourse
  6. Configurazione aggiuntiva del discorso

Prerequisiti

  • CentOS 7
  • privilegi radice
  • Account SMTP - ad es. da Mailgun, SendGrid o Mailjet

Passaggio 1:installa Docker su CentOS 7

Il forum del discorso verrà installato nel contenitore Docker. Quindi il primo passo che dobbiamo fare è installare Docker sul nostro server CentOS 7.

Installa Docker su CentOS 7 usando il comando seguente.

wget -qO- https://get.docker.com/ | sh

Se non hai il comando wget, installalo dal repository.

yum -y install wget

Se l'installazione è completa, avvia il servizio Docker e abilitalo all'avvio all'avvio utilizzando i seguenti comandi systemctl.

systemctl start docker
systemctl enable docker

Il motore Docker è stato installato ed è in esecuzione sul server CentOS 7. Verifica lo stato del servizio utilizzando il comando seguente.

systemctl status docker

Il servizio Docker è attivo e in esecuzione.

Passaggio 2:installare e configurare il software del forum Discourse

In questo passaggio installeremo e configureremo il software Discourse. Scaricheremo lo script di composizione mobile del discorso, lo configureremo in base alle nostre esigenze e quindi creeremo un nuovo contenitore Docker per il software del forum del discorso.

Prima di scaricare il discorso, dobbiamo installare il comando git sul server.

yum -y install git

Ora crea una nuova directory '/var/discourse' e scarica/clona lo script della finestra mobile del discorso usando il comando git.

mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

Vai alla directory del discorso e copia un esempio dello script di composizione mobile 'standalone.yml' nella directory '/var/discourse/containers/' con il nome 'app.yml'.

cd /var/discourse
cp samples/standalone.yml containers/app.yml

Ora modifica il file 'app.yml' usando vim.

vim containers/app.yml

- Mappatura delle porte Docker

Per impostazione predefinita, tutte le richieste HTTP e HTTPS verranno gestite dal proxy Docker. E per questa guida, useremo Nginx per questo scopo:tutti gli HTTP e HTTPS saranno gestiti dal server web Nginx.

Quindi dobbiamo modificare la configurazione della mappatura delle porte docker. Il contenitore Discourse avrà solo la connessione HTTP e l'host aprirà la nuova porta "2045" e verrà mappata alla porta del contenitore 80.

Decommenta la riga HTTPS e modifica la riga HTTP con la nuova porta '2045', come mostrato di seguito.

expose:
  - "2045:80"   # http
#  - "443:443" # https

- Configurazione del nome di dominio del discorso

Digita il tuo nome di dominio per il discorso installato nella riga "DISCOURSE_HOSTNAME" come di seguito.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.co'

E digita il tuo indirizzo email nella riga 'DISCOURSE_DEVELOPER_EMAIL'.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

- Configurazione SMTP

La configurazione SMTP è la configurazione più importante per il software Discourse. Assicurati di disporre dell'account SMTP per l'installazione di Discourse:puoi acquistare o provare un account SMTP di livello gratuito da Mailgun, Mailjet o SendGrid.

Per questo tutorial, utilizzeremo l'account SMTP di livello gratuito di Mailgun. Registrati con Mailgun e configura il tuo nome di dominio e assicurati di ottenere i dettagli del tuo account SMTP.

Quindi decommenta la configurazione SMTP e digita i dettagli del tuo account come di seguito.

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: [email protected]
  DISCOURSE_SMTP_PASSWORD: mypassword

Questo è tutto. Salva le modifiche ed esci dall'editor.

Quindi, crea una nuova immagine Discourse Docker basata sulla configurazione del modello app.yml.

sudo ./launcher bootstrap app

Se tutto è completo, avvia/inizializza il nuovo contenitore Discourse utilizzando il comando seguente.

sudo ./launcher start app

E il contenitore Discourse Docker è attivo e funzionante:controllalo utilizzando il comando 'docker ps'.

docker ps -a

Controlla la porta aperta dell'host utilizzando netstat e assicurati che il nuovo proxy docker del servizio con la porta 2045 sia nell'elenco.

netstat -plntu

Il software Discourse Forum è stato installato in un contenitore mobile sull'host CentOS 7.

Passaggio 3:genera SSL Letsencrypt su CentOS 7

Per questo tutorial, eseguiremo il forum Discourse sul server Web Nginx e accetteremo solo la connessione HTTPS. A tale scopo, abbiamo bisogno di nuovi certificati SSL per il nome di dominio, quindi utilizzeremo il certificato SSL gratuito di Letsencrypt.

Installa lo strumento da riga di comando Letsencrypt usando il comando yum nel modo seguente.

yum -y install letsencrypt

Dopo l'installazione, aggiungi un nuovo servizio HTTP e HTTPS alla configurazione di Firewalld.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Ora genera nuovi certificati SSL per il forum Discourse utilizzando il comandoletsencrypt di seguito.

letsencrypt certonly

Vedrai due verifiche da Letsencrypt. Digita il numero '1' per avviare un server Web temporaneo per l'autenticazione.

Come parte di questo, digita il tuo indirizzo email per la notifica di rinnovo, digita "A" per accettare i TOS (Termini di servizio) di letencrypt.

Ora digita il nome di dominio del discorso 'discourse.hakase-labs.co'.

E quando il processo è completo, otterrai il risultato come di seguito.

Il nuovo certificato SSL diletsencrypt è stato generato nella directory '/etc/letsencrypt/live'.

Passaggio 4:installa e configura Nginx come proxy inverso per il discorso

In questo tutorial, utilizzeremo il server Web Nginx come proxy inverso per Discourse in esecuzione nel contenitore Docker. Il server Web Nginx verrà eseguito su porte HTTP e HTTPS e tutte le richieste dei client verranno gestite da Nginx.

Prima di installare il server web Nginx, è necessario installare il repository EPEL sul sistema.

yum -y install epel-release

Ora installa nginx dal repository EPEL usando il seguente comando yum.

yum -y install nginx

Al termine dell'installazione, vai alla directory di configurazione di nginx '/etc/nginx'.

cd /etc/nginx/

E crea una nuova configurazione SSL aggiuntiva 'ssl.conf' usando vim.

vim ssl.conf

Incolla lì la seguente configurazione SSL.

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EECDH+AES;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Salva le modifiche ed esci dall'editor.

Quindi, crea un nuovo file host virtuale nginx 'discourse.conf' per Discourse.

vim conf.d/discourse.conf

Incolla lì la seguente configurazione.

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.co;
 
    # Automatic Redirect HTTP to HTTPS Nginx
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.co;

    # SSL Configuration
    ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.co/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.co/privkey.pem;
    include /etc/nginx/ssl.conf;
 
    # Reverse Proxy Configuration
    location / {
        proxy_pass http://discourse.hakase-labs.co:2045/;
        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://discourse.hakase-labs.co:2045/ https://discourse.hakase-labs.co;
    }
}

Salva ed esci.

Ora prova la configurazione di nginx e assicurati che non ci siano errori. Quindi riavvia il servizio Nginx.

nginx -t
systemctl restart nginx

L'installazione e la configurazione di Nginx come proxy inverso per il contenitore Discourse sono state completate.

Fase 5 - Programma di installazione Web di Discourse

Apri il tuo browser web e visita l'URL del tuo discorso, il mio è:

http://discourse.hakase-labs.co

E verrai reindirizzato alla connessione HTTPS.

Fai clic su "Registrati pulsante '.

Ora dobbiamo creare un nuovo account "Amministratore".

Digita il nome utente e la password dell'amministratore, quindi fai clic su 'Registrati '.

E otterrai la pagina per la conferma via email. Controlla la tua casella di posta e assicurati di ottenere la configurazione dell'e-mail dal forum Discourse come di seguito.

Fai clic sul 'Link '.

E otterrai la pagina "Discorso di benvenuto".

Fai clic sul pulsante 'fai clic qui per attivare il tuo account '. E ora dovresti arrivare alla pagina seguente.

Fai clic su "Forse più tardi pulsante '.

Il Forum del discorso è stato installato e otteniamo la home page predefinita come mostrato di seguito.

Puoi andare alla "Dashboard di amministrazione" e otterrai la Dashboard di amministrazione di Discourse.

Il software Discourse Forum è stato installato con Nginx come proxy inverso sul server CentOS 7.

Fase 6 - Configurazione aggiuntiva del discorso

Durante l'installazione di Discourse, alcune persone affermano di non ricevere l'e-mail di conferma per l'attivazione dell'utente amministratore.

Per questo problema, assicurati di avere l'account SMTP corretto nella configurazione app.yml. Oppure puoi attivare manualmente l'account amministratore dal tuo server.

Per attivare manualmente il tuo account amministratore, vai alla directory '/var/discourse'.

cd /var/discourse

Ora accedi al contenitore del discorso con il seguente comando.

./launcher enter app

E attiva il primo utente amministratore usando il comando rails come mostrato di seguito.

rails c
u = User.last
u.admin = true
u.activate
u.save

Ora puoi accedere al forum Discourse con il tuo nome utente e password.


Cent OS
  1. Come installare Docker su CentOS 8

  2. Come installare WordPress con Nginx su CentOS 7

  3. Come installare phpMyAdmin con Nginx su CentOS 7

  4. Come installare SuiteCRM con Nginx su CentOS 7

  5. Come installare phpMyAdmin con Nginx su CentOS 7 / RHEL 7

Come installare Vanila Forum su CentOS 8

Come installare Nginx con ngx_pagespeed su CentOS

Come installare Nginx con PHP-FastCGI su CentOS 6

Come installare Magento con Nginx su CentOS 7

Come installare Docker su CentOS 7

Come installare Laravel con Nginx su CentOS 8