Diferència entre revisions de la pàgina «Storagesis-Manual técnico»
Línia 62: | Línia 62: | ||
En caso de que no se tenga des-habilitado el sitio '''000-default.conf''' procedremos a des-habilitarlo con el siguiente comando<pre>a2dissite 000-default.conf</pre> | En caso de que no se tenga des-habilitado el sitio '''000-default.conf''' procedremos a des-habilitarlo con el siguiente comando<pre>a2dissite 000-default.conf</pre> | ||
+ | |||
+ | Creamos un nuevo archivo .conf, se le podrá llamar de cualquier forma en mi caso será de la siguiente forma <pre>sudo nano /etc/apache2/sites-available/owncloud.conf</pre> | ||
+ | |||
+ | Y dentro de este, añadimos la siguiente configuración <pre><VirtualHost *:80> | ||
+ | Redirect / https://www.storagesis.tk | ||
+ | ServerAdmin [email protected] | ||
+ | ServerName storagesis.tk | ||
+ | ServerAlias www.storagesis.tk | ||
+ | |||
+ | DocumentRoot /var/www/html/owncloud/ | ||
+ | Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" | ||
+ | # Logfiles | ||
+ | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
+ | CustomLog ${APACHE_LOG_DIR}/access.log combined | ||
+ | |||
+ | <Directory /var/www/html/owncloud/> | ||
+ | Options FollowSymLinks | ||
+ | DirectoryIndex index.php | ||
+ | Options Indexes FollowSymLinks Includes ExecCGI | ||
+ | AllowOverride None | ||
+ | Order deny,allow | ||
+ | Allow from all | ||
+ | Require all granted | ||
+ | </Directory> | ||
+ | </VirtualHost> | ||
+ | <VirtualHost *:443> | ||
+ | SSLEngine on | ||
+ | SSLProtocol all -SSLv2 | ||
+ | SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM | ||
+ | SSLCertificateFile /etc/apache2/ssl/storagesis.crt | ||
+ | SSLCertificateKeyFile /etc/apache2/ssl/storagesis.key | ||
+ | # SSLCertificateChainFile /etc/apache2/ssl/storagesis.pem | ||
+ | |||
+ | ServerAdmin [email protected] | ||
+ | ServerName storagesis.tk | ||
+ | ServerAlias www.storagesis.tk | ||
+ | |||
+ | DocumentRoot /var/www/html/owncloud/ | ||
+ | Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" | ||
+ | <Directory /var/www/html/owncloud/> | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride All | ||
+ | Require all granted | ||
+ | </Directory> | ||
+ | ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | ||
+ | <Directory "/usr/lib/cgi-bin"> | ||
+ | AllowOverride None | ||
+ | Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch | ||
+ | Order allow,deny | ||
+ | Allow from all | ||
+ | </Directory> | ||
+ | |||
+ | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
+ | |||
+ | Alias /doc/ "/usr/share/doc/" | ||
+ | <Directory "/usr/share/doc/"> | ||
+ | Options Indexes MultiViews FollowSymLinks | ||
+ | AllowOverride None | ||
+ | Order deny,allow | ||
+ | Deny from all | ||
+ | Allow from 127.0.0.0/255.0.0.0 ::1/128 | ||
+ | </Directory> | ||
+ | </VirtualHost> | ||
+ | </pre> | ||
==Configuración de Replicación Maestro-Maestro con MariaDB== | ==Configuración de Replicación Maestro-Maestro con MariaDB== |
Revisió del 00:28, 8 maig 2018
Instalaciones
En esta sección enseñaremos
Raspbian
Raspbian es la versión de Debian adaptada para la Raspberry.
Requisitos previos:
- Tarjeta SD (mínimo 8GB)
- Win32DiskImage
- Raspbian Strech Lite
Instalación:
Primero de todo, debe descargar la imagen ISO de Raspbian y Win32DiskImage que encontramos en el enlace anterior.
Una vez descargadas, procede a instalar Win32DiskImage. Cuando ya este instalado, lo único que debe hacer es conectar la tarjeta SD al equipo, seleccionar la imagen ISO descargada anteriormente y pulsar encima de Comenzar.
Servidor LAMP
Primero actualizar repositorios y paquetes:
$ sudo apt update && sudo apt upgrade -y
Instalación del sistema de gestión de base de datos MariaDB:
$ sudo apt install apache2 mariadb-server php7.0 phpmyadmin
HAproxy
Este software se utilizará para el balanceo de carga y alta disponibilidad, se deberá de instalar en el Servidor3
sudo apt install haproxy
Owncloud
Owncloud es un servicio de alojamiento en la nube.
Descargamos la ultima versión actual dentro de los servidores
wget https://download.owncloud.org/community/owncloud-10.0.8.zip
Cuando este descargado se debe descomprimir con el siguiente comando
unzip owncloud-10.0.8.zip
Se procederá a mover el directorio descomprimido a donde se quiere alojar la carpeta, en mi caso será la ruta /var/www/html/
sudo mv -r owncloud/ /var/www/html/
Y se cambiará el propietario de la siguiente forma
sudo chown -r www-data:www-data /var/www/html/owncloud
Instalamos todas las dependencias de php para el correcto funcionamiento de owncloud
sudo apt install libapache2-mod-php-apcu php-redis redis-server php7.0-ldap php7.0 php-imagick php7.0-common php7.0-curl php7.0-gd php7.0-imap php7.0-intl php7.0-json php7.0-ldap php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-pgsql php-smbclient php-ssh2 php7.0-sqlite3 php7.0-xml php7.0-zip
Una vez hecho estos pasos para acabar la instalación, deberemos ir al apartado 2 de esta sección para realizar una correcta instalación
Configuración de servicios
En este apartado se explicará como configurar cada servicio instalado para el correcto funcionamiento de estos.
Apache2
Se habilitarán los siguientes módulos de apache2 para el correcto funcionamiento
a2enmod rewrite a2enmod headers a2enmod env a2enmod dir a2enmod mime a2enmod ssl
En caso de que no se tenga des-habilitado el sitio 000-default.conf procedremos a des-habilitarlo con el siguiente comando
a2dissite 000-default.conf
Creamos un nuevo archivo .conf, se le podrá llamar de cualquier forma en mi caso será de la siguiente forma
sudo nano /etc/apache2/sites-available/owncloud.conf
Y dentro de este, añadimos la siguiente configuración
<VirtualHost *:80> Redirect / https://www.storagesis.tk ServerAdmin [email protected] ServerName storagesis.tk ServerAlias www.storagesis.tk DocumentRoot /var/www/html/owncloud/ Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" # Logfiles ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html/owncloud/> Options FollowSymLinks DirectoryIndex index.php Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Order deny,allow Allow from all Require all granted </Directory> </VirtualHost> <VirtualHost *:443> SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /etc/apache2/ssl/storagesis.crt SSLCertificateKeyFile /etc/apache2/ssl/storagesis.key # SSLCertificateChainFile /etc/apache2/ssl/storagesis.pem ServerAdmin [email protected] ServerName storagesis.tk ServerAlias www.storagesis.tk DocumentRoot /var/www/html/owncloud/ Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" <Directory /var/www/html/owncloud/> Options FollowSymLinks AllowOverride All Require all granted </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Configuración de Replicación Maestro-Maestro con MariaDB
Objetivo
El objetivo es crear una replicación Maestro - Maestro en el sistema de gestión de base de datos MariaDB. Se implementará en nuestros dos servidores Raspberry que incorporan el SO Raspbian sin escritorio y el servicio web Apache2.
Todo esto con el propósito de agregar velocidad y redundancia a nuestro servicio para que actúen como un clúster. El clúster de base de datos, será especialmente útil debido a que disponemos de alta disponibilidad en cuanto a servidores.
Esquema
En el esquema mostrado en la imagen utilizamos el protocolo IPV4 en el cual el servidor Apache 1 tiene la IP 192.168.1.12/24 y el servidor Apache 2 la 192.168.1.14/24.
Configuración Maestro Servidor Apache 1
Tendremos que añadir estas líneas en el archivo my.cnf ubicado en la ruta /etc/mysql/:
[mysqld] log-bin server_id=1 log-basename=master1 bind-address= 0.0.0.0 binlog_do_db= owncloud
A continuación guardamos la configuración y reiniciamos el servicio MariaDB:
$ sudo systemctl restart mariadb