Non hai moito tempo, Mail.Ru Cloud Solutions (MCS) e o servizo Dobro Mail.Ru lanzaron o proxecto "
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.
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":
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í:
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 @
):
O rexistro A para os subdominios adoita especificarse así:
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
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 (
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
- Agora xa sabes como crear novos directorios e configurar hosts virtuais para os teus sitios web dentro do mesmo servidor.
- Podes crear facilmente os certificados SSL necesarios: é gratuíto e actualizaranse automaticamente.
- Podes traballar cómodamente coa base de datos MySQL a través do familiar phpMyAdmin.
- 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.
- 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:
By the way,
Fonte: www.habr.com