Cloud for Charities: Guía de migración

Cloud for Charities: Guía de migración

Non hai moito tempo, Mail.Ru Cloud Solutions (MCS) e o servizo Dobro Mail.Ru lanzaron o proxecto "Nube para entidades benéficas”, grazas ao cal as organizacións sen ánimo de lucro poden obter gratuitamente os recursos da plataforma na nube MCS. Fundación Benéfica"Aritmética da bondade» participou no proxecto e implantou con éxito parte da súa infraestrutura baseada en MCS.

Despois de pasar a validación, un NPO pode recibir capacidade virtual de MCS, pero unha configuración posterior require certas cualificacións. Neste material, queremos compartir instrucións específicas para configurar un servidor baseado en Ubuntu Linux para executar o sitio web principal da fundación e unha serie de subdominios utilizando certificados SSL gratuítos. Para moitos, esta será unha guía sinxela, pero esperamos que a nosa experiencia sexa útil para outras organizacións sen ánimo de lucro, e non só.

FYI: Que podes obter de MCS? 4 CPUs, 32 GB de RAM, 1 TB de disco duro, Ubuntu Linux OS, 500 GB de almacenamento de obxectos.

Paso 1: inicia o servidor virtual

Imos directos ao grano e creemos o noso servidor virtual (tamén coñecido como "instancia") na túa conta persoal de MCS. Na tenda de aplicacións, cómpre seleccionar e instalar unha pila LAMP preparada, que é un conxunto de software de servidor (LAMP = Linux, Apache, MySQL, PHP) necesario para executar a maioría dos sitios web.

Cloud for Charities: Guía de migración
Cloud for Charities: Guía de migración
Cloud for Charities: Guía de migración
Seleccione a configuración de servidor adecuada e cree unha nova clave SSH. Despois de facer clic no botón "Instalar", comezará a instalación do servidor e da pila LAMP, que levará algún tempo. O sistema tamén ofrecerá descargar unha clave privada no seu ordenador para xestionar a máquina virtual a través da consola, garda-lo.

Despois de instalar a aplicación, configuremos inmediatamente o firewall, isto tamén se fai na túa conta persoal: vai á sección "Cloud computing -> Máquinas virtuais" e selecciona "Configuración do firewall":

Cloud for Charities: Guía de migración
Debes engadir permiso para o tráfico entrante a través dos portos 80 e 9997. Isto é necesario no futuro para instalar certificados SSL e traballar con phpMyAdmin. Como resultado, o conxunto de regras debería verse así:

Cloud for Charities: Guía de migración
Agora podes conectarte ao teu servidor a través da liña de comandos usando o protocolo SSH. Para iso, escriba o seguinte comando, sinalando a clave SSH do seu ordenador e o enderezo IP externo do seu servidor (pode atopalo na sección "Máquinas virtuais"):

$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>

Cando se conecte ao servidor por primeira vez, recoméndase instalar todas as actualizacións actuais nel e reinicialo. Para facelo, execute os seguintes comandos:

$ sudo apt-get update

O sistema recibirá unha lista de actualizacións, instálaas mediante este comando e seguirá as instrucións:

$ sudo apt-get upgrade

Despois de instalar as actualizacións, reinicie o servidor:

$ sudo reboot

Paso 2: configurar hosts virtuais

Moitas organizacións sen ánimo de lucro necesitan manter varios dominios ou subdominios ao mesmo tempo (por exemplo, un sitio web principal e varias páxinas de destino para campañas promocionais, etc.). Todo isto pódese colocar convenientemente nun servidor creando varios hosts virtuais.

Primeiro necesitamos crear unha estrutura de directorios para os sitios que se mostrarán aos visitantes. Imos crear algúns directorios:

$ sudo mkdir -p /var/www/a-dobra.ru/public_html

$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html

E especifique o propietario do usuario actual:

$ sudo chown -R $USER:$USER /var/www/a-dobra.ru/public_html

$ sudo chown -R $USER:$USER /var/www/promo.a-dobra.ru/public_html

Variable $USER contén o nome de usuario co que está actualmente conectado (por defecto este é o usuario ubuntu). Agora o usuario actual é propietario dos directorios public_html onde almacenaremos o contido.

