GNU/Linux >> Znalost Linux >  >> Cent OS

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

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 pomocí programovacích jazyků Ruby a Javascript. Software diskurzního fóra používá mnoho organizací, včetně Codeacademy, Udacity, Twitter Developers, Docker Community Forum atd.

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

Co uděláme

  1. Nainstalujte Docker na CentOS 7
  2. Nainstalujte a nakonfigurujte software diskurzního fóra
  3. Generujte SSL Letsencrypt na CentOS 7
  4. Nainstalujte a nakonfigurujte Nginx jako reverzní proxy pro diskurz
  5. Instalátor webu pro diskurz
  6. Další konfigurace diskursu

Předpoklady

  • CentOS 7
  • Kořenová oprávnění
  • Účet SMTP – např. z Mailgun, SendGrid nebo Mailjet

Krok 1 – Instalace Dockeru na CentOS 7

Diskusní fórum bude nainstalováno pod kontejnerem Docker. Takže prvním krokem, který musíme udělat, je nainstalovat Docker na náš server CentOS 7.

Nainstalujte Docker na CentOS 7 pomocí následujícího příkazu.

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

Pokud nemáte příkaz wget, nainstalujte jej z úložiště.

yum -y install wget

Pokud je instalace dokončena, spusťte službu Docker a povolte její spuštění při spouštění pomocí následujících příkazů systemctl.

systemctl start docker
systemctl enable docker

Docker engine byl nainstalován a běží na serveru CentOS 7. Zkontrolujte stav služby pomocí následujícího příkazu.

systemctl status docker

Služba Docker je aktivní a běží.

Krok 2 – Instalace a konfigurace softwaru diskurzního fóra

V tomto kroku nainstalujeme a nakonfigurujeme software Discourse. Stáhneme si skript diskurzu docker-compose, nakonfigurujeme jej, jak potřebujeme, a poté vytvoříme nový kontejner Docker pro software diskurzního fóra.

Před stažením diskurzu musíme na server nainstalovat příkaz git.

yum -y install git

Nyní vytvořte nový adresář '/var/discourse' a stáhněte/klonujte skript diskurzu docker pomocí příkazu git.

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

Přejděte do adresáře diskursu a zkopírujte ukázku skriptu docker-compose 'standalone.yml' do adresáře '/var/discourse/containers/' s názvem 'app.yml'.

cd /var/discourse
vzorky cp/standalone.yml container/app.yml

Nyní upravte soubor 'app.yml' pomocí vim.

vim container/app.yml

- Mapování portů dockeru

Ve výchozím nastavení budou všechny požadavky HTTP a HTTPS zpracovány proxy serverem Docker. A v této příručce 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 otevře nový port '2045' a namapuje na port kontejneru 80.

Odkomentujte řádek HTTPS a změňte řádek HTTP na nový port '2045', jak je uvedeno níže.

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

– Konfigurace názvu domény diskursu

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.co'

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

DISCOURSE_DEVELOPER_EMAILS:'[e-mail chráněný]'

– Konfigurace SMTP

Konfigurace SMTP 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. Zaregistrujte se u Mailgun a nakonfigurujte název své domény a ujistěte se, že máte podrobnosti o svém účtu SMTP.

Poté odkomentujte konfiguraci SMTP a zadejte podrobnosti o svém účtu, jak je uvedeno níže.

  DISCOURSE_SMTP_ADDRESS:smtp.mailgun.org
  DISCOURSE_SMTP_PORT:587
  DISCOURSE_SMTP_USER_NAME:[e-mail chráněný]
  DISCOURSE_SMTP_PASSWORD:moje heslo

A je to. Uložte změny a ukončete editor.

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

sudo ./launcher bootstrap app

Pokud je vše dokončeno, spusťte/inicializujte nový kontejner diskursu pomocí následujícího příkazu.

sudo ./launcher spustit aplikaci

A kontejner Discourse Docker je v provozu – zkontrolujte jej pomocí příkazu 'docker ps'.

docker ps -a

Zkontrolujte otevřený port hostitele pomocí netstat a ujistěte se, že v seznamu je nová služba docker-proxy s portem 2045.

netstat -plntu

Software Discourse Forum byl nainstalován pod kontejnerem docker na hostitelském CentOS 7.

Krok 3 – Vygenerování SSL Letsencrypt na CentOS 7

Pro tento tutoriál spustíme fórum diskurzu pod webovým serverem Nginx a přijmeme pouze připojení HTTPS. Pro tento účel potřebujeme nové SSL certifikáty pro název domény, a proto budeme používat bezplatný SSL certifikát od Letsencrypt.

