GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat diskusní fórum s Nginx na Ubuntu 16.04

Discourse je bezplatný software s otevřeným zdrojovým kódem pro vytváření komunity na internetovém fóru a seznamu adresátů. Byl vytvořen v roce 2013 a napsán v programovacích jazycích Ruby a Javascript. Software diskurzního fóra používá mnoho organizací, včetně Codeacademy, Udacity, Twitter Developers a Docker Community Forum.

V tomto tutoriálu vám krok za krokem ukážeme, jak nainstalovat a nakonfigurovat diskusní fórum s webovým serverem Nginx na Ubuntu 16.04. Konkrétně vám ukážeme, jak nainstalovat software Discourse Forum Software, nakonfigurovat Nginx jako reverzní proxy pro aplikaci Discourse a zabezpečit software Diskusního fóra pomocí bezplatného SSL od společnosti Letsencrypt.

Co uděláme

  1. Nainstalujte Docker na Ubuntu 16.04
  2. Nainstalujte a nakonfigurujte software Diskusního fóra
  3. Vygenerujte SSL Letsencrypt na Ubuntu 16.04
  4. Nainstalujte a nakonfigurujte Nginx jako reverzní proxy pro Discourse
  5. Instalátor webu diskursu
  6. Další konfigurace diskurzu

Předpoklady

  • Ubuntu 16.04
  • Kořenová oprávnění
  • Účet SMTP – Mailgun, SendGrid, Mailjet atd.

Krok 1 – Instalace Dockeru na Ubuntu 16.04

Software Discourse je napsán v Ruby a Javascriptu, používá PostgreSQL jako hlavní databázi a Redis jako mezipaměť a pro přechodná data. Nainstalujeme Discourse pod kontejner Docker.

Proces instalace bude proveden na Ubuntu 16.04. Nejprve tedy nainstalujte Docker pomocí příkazu níže.

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

Po dokončení instalace zkontrolujte službu dockeru a ujistěte se, že je již v systému spuštěna.

systemctl status docker

A také se ujistěte, že je Docker ve spouštěcí spouštěcí aplikaci.

systemctl is-enabled docker

Krok 2 – Instalace a konfigurace diskuzního fóra

V tomto kroku nainstalujeme a nakonfigurujeme software Discourse. Stáhneme skript diskurzu docker-compose, nakonfigurujeme jej podle našich požadavků a poté vytvoříme nový kontejner Docker pro software diskurzního fóra.

Vytvořte nový adresář '/var/discourse' a naklonujte instalační skript.

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

Nyní přejděte do adresáře 'discourse' a zkopírujte ukázku souboru docker-compose.

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

Upravte soubor 'app.yml' pomocí editoru vim.

vim containers/app.yml

Konfigurovat mapování portu Docker

Ve výchozím nastavení budou všechny požadavky HTTP a HTTPS zpracovány proxy serverem Docker. A pro tento návod k tomuto účelu použijeme Nginx – veškerý HTTP a HTTPS bude zpracován webovým serverem Nginx.

Musíme tedy změnit konfiguraci mapování portů dockeru. Kontejner diskursu bude mít pouze připojení HTTP a hostitel bude otevírat nový port '2045' a mapovat na port kontejneru 80.

Odkomentujte řádek HTTPS a změňte řádek HTTP na nový port '2045'.

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

Konfigurace názvu domény diskurzu

Zadejte svůj vlastní název domény pro diskurz nainstalovaný na řádku 'DISCOURSE_HOSTNAME', jak je uvedeno níže.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.me'

A zadejte svou e-mailovou adresu do řádku „DISCOURSE_DEVELOPER_EMAIL“.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

Konfigurace SMTP

Toto je nejdůležitější konfigurace pro Discourse Software. Ujistěte se, že máte SMTP účet pro instalaci Discourse – můžete si koupit nebo vyzkoušet bezplatný SMTP účet od Mailgun, Mailjet nebo SendGrid.

V tomto tutoriálu budeme používat bezplatný účet SMTP od Mailgun. Odkomentujte konfiguraci SMTP a zadejte svůj účet, jak je uvedeno níže.

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

Uložte a ukončete.

Dále vytvořte nový obrázek Discourse Docker založený na konfiguraci šablony app.yml.

sudo ./launcher bootstrap app

Poté spusťte/inicializujte nový kontejner diskursu pomocí příkazu níže.

sudo ./launcher start app

Kontejner diskursu by měl být v provozu – zkontrolujte jej pomocí příkazu docker.

docker ps -a

Zkontrolujte otevřený port hostitele pomocí netstat a ujistěte se, že je na seznamu nový docker-proxy port 2045.

netstat -plntu

Software Discourse Forum byl nainstalován pod kontejnerem docker na hostitelském Ubuntu 16.04.

Krok 3 – Vygenerování SSL Letsencrypt na Ubuntu 16.04

Diskusní fórum poběží pod zabezpečeným připojením HTTP a bude ho spravovat webový server Nginx. Pro tuto příručku použijeme bezplatné SSL od Letsencrypt a musíme nainstalovat klienta letsencrypt na server.

Nainstalujte letsencrypt pomocí příkazu apt níže.