Tamén necesitamos editar un pouco os permisos para asegurarnos de que se permite o acceso de lectura ao directorio web compartido e a todos os ficheiros e cartafoles que contén. Isto é necesario para que as páxinas do sitio se mostren correctamente:

$ sudo chmod -R 755 /var/www

Agora o teu servidor web debería ter os permisos necesarios para mostrar o contido. Ademais, agora o teu usuario ten a posibilidade de crear contido nos directorios necesarios.

Xa hai un ficheiro index.php no directorio /var/www/html, imos copialo nos nosos novos directorios - este será o noso contido polo momento:

$ cp /var/www/html/index.php /var/www/a-dobra.ru/public_html/index.php

$ cp /var/www/html/index.php /var/www/promo.a-dobra.ru/public_html/index.php

Agora debes asegurarte de que o usuario poida acceder ao teu sitio. Para iso, primeiro configuraremos os ficheiros de host virtuais, que determinan como responderá o servidor web Apache ás solicitudes a diferentes dominios.

Por defecto, Apache ten un ficheiro de host virtual 000-default.conf que podemos usar como punto de partida. Imos copiar isto para crear ficheiros de host virtuais para cada un dos nosos dominios. Comezaremos cun dominio, configuralo, copialo noutro dominio e, a continuación, realizaremos de novo as edicións necesarias.

A configuración predeterminada de Ubuntu require que cada ficheiro de host virtual teña unha extensión *.conf.

Comecemos copiando o ficheiro para o primeiro dominio:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf

Abre un ficheiro novo nun editor con dereitos de root:

$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf

Edita os datos do seguinte xeito, especificando o porto 80, para os que tes datos ServerAdmin, ServerName, ServerAlias, así como o camiño ao directorio raíz do teu sitio, garda o ficheiro (Ctrl+X, despois Y):

<VirtualHost *:80>
 
    ServerAdmin [email protected]
    ServerName a-dobra.ru
    ServerAlias www.a-dobra.ru
 
    DocumentRoot /var/www/a-dobra.ru/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    <Directory /var/www/a-dobra.ru/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
 
    <FilesMatch .php$>
        SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
    </FilesMatch>
 
</VirtualHost>

ServerName establece o dominio principal, que debe coincidir co nome do servidor virtual. Este debe ser o teu nome de dominio. Segundo, ServerAlias, define outros nomes que deben ser interpretados coma se fose o dominio primario. Isto é conveniente para usar nomes de dominio adicionais, por exemplo usar www.

Copiemos esta configuración para outro host e editámola do mesmo xeito:

$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf

Podes crear tantos directorios e servidores virtuais para os teus sitios web como queiras. Agora que creamos os nosos ficheiros de host virtual, necesitamos activalos. Podemos usar a utilidade a2ensite para activar cada un dos nosos sitios deste xeito:

$ sudo a2ensite a-dobra.ru.conf

$ sudo a2ensite promo.a-dobra.ru.conf 

Por defecto, o porto 80 está pechado en LAMP, e necesitarémolo máis tarde para instalar un certificado SSL. Entón, editemos inmediatamente o ficheiro ports.conf e reiniciemos Apache:

$ sudo nano /etc/apache2/ports.conf

Engade unha nova liña e garda o ficheiro para que se vexa así:

Listen 80
Listen 443
Listen 9997

Despois de completar a configuración, cómpre reiniciar Apache para que todos os cambios teñan efecto:

$ sudo systemctl reload apache2

Paso 3: configure os nomes de dominio

A continuación, debes engadir rexistros DNS que apuntarán ao teu novo servidor. Para xestionar dominios, a nosa Arithmetic of Good Foundation utiliza o servizo dns-master.ru, mostrámolo cun exemplo.

A configuración dun rexistro A para o dominio principal adoita indicarse do seguinte xeito (sinal @):

Cloud for Charities: Guía de migración
O rexistro A para os subdominios adoita especificarse así:

Cloud for Charities: Guía de migración
O enderezo IP é o enderezo do servidor Linux que acabamos de crear. Podes especificar TTL = 3600.

Despois dun tempo, será posible visitar o seu sitio, pero polo momento só a través http://. No seguinte paso engadiremos soporte https://.

Paso 4: configure certificados SSL gratuítos

