Si të instaloni Forumin e Diskursit me Nginx në CentOS 7
Discourse është një softuer pa pagesë dhe me burim të hapur për krijimin e komunitetit të forumit në Internet dhe listës së postimeve. Është krijuar në vitin 2013 dhe është shkruar duke përdorur gjuhë programimi Ruby dhe Javascript. Softueri i forumit të diskursit është përdorur nga shumë organizata, duke përfshirë Codeacademy, Udacity, Twitter Developers, Docker Community Forum etj.
Në këtë tutorial, ne do t'ju tregojmë hap pas hapi se si të instaloni dhe konfiguroni Forumin e Diskursit me serverin Ueb Nginx nën serverin CentOS 7. Në mënyrë të veçantë, ne do t'ju tregojmë se si të instaloni Softuerin e Forumit të Diskursit, të konfiguroni Nginx si përfaqësuesin e kundërt për aplikacionin Discourse dhe të siguroni softuerin e forumit të diskursit duke përdorur SSL falas nga Letsencrypt.
Çfarë do të bëjmë
- Instaloni Docker në CentOS 7
- Instaloni dhe konfiguroni softuerin e Forumit të Diskutimit
- Gjeneroni SSL Letsencrypt në CentOS 7
- Instaloni dhe konfiguroni Nginx si një përfaqësues i kundërt për diskursin
- Instaluesi i Uebit të Diskursit
- Konfigurimi shtesë i diskursit
Kushtet paraprake
- CentOS 7
- Privilegjet e rrënjës
- Llogaria SMTP - p.sh. nga Mailgun, SendGrid ose Mailjet
Hapi 1 - Instaloni Docker në CentOS 7
Forumi i diskursit do të instalohet nën kontejnerin Docker. Pra, hapi i parë që duhet të bëjmë është të instalojmë Docker në serverin tonë CentOS 7.
Instaloni Docker në CentOS 7 duke përdorur komandën e mëposhtme.
wget -qO- https://get.docker.com/ | sh
Nëse nuk e keni komandën wget, instaloni atë nga depoja.
yum -y install wget
Nëse instalimi ka përfunduar, filloni shërbimin Docker dhe aktivizoni atë të nisë në kohën e nisjes duke përdorur komandat e mëposhtme systemctl.
systemctl start docker
systemctl enable docker
Motori Docker është instaluar dhe funksionon në serverin CentOS 7. Kontrolloni statusin e shërbimit duke përdorur komandën e mëposhtme.
systemctl status docker
Shërbimi Docker është aktiv dhe funksionon.
Hapi 2 - Instaloni dhe konfiguroni Softuerin e Forumit të Diskursit
Në këtë hap, ne do të instalojmë dhe konfigurojmë softuerin Discourse. Ne do të shkarkojmë skriptin docker-compose të diskursit, do ta konfigurojmë sipas nevojës dhe më pas do të krijojmë një kontejner të ri Docker për softuerin e forumit të diskursit.
Përpara se të shkarkojmë diskursin, duhet të instalojmë komandën git në server.
yum -y install git
Tani krijoni një direktori të re /var/discourse dhe shkarkoni/klononi skriptin docker të diskursit duke përdorur komandën git.
mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Shkoni te drejtoria e diskursit dhe kopjoni një mostër të skriptit docker-compose standalone.yml në drejtorinë /var/discourse/containers/ me emrin app.yml.
cd /var/discourse
cp samples/standalone.yml containers/app.yml
Tani modifikoni skedarin app.yml duke përdorur vim.
vim containers/app.yml
- Harta e portit docker
Si parazgjedhje, të gjitha kërkesat HTTP dhe HTTPS do të trajtohen nga përfaqësuesi Docker. Dhe për këtë udhëzues, ne do të përdorim Nginx për këtë qëllim - të gjitha HTTP dhe HTTPS do të trajtohen nga serveri i uebit Nginx.
Pra, ne duhet të ndryshojmë konfigurimin e hartës së portit docker. Kontejneri Discourse do të ketë vetëm lidhjen HTTP dhe hosti do të hapë portin e ri 2045 dhe do të hartojë në portin e kontejnerit 80.
Çkomentoni linjën HTTPS dhe ndryshoni linjën HTTP me portin e ri 2045, siç tregohet më poshtë.
expose:
- "2045:80" # http
# - "443:443" # https
- Konfigurimi i emrit të domenit të diskutimit
Shkruani emrin tuaj të domenit për diskursin e instaluar në linjën DISCOURSE_HOSTNAME si më poshtë.
DISCOURSE_HOSTNAME: 'discourse.hakase-labs.co'
Dhe shkruani adresën tuaj të emailit në linjën DISCOURSE_DEVELOPER_EMAIL.
DISCOURSE_DEVELOPER_EMAILS: ''
- Konfigurimi SMTP
Konfigurimi SMTP është konfigurimi më i rëndësishëm për Software Discourse. Sigurohuni që keni llogarinë SMTP për instalimin e Discourse - mund të blini ose provoni një llogari SMTP të nivelit të lirë nga Mailgun, Mailjet ose SendGrid.
Për këtë tutorial, ne do të përdorim llogarinë SMTP të nivelit të lirë nga Mailgun. Regjistrohuni me Mailgun dhe konfiguroni emrin e domenit tuaj dhe sigurohuni që të merrni detajet e llogarisë tuaj SMTP.
Pastaj hiqni komentin e konfigurimit SMTP dhe shkruani detajet e llogarisë tuaj si më poshtë.
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME:
DISCOURSE_SMTP_PASSWORD: mypassword
Kjo eshte. Ruani ndryshimet dhe dilni nga redaktori.
Më pas, ndërtoni imazh të ri të Discourse Docker bazuar në konfigurimin e shabllonit të app.yml.
sudo ./launcher bootstrap app
Nëse gjithçka është e plotë, filloni/inicializoni kontejnerin e ri të Diskursit duke përdorur komandën e mëposhtme.
sudo ./launcher start app
Dhe kontejneri Discourse Docker është gati dhe funksionon - kontrollojeni duke përdorur komandën docker ps.
docker ps -a
Kontrolloni portën e hapur të hostit duke përdorur netstat dhe sigurohuni që shërbimi i ri docker-proxy me portin 2045 është në listë.
netstat -plntu
Softueri i Forumit të Diskursit është instaluar nën kontejnerin docker në hostin CentOS 7.
Hapi 3 - Gjeneroni SSL Letsencrypt në CentOS 7
Për këtë tutorial, ne do të ekzekutojmë forumin e Diskursit nën serverin e internetit Nginx dhe do të pranojmë vetëm lidhjen HTTPS. Për këtë qëllim, ne kemi nevojë për Certifikata të reja SSL për emrin e domain, dhe kështu, ne do të përdorim certifikatën SSL falas nga Letsencrypt.
Instaloni mjetin e linjës së komandës Letsencrypt duke përdorur komandën yum në mënyrën e mëposhtme.
yum -y install letsencrypt
Pas instalimit, shtoni shërbimin e ri HTTP dhe HTTPS në konfigurimin e Firewalld.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Tani gjeneroni certifikata të reja SSL për forumin e Diskursit duke përdorur komandën letsencrypt më poshtë.
letsencrypt certonly
Do të shihni dy verifikime nga Letsencrypt. Shkruani numrin 1 për të rrotulluar një server të përkohshëm në internet për vërtetim.
Si pjesë e kësaj, shkruani adresën tuaj të emailit për rinovimin e njoftimit, shkruani A për të rënë dakord mbi letsencrypt TOS (Kushtet e Shërbimit).
Tani shkruani emrin e domenit të diskursit discourse.hakase-labs.co.
Dhe kur procesi të përfundojë, do të merrni rezultatin si më poshtë.
Certifikata e re SSL nga letsencrypt është krijuar në drejtorinë /etc/letsencrypt/live.
Hapi 4 - Instaloni dhe konfiguroni Nginx si një përfaqësues i kundërt për diskursin
Në këtë tutorial, ne do të përdorim serverin në internet Nginx si një përfaqësues të kundërt për Discourse që funksionon nën kontejnerin Docker. Ueb serveri Nginx do të funksionojë nën portin HTTP dhe HTTPS dhe të gjitha kërkesat e klientit do të trajtohen nga Nginx.
Përpara se të instalojmë serverin në internet Nginx, duhet të instalojmë depon e EPEL në sistem.
yum -y install epel-release
Tani instaloni nginx nga depoja EPEL duke përdorur komandën e mëposhtme yum.
yum -y install nginx
Pasi të ketë përfunduar i gjithë instalimi, shkoni te drejtoria e konfigurimit të nginx /etc/nginx.
cd /etc/nginx/
Dhe krijoni një konfigurim të ri shtesë SSL ssl.conf duke përdorur vim.
vim ssl.conf
Ngjitni konfigurimin e mëposhtëm SSL atje.
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;
Ruani ndryshimet dhe dilni nga redaktori.
Më pas, krijoni një skedar të ri host virtual nginx discourse.conf për Discourse.
vim conf.d/discourse.conf
Ngjitni konfigurimin e mëposhtëm atje.
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;
}
}
Ruaje dhe dil.
Tani provoni konfigurimin e nginx dhe sigurohuni që nuk ka ndonjë gabim. Pastaj rinisni shërbimin Nginx.
nginx -t
systemctl restart nginx
Instalimi dhe konfigurimi i Nginx si një përfaqësues i kundërt për kontejnerin e Discourse ka përfunduar.
Hapi 5 - Instaluesi i Uebit të Diskursit
Hapni shfletuesin tuaj të internetit dhe vizitoni URL-në tuaj të diskursit, e imja është:
http://discourse.hakase-labs.co
Dhe do të ridrejtoheni te lidhja HTTPS.
Klikoni butonin Regjistrohu.
Tani duhet të krijojmë një llogari të re Administratori.
Shkruani emrin e përdoruesit dhe fjalëkalimin e administratorit, më pas kliko Regjistrohu.
Dhe do të merrni faqen për konfirmim me email. Kontrolloni kutinë tuaj të postës elektronike dhe sigurohuni që të merrni konfigurimin e emailit nga forumi i Diskursit si më poshtë.
Klikoni në Lidhje.
Dhe ju do të merrni faqen e mirëseardhjes së Diskursit.
Klikoni në butonin kliko këtu për të aktivizuar llogarinë tuaj. Dhe tani duhet të shkoni në faqen e mëposhtme.
Klikoni butonin Ndoshta më vonë.
Forumi i Diskursit është instaluar dhe ne marrim faqen kryesore të paracaktuar siç tregohet më poshtë.
Mund të shkoni te Paneli i Administratorit dhe do të merrni Panelin e Administratorit të Diskursit.
Softueri i Forumit të Diskursit është instaluar me Nginx si një përfaqësues i kundërt në serverin CentOS 7.
Hapi 6 - Konfigurimi shtesë i diskursit
Gjatë instalimit të Discourse, disa njerëz thonë se nuk marrin konfirmimin e emailit për aktivizimin e përdoruesit të administratorit.
Për këtë çështje, sigurohuni që të keni llogarinë e duhur SMTP në app.yml të konfigurimit. Ose mund ta aktivizoni llogarinë e administratorit manualisht nga serveri juaj.
Për të aktivizuar manualisht llogarinë tuaj të administratorit, shkoni te drejtoria /var/discourse.
cd /var/discourse
Tani hyni në kontejnerin e diskursit me komandën e mëposhtme.
./launcher enter app
Dhe aktivizoni përdoruesin e parë të administratorit duke përdorur komandën rails siç tregohet më poshtë.
rails c
u = User.last
u.admin = true
u.activate
u.save
Tani mund të hyni në forumin e Diskursit me emrin e përdoruesit dhe fjalëkalimin tuaj.
Referenca
- https://meta.discourse.org/