Cloud for Charities: Panduan Migrasi

Cloud for Charities: Panduan Migrasi

Tidak lama dahulu, Mail.Ru Cloud Solutions (MCS) dan perkhidmatan Dobro Mail.Ru melancarkan projek "Awan untuk badan amal”, terima kasih kepada organisasi bukan untung yang boleh mendapatkan sumber platform awan MCS secara percuma. Yayasan Amal "Aritmetik kebaikan» mengambil bahagian dalam projek itu dan berjaya menggunakan sebahagian daripada infrastrukturnya berdasarkan MCS.

Selepas lulus pengesahan, NPO boleh menerima kapasiti maya daripada MCS, tetapi konfigurasi selanjutnya memerlukan kelayakan tertentu. Dalam bahan ini, kami ingin berkongsi arahan khusus untuk menyediakan pelayan berasaskan Linux Ubuntu untuk menjalankan tapak web asas utama dan beberapa subdomain menggunakan sijil SSL percuma. Bagi kebanyakan orang, ini akan menjadi panduan mudah, tetapi kami berharap pengalaman kami akan berguna untuk organisasi bukan untung lain, dan bukan sahaja.

FYI: Apa yang anda boleh dapat daripada MCS? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, storan objek 500 GB.

Langkah 1: lancarkan pelayan maya

Mari terus ke inti dan buat pelayan maya kami (aka "contoh") dalam akaun peribadi MCS anda. Di gedung aplikasi, anda perlu memilih dan memasang tindanan LAMP siap sedia, yang merupakan satu set perisian pelayan (LAMP = Linux, Apache, MySQL, PHP) yang diperlukan untuk menjalankan kebanyakan tapak web.

Cloud for Charities: Panduan Migrasi
Cloud for Charities: Panduan Migrasi
Cloud for Charities: Panduan Migrasi
Pilih konfigurasi pelayan yang sesuai dan buat kunci SSH baharu. Selepas mengklik pada butang "Pasang", pemasangan pelayan dan tindanan LAMP akan bermula, ini akan mengambil sedikit masa. Sistem ini juga akan menawarkan untuk memuat turun kunci peribadi ke komputer anda untuk mengurus mesin maya melalui konsol, simpannya.

Selepas memasang aplikasi, mari segera sediakan firewall, ini juga dilakukan dalam akaun peribadi anda: pergi ke bahagian “Cloud computing -> Virtual machines” dan pilih “Setting the firewall”:

Cloud for Charities: Panduan Migrasi
Anda perlu menambah kebenaran untuk trafik masuk melalui port 80 dan 9997. Ini adalah perlu pada masa hadapan untuk memasang sijil SSL dan berfungsi dengan phpMyAdmin. Akibatnya, set peraturan sepatutnya kelihatan seperti ini:

Cloud for Charities: Panduan Migrasi
Kini anda boleh menyambung ke pelayan anda melalui baris arahan menggunakan protokol SSH. Untuk melakukan ini, taip arahan berikut, menunjuk ke kunci SSH pada komputer anda dan alamat IP luaran pelayan anda (anda boleh menemuinya di bahagian "Mesin maya"):

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

Apabila menyambung ke pelayan buat kali pertama, disyorkan untuk memasang semua kemas kini semasa padanya dan but semula. Untuk melakukan ini, jalankan arahan berikut:

$ sudo apt-get update

Sistem akan menerima senarai kemas kini, memasangnya menggunakan arahan ini dan ikut arahan:

$ sudo apt-get upgrade

Selepas memasang kemas kini, mulakan semula pelayan:

$ sudo reboot

Langkah 2: Sediakan hos maya

Banyak organisasi bukan untung perlu mengekalkan beberapa domain atau subdomain pada masa yang sama (contohnya, tapak web utama dan beberapa halaman pendaratan untuk kempen promosi, dsb.). Semua ini boleh diletakkan dengan mudah pada satu pelayan dengan mencipta beberapa hos maya.

Mula-mula kita perlu membuat struktur direktori untuk tapak yang akan dipaparkan kepada pelawat. Mari buat beberapa direktori:

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

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

Dan nyatakan pemilik pengguna semasa:

$ 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

Pembolehubah $USER mengandungi nama pengguna di mana anda sedang log masuk (secara lalai ini adalah pengguna ubuntu). Kini pengguna semasa memiliki direktori public_html di mana kami akan menyimpan kandungannya.

