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
- Nainstalujte Docker na CentOS 7
- Nainstalujte a nakonfigurujte software diskurzního fóra
- Generujte SSL Letsencrypt na CentOS 7
- Nainstalujte a nakonfigurujte Nginx jako reverzní proxy pro diskurz
- Instalátor webu pro diskurz
- 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 hesloA 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 -aZkontrolujte 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 letsencryptPo 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ě letsencryptUvidí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-releaseNyní nainstalujte nginx z úložiště EPEL pomocí následujícího příkazu yum.
yum -y nainstalujte nginxPo 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.confZde 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.confZde 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/discourseNyní přejděte ke kontejneru diskurzu pomocí následujícího příkazu.
./launcher zadejte aplikaciA 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.saveNyní se můžete přihlásit do diskurzního fóra pomocí svého uživatelského jména a hesla.
Jak nastavit Nginx High Availability s Pacemakerem a Corosync na CentOS 7 Jak nainstalovat Laravel 5.x s Nginx a PHP-FPM 7.1 na CentOS 7Cent OS