Nainstalujte nástroj příkazového řádku Letsencrypt pomocí příkazu yum následujícím způsobem.

yum -y install letsencrypt

Po instalaci přidejte do konfigurace brány firewall novou službu HTTP a HTTPS.

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

Nyní vygenerujte nové certifikáty SSL pro fórum Discourse pomocí příkazu letsencrypt níže.

určitě letsencrypt

Uvidíte dvě ověření z Letsencrypt. Zadejte číslo '1' pro spuštění dočasného webového serveru pro ověření.

V rámci toho zadejte svou e-mailovou adresu pro obnovení oznámení, zadejte „A“ pro souhlas s letsencrypt TOS (Podmínky služby).

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

A když je proces dokončen, získáte výsledek, jak je uvedeno níže.

V adresáři '/etc/letsencrypt/live' byl vygenerován nový certifikát SSL z letsencrypt.

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

V tomto tutoriálu budeme používat webový server Nginx jako reverzní proxy pro diskurz, který běží pod kontejnerem Docker. Webový server Nginx poběží pod portem HTTP a HTTPS a všechny požadavky klientů bude zpracovávat Nginx.

Před instalací webového serveru Nginx musíme do systému nainstalovat úložiště EPEL.

yum -y install epel-release

Nyní nainstalujte nginx z úložiště EPEL pomocí následujícího příkazu yum.

yum -y nainstalujte nginx

Po dokončení instalace přejděte do konfiguračního adresáře nginx '/etc/nginx'.

cd /etc/nginx/

A vytvořte novou další konfiguraci SSL 'ssl.conf' pomocí vim.

vim ssl.conf

Zde vložte následující konfiguraci SSL.

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

ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AEASGCM;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

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

Uložte změny a ukončete editor.

Dále vytvořte nový soubor virtuálního hostitele nginx „discourse.conf“ pro diskurz.

vim conf.d/discourse.conf

Zde vložte následující konfiguraci.

server {
    listen 80; poslouchat [::]:80;
    název_serveru diskurz.hakase-labs.co;
 
    # Automatické přesměrování HTTP na HTTPS Nginx
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2;
    název_serveru diskurz.hakase-labs.co;

    # Konfigurace SSL
    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;
 
    # Reverzní konfigurace proxy
    umístění / {
        proxy_pass http://discourse.hakase-labs.co:2045/;
        proxy_set_header Host $http_host;
        proxy_http_verze proxy 1.1;   forwarded  header X    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;
    }
}

Uložte a ukončete.

Nyní otestujte konfiguraci nginx a ujistěte se, že nedochází k chybě. Poté restartujte službu Nginx.

nginx -t
systemctl restart nginx

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

Krok 5 – Webový instalační program diskurzu

Otevřete webový prohlížeč a navštivte adresu URL diskursu, moje je:

http://discourse.hakase-labs.co

A budete přesměrováni na připojení HTTPS.

Klikněte na tlačítko Registrovat '.

Nyní musíme vytvořit nový účet 'Administrator'.

Zadejte své uživatelské jméno a heslo správce a klikněte na tlačítko Registrovat '.

A dostanete stránku pro potvrzení e-mailem. Zkontrolujte svou e-mailovou schránku a ujistěte se, že jste získali konfiguraci e-mailu z diskusního fóra, jak je uvedeno níže.

Klikněte na 'Odkaz '.

A získáte stránku 'Discourse Welcome'.

Klikněte na tlačítko 'kliknutím sem aktivujte svůj účet '. A nyní byste se měli dostat na následující stránku.

Klikněte na tlačítko Možná později '.

Diskusní fórum bylo nainstalováno a dostáváme výchozí domovskou stránku, jak je uvedeno níže.

Můžete přejít na 'Admin Dashboard' a dostanete Discourse Admin Dashboard.

Software Discourse Forum Software byl nainstalován s Nginx jako reverzní proxy na serveru CentOS 7.

Krok 6 – Další konfigurace diskursu

Během instalace diskurzu někteří lidé říkají, že nedostanou e-mailové potvrzení pro aktivaci uživatele správce.

V případě tohoto problému se ujistěte, ž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í následujícího příkazu.

./launcher zadejte aplikaci

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

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

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


Cent OS
  1. Jak nainstalovat Docker na CentOS 8

  2. Jak nainstalovat WordPress s Nginx na CentOS 7

  3. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7 / RHEL 7

  1. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  2. Jak nainstalovat SuiteCRM s Nginx na CentOS 7

  3. Jak nainstalovat MediaWiki s Nginx na CentOS 7

  1. Jak nainstalovat Seafile s Nginx na CentOS 7

  2. Jak nainstalovat Redmine 3 s Nginx na CentOS 7

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