Kami juga perlu mengedit sedikit kebenaran untuk memastikan akses baca dibenarkan ke direktori web kongsi dan semua fail serta folder yang terkandung di dalamnya. Ini adalah perlu untuk halaman tapak dipaparkan dengan betul:

$ sudo chmod -R 755 /var/www

Pelayan web anda kini sepatutnya mempunyai kebenaran yang diperlukan untuk memaparkan kandungan. Di samping itu, pengguna anda kini mempunyai keupayaan untuk mencipta kandungan dalam direktori yang diperlukan.

Sudah ada fail index.php dalam direktori /var/www/html, mari salin ke direktori baharu kami - ini akan menjadi kandungan kami buat masa ini:

$ 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

Kini anda perlu memastikan bahawa pengguna boleh mengakses tapak anda. Untuk melakukan ini, kami akan mengkonfigurasi fail hos maya terlebih dahulu, yang menentukan cara pelayan web Apache akan bertindak balas terhadap permintaan kepada domain yang berbeza.

Secara lalai, Apache mempunyai fail hos maya 000-default.conf yang boleh kami gunakan sebagai titik permulaan. Kami akan menyalin ini untuk mencipta fail hos maya untuk setiap domain kami. Kami akan bermula dengan satu domain, mengkonfigurasinya, menyalinnya ke domain lain, dan kemudian membuat pengeditan yang diperlukan sekali lagi.

Konfigurasi lalai Ubuntu memerlukan setiap fail hos maya mempunyai sambungan *.conf.

Mari mulakan dengan menyalin fail untuk domain pertama:

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

Buka fail baharu dalam editor dengan hak akar:

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

Edit data seperti berikut, nyatakan port 80, data anda untuk ServerAdmin, ServerName, ServerAlias, serta laluan ke direktori akar tapak anda, simpan fail (Ctrl+X, kemudian 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 menetapkan domain utama, yang mesti sepadan dengan nama hos maya. Ini mestilah nama domain anda. Kedua, ServerAlias, mentakrifkan nama lain yang harus ditafsirkan seolah-olah ia adalah domain utama. Ini mudah untuk menggunakan nama domain tambahan, contohnya menggunakan www.

Mari salin konfigurasi ini untuk hos lain dan juga mengeditnya dengan cara yang sama:

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

Anda boleh membuat seberapa banyak direktori dan hos maya untuk tapak web anda sesuka hati! Memandangkan kami telah mencipta fail hos maya kami, kami perlu mendayakannya. Kami boleh menggunakan utiliti a2ensite untuk membolehkan setiap tapak kami seperti ini:

$ sudo a2ensite a-dobra.ru.conf

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

Secara lalai, port 80 ditutup dalam LAMP dan kami akan memerlukannya kemudian untuk memasang sijil SSL. Jadi mari kita edit fail ports.conf dengan segera dan kemudian mulakan semula Apache:

$ sudo nano /etc/apache2/ports.conf

Tambah baris baharu dan simpan fail supaya kelihatan seperti ini:

Listen 80
Listen 443
Listen 9997

Selepas melengkapkan tetapan, anda perlu memulakan semula Apache untuk semua perubahan berkuat kuasa:

$ sudo systemctl reload apache2

Langkah 3: Sediakan nama domain

Seterusnya, anda perlu menambah rekod DNS yang akan menghala ke pelayan baharu anda. Untuk mengurus domain, Arithmetic of Good Foundation kami menggunakan perkhidmatan dns-master.ru, kami akan menunjukkannya dengan contoh.

Menyediakan rekod A untuk domain utama biasanya ditunjukkan seperti berikut (tanda @):

Cloud for Charities: Panduan Migrasi
Rekod A untuk subdomain biasanya dinyatakan seperti ini:

Cloud for Charities: Panduan Migrasi
Alamat IP ialah alamat pelayan Linux yang baru kami buat. Anda boleh menentukan TTL = 3600.

Selepas beberapa lama, adalah mungkin untuk melawat tapak anda, tetapi buat masa ini hanya melalui http://. Dalam langkah seterusnya kami akan menambah sokongan https://.

Langkah 4: Sediakan sijil SSL percuma

Anda boleh mendapatkan sijil SSL Let's Encrypt percuma untuk tapak utama anda dan semua subdomain. Anda juga boleh mengkonfigurasi pembaharuan automatik mereka, yang sangat mudah. Untuk mendapatkan sijil SSL, pasang Certbot pada pelayan anda:

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

Pasang pakej Certbot untuk Apache menggunakan apt:

$ sudo apt install python-certbot-apache 

Sekarang Certbot sedia untuk digunakan, jalankan arahan:

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

Perintah ini menjalankan certbot, keys -d tentukan nama domain yang mana sijil harus dikeluarkan.

Jika ini kali pertama anda melancarkan certbot, anda akan diminta untuk memasukkan alamat e-mel anda dan bersetuju menerima syarat penggunaan perkhidmatan tersebut. certbot kemudiannya akan menghubungi pelayan Let's Encrypt dan kemudian mengesahkan bahawa anda sebenarnya mengawal domain yang anda minta sijil.

Jika semuanya berjalan lancar, certbot akan bertanya bagaimana anda mahu mengkonfigurasi konfigurasi 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):

