GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Discourse Forum con Nginx en CentOS 7

Discourse es un software gratuito y de código abierto para crear una comunidad de foros de Internet y una lista de correo. Fue creado en 2013 y escrito usando los lenguajes de programación Ruby y Javascript. El software de foros de debate ha sido utilizado por muchas organizaciones, incluidas Codeacademy, Udacity, Twitter Developers, Docker Community Forum, etc.

En este tutorial, le mostraremos paso a paso cómo instalar y configurar Discourse Forum con el servidor web Nginx en el servidor CentOS 7. Específicamente, le mostraremos cómo instalar el software Discourse Forum, configurar Nginx como proxy inverso para la aplicación Discourse y proteger el software Discourse Forum con SSL gratuito de Letsencrypt.

Qué haremos

  1. Instalar Docker en CentOS 7
  2. Instalar y configurar el software Discourse Forum
  3. Generar SSL Letsencrypt en CentOS 7
  4. Instalar y configurar Nginx como proxy inverso para Discourse
  5. Instalador web de Discourse
  6. Configuración adicional del discurso

Requisitos previos

  • Cent OS 7
  • Privilegios de raíz
  • Cuenta SMTP:p. desde Mailgun, SendGrid o Mailjet

Paso 1:instalar Docker en CentOS 7

El foro de discurso se instalará en el contenedor Docker. Así que el primer paso que debemos hacer es instalar Docker en nuestro servidor CentOS 7.

Instale Docker en CentOS 7 usando el siguiente comando.

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

Si no tiene el comando wget, instálelo desde el repositorio.

yum -y install wget

Si la instalación está completa, inicie el servicio Docker y habilítelo para que se inicie en el momento del arranque con los siguientes comandos systemctl.

systemctl start docker
systemctl enable docker

El motor Docker se instaló y se está ejecutando en el servidor CentOS 7. Verifique el estado del servicio usando el siguiente comando.

systemctl status docker

El servicio Docker está activo y ejecutándose.

Paso 2:instalar y configurar el software Discourse Forum

En este paso, instalaremos y configuraremos el software Discourse. Descargaremos el script de composición del docker del discurso, lo configuraremos según sea necesario y luego crearemos un nuevo contenedor Docker para el software del foro del discurso.

Antes de descargar el discurso, debemos instalar el comando git en el servidor.

yum -y install git

Ahora cree un nuevo directorio '/var/discourse' y descargue/clone el script de la ventana acoplable del discurso usando el comando git.

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

Vaya al directorio del discurso y copie una muestra del script docker-compose 'standalone.yml' en el directorio '/var/discourse/containers/' con el nombre 'app.yml'.

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

Ahora edite el archivo 'app.yml' usando vim.

vim containers/app.yml

- Asignación de puertos Docker

De manera predeterminada, todas las solicitudes HTTP y HTTPS serán manejadas por el proxy de Docker. Y para esta guía, usaremos Nginx para este propósito:todo HTTP y HTTPS serán manejados por el servidor web Nginx.

Por lo tanto, debemos cambiar la configuración de asignación de puertos de la ventana acoplable. El contenedor Discourse solo tendrá la conexión HTTP, y el host abrirá el nuevo puerto '2045' y se asignará al puerto del contenedor 80.

Descomente la línea HTTPS y cambie la línea HTTP con el nuevo puerto '2045', como se muestra a continuación.

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

- Configuración del nombre de dominio de Discourse

Escriba su propio nombre de dominio para el discurso instalado en la línea 'DISCOURSE_HOSTNAME' como se muestra a continuación.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.co'

Y escriba su dirección de correo electrónico en la línea 'DISCOURSE_DEVELOPER_EMAIL'.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

- Configuración SMTP

La configuración SMTP es la configuración más importante para Discourse Software. Asegúrese de tener la cuenta SMTP para la instalación de Discourse; puede comprar o probar una cuenta SMTP de nivel gratuito de Mailgun, Mailjet o SendGrid.

Para este tutorial, usaremos la cuenta SMTP de nivel gratuito de Mailgun. Regístrese en Mailgun y configure su nombre de dominio, y asegúrese de obtener los detalles de su cuenta SMTP.

Luego descomente la configuración de SMTP y escriba los detalles de su cuenta como se muestra a continuación.

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

Eso es todo. Guarde los cambios y salga del editor.

A continuación, cree una nueva imagen de Discourse Docker basada en la configuración de la plantilla app.yml.

sudo ./launcher bootstrap app

Si todo está completo, inicie/inicie el nuevo contenedor Discourse con el siguiente comando.

sudo ./launcher start app

Y el contenedor Docker de Discourse está en funcionamiento:verifíquelo con el comando 'docker ps'.

docker ps -a

Compruebe el puerto abierto del host con netstat y asegúrese de que el nuevo servicio docker-proxy con el puerto 2045 esté en la lista.

netstat -plntu

El software Discourse Forum se instaló en el contenedor docker en el host CentOS 7.

Paso 3:generar SSL Letsencrypt en CentOS 7

