Hướng dẫn Cài đặt Discouse trên server nginx

 Discouse là gì? xem chi tiết tại discourse.org

Đây là cách mình cài đặt Discouse lên server nginx đang chạy với các website wordpress. Thông server như sau: 

  • Ubuntu 18.04
  • Webinoly + Nginx
  • Các website đang hoạt động
Mục đích: cài thêm Discouse trên server nhằm tiết kiệm chi phí.

Các bước cài đặt discouse

Cài đặt Docker

sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version

Cài đặt Discouse

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

Tới đây, hãy dừng lại và thiết lập máy chủ thư email cho tên miền Discouse của bạn. Xem các liên kết bên dưới:

https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md #hướng dẫn cài đặt Discouse chính chủ

https://github.com/discourse/discourse/blob/master/docs/INSTALL-email.md #hướng dẫn cấu hình email.

Ok, sau khi đã có thông tin cấu hình email, ta tiếp tục cài đặt discouse.

Kiểm tra cổng

sudo netstat -tulpn

Ta thấy cổng 80 và cổng 443 đã bị sử dụng bởi nginx. vậy nên...

Dừng nginx

sudo systemctl stop nginx

Sử dụng lệnh kiểm tra cổng ở trên, nếu không thấy cổng 80 và 443 là được

Setup Discouse

./discourse-setup

Trả lời các câu hỏi sau khi được nhắc bằng thông tin của mail server:




Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account(s)? [me@example.com,you@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP port? [587]: 
SMTP user name? [user@example.com]: 
SMTP password? [pa$$word]: 
Let's Encrypt account email? (ENTER to skip) [me@example.com]:
./launcher rebuild app

Sau khi tiến trình của dòng lệnh trên chạy xong, bạn có thể truy cập được tên miền bạn đã nhập trước đó trong trình duyệt web. Bạn hãy thiết lập tài khoản như trong hướng dẫn chính chủ. 

Bây giờ website discouse của bạn đã hoạt động bình thường. Tiếp theo là bước rất quan trọng để khởi động lại nginx.

Dừng Discouse

./launcher stop app

Sửa tệp  /var/discourse/containers/app.yml để trông như thế này:

templates:

  - "templates/postgres.template.yml"

  - "templates/redis.template.yml"

  - "templates/web.template.yml"

  - "templates/web.ratelimited.template.yml"

## Uncomment these two lines if you wish to add Lets Encrypt (https)

##  - "templates/web.ssl.template.yml"  # remove

##  - "templates/web.letsencrypt.ssl.template.yml" # remove

  - "templates/web.socketed.template.yml"  # add
  

Tiếp theo, hãy nhập mã này  /etc/nginx/sites-enabled/discourse.conf, đảm bảo thay đổi  server_namessl_certificate,ssl_certificate_key


server {
    listen 80; listen [::]:80;
    server_name forum.example.com;  # <-- change this

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;  listen [::]:443 ssl http2;
    server_name forum.example.com;  # <-- change this

    ssl_certificate      /var/discourse/shared/standalone/ssl/ssl.crt; # <-- change this
    ssl_certificate_key  /var/discourse/shared/standalone/ssl/ssl.key; # <-- change this
    ssl_dhparam          /var/discourse/shared/standalone/ssl/dhparams.pem;
    ssl_session_tickets off;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA;

    http2_idle_timeout 5m; # up from 3m default

    location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Tạo khóa dhparams.pem

openssl dhparam -out /var/discourse/shared/standalone/ssl/dhparams.pem 2048 

 Kiểm tra lỗi nginx và khởi động lại

sudo nginx -t

sudo service nginx reload

 Bây giờ chạy lại lệnh sau để áp dụng các thay đổi.

/launcher rebuild app
Bây giờ bạn đã có thể truy cập bình thường Discouse và các website khác của bạn.

Quảng cáo hiển thị ở đây

Nhận xét

Bạn được hoan nghênh chia sẻ ý tưởng của bạn với chúng tôi trong phần bình luận!

Archive

Biểu mẫu liên hệ

Gửi