Kami mengesyorkan memilih pilihan 2 dan menekan ENTER. Konfigurasi akan dikemas kini dan Apache akan dimulakan semula untuk menggunakan perubahan.

Sijil anda kini dimuat turun, dipasang dan berfungsi. Cuba muat semula tapak anda dengan https:// dan anda akan melihat ikon keselamatan dalam penyemak imbas anda. Jika anda menguji pelayan anda Ujian Pelayan SSL Labs, dia akan menerima gred A.

Sijil Let's Encrypt hanya sah selama 90 hari, tetapi pakej certbot yang baru kami pasang akan memperbaharui sijil secara automatik. Untuk menguji proses kemas kini, kami boleh melakukan larian kering certbot:

$ sudo certbot renew --dry-run 

Jika anda tidak melihat sebarang ralat akibat menjalankan arahan ini, maka semuanya berfungsi!

Langkah 5: Akses MySQL dan phpMyAdmin

Banyak laman web menggunakan pangkalan data. Alat phpMyAdmin untuk pengurusan pangkalan data telah dipasang pada pelayan kami. Untuk mengaksesnya, pergi ke penyemak imbas anda menggunakan pautan seperti:

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

Kata laluan untuk akses root boleh diperolehi dalam akaun peribadi MCS anda (https://mcs.mail.ru/app/services/marketplace/apps/). Jangan lupa untuk menukar kata laluan root anda pada kali pertama anda log masuk!

Langkah 6: Sediakan muat naik fail melalui SFTP

Pembangun akan merasa senang untuk memuat naik fail untuk tapak web anda melalui SFTP. Untuk melakukan ini, kami akan mencipta pengguna baharu, panggil dia juruweb:

$ sudo adduser webmaster

Sistem akan meminta anda untuk menetapkan kata laluan dan memasukkan beberapa data lain.

Menukar pemilik direktori dengan tapak web anda:

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

Sekarang mari kita ubah konfigurasi SSH supaya pengguna baharu hanya mempunyai akses kepada SFTP dan bukan terminal SSH:

$ sudo nano /etc/ssh/sshd_config

Tatal ke hujung fail konfigurasi dan tambah blok berikut:

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

Simpan fail dan mulakan semula perkhidmatan:

$ sudo systemctl restart sshd

Kini anda boleh menyambung ke pelayan melalui mana-mana klien SFTP, contohnya, melalui FileZilla.

Jumlah

  1. Kini anda tahu cara membuat direktori baharu dan mengkonfigurasi hos maya untuk tapak web anda dalam pelayan yang sama.
  2. Anda boleh membuat sijil SSL yang diperlukan dengan mudah - ia percuma, dan ia akan dikemas kini secara automatik.
  3. Anda boleh bekerja dengan mudah dengan pangkalan data MySQL melalui phpMyAdmin yang biasa.
  4. Mencipta akaun SFTP baharu dan menyediakan hak akses tidak memerlukan banyak usaha. Akaun sedemikian boleh dipindahkan kepada pembangun web pihak ketiga dan pentadbir tapak.
  5. Jangan lupa untuk mengemas kini sistem secara berkala, dan kami juga mengesyorkan membuat sandaran - dalam MCS anda boleh mengambil "gambar" keseluruhan sistem dengan satu klik, dan kemudian, jika perlu, lancarkan keseluruhan imej.

Sumber terpakai yang mungkin berguna:

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, di sini Anda boleh membaca di VC bagaimana yayasan kami menggunakan platform untuk pendidikan dalam talian untuk anak yatim berdasarkan awan MCS.

Sumber: www.habr.com

Tambah komen