Podes obter certificados SSL de Let's Encrypt gratuítos para o teu sitio principal e todos os subdominios. Tamén pode configurar a súa renovación automática, o que é moi cómodo. Para obter certificados SSL, instale Certbot no seu servidor:

$ sudo add-apt-repository ppa:certbot/certbot

Instale o paquete Certbot para Apache usando apt:

$ sudo apt install python-certbot-apache 

Agora Certbot está listo para usar, executa o comando:

$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru

Este comando executa certbot, keys -d definir os nomes dos dominios para os que se debe emitir o certificado.

Se esta é a primeira vez que inicias certbot, pediráselle que introduza o seu enderezo de correo electrónico e acepte as condicións de uso do servizo. certbot poñerase en contacto co servidor Let's Encrypt e despois verificará que realmente controla o dominio para o que solicitou o certificado.

Se todo saíu ben, certbot preguntará como queres configurar a configuración HTTPS:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Recomendamos seleccionar a opción 2 e premer ENTER. A configuración actualizarase e Apache reiniciarase para aplicar os cambios.

Os teus certificados xa están descargados, instalados e funcionando. Tenta volver cargar o teu sitio con https:// e verás a icona de seguranza no teu navegador. Se probas o teu servidor Proba do servidor SSL Labs, recibirá unha nota A.

Os certificados de Let's Encrypt só son válidos durante 90 días, pero o paquete certbot que acabamos de instalar renovará os certificados automaticamente. Para probar o proceso de actualización, podemos facer unha execución en seco do certbot:

$ sudo certbot renew --dry-run 

Se non ves ningún erro como resultado da execución deste comando, todo está funcionando.

Paso 5: acceda a MySQL e phpMyAdmin

Moitos sitios web usan bases de datos. A ferramenta phpMyAdmin para a xestión de bases de datos xa está instalada no noso servidor. Para acceder a el, vai ao teu navegador mediante unha ligazón como:

https://<ip-адрес сервера>:9997

O contrasinal para o acceso root pódese obter na súa conta persoal de MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Non esquezas cambiar o teu contrasinal de root a primeira vez que inicies sesión!

Paso 6: Configure a carga de ficheiros a través de SFTP

Os desenvolvedores considerarán conveniente cargar ficheiros para o seu sitio web a través de SFTP. Para iso, crearemos un novo usuario, chamámoslle webmaster:

$ sudo adduser webmaster

O sistema pediralle que estableza un contrasinal e introduza outros datos.

Cambiando o propietario do directorio co teu sitio web:

$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html

Agora imos cambiar a configuración SSH para que o novo usuario só teña acceso a SFTP e non ao terminal SSH:

$ sudo nano /etc/ssh/sshd_config

Desprácese ata o final do ficheiro de configuración e engade o seguinte bloque:

Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Garda o ficheiro e reinicia o servizo:

$ sudo systemctl restart sshd

Agora podes conectarte ao servidor a través de calquera cliente SFTP, por exemplo, a través de FileZilla.

Total

  1. Agora xa sabes como crear novos directorios e configurar hosts virtuais para os teus sitios web dentro do mesmo servidor.
  2. Podes crear facilmente os certificados SSL necesarios: é gratuíto e actualizaranse automaticamente.
  3. Podes traballar cómodamente coa base de datos MySQL a través do familiar phpMyAdmin.
  4. Crear novas contas SFTP e configurar dereitos de acceso non require moito esforzo. Tales contas pódense transferir a desenvolvedores web e administradores de sitios de terceiros.
  5. Non esquezas actualizar o sistema periodicamente e tamén recomendamos facer copias de seguridade: en MCS podes facer "instantáneas" de todo o sistema cun só clic e, se é necesario, lanzar imaxes enteiras.

Recursos utilizados que poden ser útiles:

https://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru
https://www.digitalocean.com/community/tutorials/apache-let-s-encrypt-ubuntu-18-04-ru
https://www.digitalocean.com/community/tutorials/how-to-enable-sftp-without-shell-access-on-ubuntu-18-04

By the way, aquí Podes ler en VC como a nosa fundación implantou unha plataforma de educación en liña para orfos baseada na nube MCS.

Fonte: www.habr.com

Engadir un comentario