sudo apt install letsencrypt -y

Nyní vygenerujte nové certifikáty SSL pomocí příkazu letsencrypt.

letsencrypt certonly

Zadejte svou e-mailovou adresu pro obnovení oznámení a zvolte 'OK'.

Pro Letsencrypt TOS (Terms Of Service) zvolte 'Souhlasím'.

Nyní zadejte název domény diskurzu „discourse.hakase-labs.me“.

A až to bude hotové, dostanete výsledek, jak je uvedeno níže

V adresáři '/etc/letsencrypt/live' byly vygenerovány nové certifikáty SSL z letsencrypt.

Krok 4 – Instalace a konfigurace Nginx jako reverzního proxy pro kontejner diskursu

V tomto kroku nainstalujeme webový server Nginx a nakonfigurujeme jej jako reverzní proxy pro kontejner diskursu, který běží na portu 2045.

Nainstalujte Nginx pomocí příkazu apt níže.

sudo apt install nginx -y

Nyní spusťte Nginx a povolte jeho spuštění při spouštění pomocí příkazu systemctl.

systemctl start nginx
systemctl enable nginx

Nginx byl nainstalován a běží na HTTP portu 80. Můžete to zkontrolovat pomocí netstat.

netstat -plntu

Webový server Nginx byl nainstalován na server Ubuntu 16.04.

Dále musíme vytvořit nový soubor virtuálního hostitele pro kontejner diskursu. Přejděte do konfiguračního adresáře nginx a vytvořte nový soubor 'discourse' pomocí editoru vim.

cd /etc/nginx/
vim sites-available/discourse

Nyní vložte následující konfiguraci virtuálního hostitele Discourse nginx.

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.me;
 
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.me;

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

Uložte a ukončete.

Poznámka:

  • Všechny požadavky HTTP budou automaticky přesměrovány na připojení HTTPS.
  • Změňte konfiguraci SSL pomocí vlastního adresáře cesty.
  • Existuje další konfigurace SSL.

Nyní vytvořte nový dodatečný konfigurační soubor ssl 'ssl.conf'.

vim snippets/ssl.conf

Do souboru vložte následující konfiguraci.

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;

Uložte a ukončete.

A nyní aktivujte virtuálního hostitele diskurzu pomocí příkazu 'ln -s', jak je ukázáno níže.

ln -s /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/

Testuje konfiguraci a ujistěte se, že nedošlo k chybě, poté restartujte službu.

nginx -t
systemctl restart nginx

Instalace a konfigurace Nginx jako reverzní proxy pro kontejner diskursu byla dokončena.

Krok 5 – Instalační program diskurzního webu

Otevřete webový prohlížeč a navštivte adresu URL diskurzu.

http://discourse.hakase-labs.me

A budete přesměrováni na zabezpečené připojení HTTP. Kliknutím na tlačítko 'Registrovat' vytvoříte nového administrátora.

Nyní zadejte své administrátorské uživatele a heslo a poté klikněte na 'Registrovat'.

A obdržíte nové e-mailové potvrzení o aktivaci vašeho administrátora.

Níže je ukázková e-mailová zpráva pro potvrzení účtu Diskuse. Kliknutím na odkaz potvrďte a aktivujte účet správce.

A měli byste získat diskurzní stránku, jak je uvedeno níže. Klikněte na tlačítko 'Kliknutím sem aktivujte svůj účet'.

Nyní si můžete nakonfigurovat své vlastní diskusní fórum. Klikněte na tlačítko 'Další' a musíte nakonfigurovat Diskusní fórum s 13 kroky. Nebo jej můžete nakonfigurovat později kliknutím na „Možná později“.

Níže je uvedeno Diskusní fórum nainstalované na webovém serveru Nginx a HTTPS na Ubuntu 16.04.

Následuje můj panel správce diskurzu.

Diskusní fórum bylo nainstalováno s Nginx jako reverzní proxy na serveru Ubuntu 16.04.

Krok 6 – Další konfigurace diskursu

Při instalaci Discourse můžete narazit na problém, kdy neobdržíte e-mailové potvrzení o aktivaci uživatele administrátora.

Chcete-li problém vyřešit, ujistěte se, že máte správný účet SMTP v konfiguračním souboru app.yml. Nebo můžete účet správce aktivovat ručně ze svého serveru.

Chcete-li svůj administrátorský účet aktivovat ručně, přejděte do adresáře '/var/discourse'.

cd /var/discourse

Nyní přejděte ke kontejneru diskurzu pomocí příkazu níže.

./launcher enter app

A aktivujte prvního administrátora pomocí příkazu rails, jak je uvedeno níže.

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

A nyní se můžete přihlásit do diskusního fóra pomocí svého uživatelského jména a hesla.

Odkazy

  • https://meta.discourse.org/
  • https://github.com/discourse/discourse/tree/master/docs

Ubuntu
  1. Jak nainstalovat Docker na Ubuntu 22.04

  2. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  3. Jak nainstalovat diskurz na Ubuntu 20.04

  1. Jak nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04

  2. Jak nainstalovat diskusní fórum s Nginx na CentOS 7

  3. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  1. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Redmine 3 s Nginx na Ubuntu 15.10