Para este tutorial, ejecutaremos el foro Discourse en el servidor web Nginx y solo aceptaremos la conexión HTTPS. Para este propósito, necesitamos nuevos certificados SSL para el nombre de dominio, por lo que utilizaremos un certificado SSL gratuito de Letsencrypt.

Instale la herramienta de línea de comandos Letsencrypt usando el comando yum de la siguiente manera.

yum -y install letsencrypt

Después de la instalación, agregue un nuevo servicio HTTP y HTTPS a la configuración de Firewalld.

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

Ahora genere nuevos certificados SSL para el foro Discourse usando el comando letsencrypt a continuación.

letsencrypt certonly

Verá dos verificaciones de Letsencrypt. Escriba el número '1' para activar un servidor web temporal para la autenticación.

Como parte de esto, escriba su dirección de correo electrónico para renovar la notificación, escriba 'A' para aceptar los TOS (Términos de servicio) de letsencrypt.

Ahora escriba el nombre de dominio del discurso 'discourse.hakase-labs.co'.

Y cuando se complete el proceso, obtendrá el resultado que se muestra a continuación.

Se ha generado un nuevo certificado SSL de letsencrypt en el directorio '/etc/letsencrypt/live'.

Paso 4:instalar y configurar Nginx como proxy inverso para Discourse

En este tutorial, usaremos el servidor web Nginx como proxy inverso para Discourse que se ejecuta en el contenedor Docker. El servidor web Nginx se ejecutará en el puerto HTTP y HTTPS, y Nginx manejará todas las solicitudes de los clientes.

Antes de instalar el servidor web Nginx, debemos instalar el repositorio EPEL en el sistema.

yum -y install epel-release

Ahora instale nginx desde el repositorio de EPEL usando el siguiente comando yum.

yum -y install nginx

Después de completar toda la instalación, vaya al directorio de configuración de nginx '/etc/nginx'.

cd /etc/nginx/

Y cree una nueva configuración SSL adicional 'ssl.conf' usando vim.

vim ssl.conf

Pegue la siguiente configuración SSL allí.

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;

Guarde los cambios y salga del editor.

A continuación, cree un nuevo archivo de host virtual nginx 'discourse.conf' para Discourse.

vim conf.d/discourse.conf

Pegue la siguiente configuración allí.

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;
    }
}

Guardar y salir.

Ahora pruebe la configuración de nginx y asegúrese de que no haya ningún error. Luego reinicie el servicio Nginx.

nginx -t
systemctl restart nginx

Se ha completado la instalación y configuración de Nginx como proxy inverso para el contenedor Discourse.

Paso 5:Instalador web de Discourse

Abra su navegador web y visite la URL de su discurso, la mía es:

http://discourse.hakase-labs.co

Y será redirigido a la conexión HTTPS.

Haga clic en 'Registrarse botón '.

Ahora necesitamos crear una nueva cuenta de 'Administrador'.

Escriba su nombre de usuario y contraseña de administrador, luego haga clic en 'Registrarse '.

Y obtendrá la página de confirmación por correo electrónico. Verifique su bandeja de entrada de correo electrónico y asegúrese de obtener la configuración de correo electrónico del foro de Discourse como se muestra a continuación.

Haga clic en el 'Enlace '.

Y obtendrá la página de 'Bienvenida del discurso'.

Haga clic en el botón 'haga clic aquí para activar su cuenta '. Y ahora deberías ir a la siguiente página.

Haga clic en 'Quizás más tarde botón '.

Se instaló Discourse Forum y obtenemos la página de inicio predeterminada como se muestra a continuación.

Puede ir al 'Panel de administración' y obtendrá el Panel de administración de Discourse.

El software Discourse Forum se instaló con Nginx como proxy inverso en el servidor CentOS 7.

Paso 6 - Configuración adicional del discurso

Durante la instalación de Discourse, algunas personas dicen que no reciben la confirmación por correo electrónico para la activación del usuario administrador.

Para este problema, asegúrese de tener la cuenta SMTP correcta en la aplicación de configuración.yml. O puede activar la cuenta de administrador manualmente desde su servidor.

Para activar su cuenta de administrador manualmente, vaya al directorio '/var/discourse'.

cd /var/discourse

Ahora acceda al contenedor de discursos con el siguiente comando.

./launcher enter app

Y active el primer usuario administrador usando el comando Rails como se muestra a continuación.

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

Ahora puede iniciar sesión en el foro de Discourse con su nombre de usuario y contraseña.


Cent OS
  1. Cómo instalar Docker en CentOS 8

  2. Cómo instalar WordPress con Nginx en CentOS 7

  3. Cómo instalar phpMyAdmin con Nginx en CentOS 7

  4. Cómo instalar SuiteCRM con Nginx en CentOS 7

  5. Cómo instalar phpMyAdmin con Nginx en CentOS 7 / RHEL 7

Cómo instalar Vanila Forum en CentOS 8

Cómo instalar Nginx con ngx_pagespeed en CentOS

Cómo instalar Nginx con PHP-FastCGI en CentOS 6

Cómo instalar Magento con Nginx en CentOS 7

Cómo instalar Docker en CentOS 7

Cómo instalar Laravel con Nginx en CentOS 8