Cloud for Charities: Panduan Migrasi

Cloud for Charities: Panduan Migrasi

Belum lama ini, Mail.Ru Cloud Solutions (MCS) dan layanan Dobro Mail.Ru meluncurkan proyek “Cloud untuk amal”, berkat organisasi nirlaba yang dapat memperoleh sumber daya platform cloud MCS secara gratis. Yayasan Amal"Aritmatika kebaikan» mengambil bagian dalam proyek ini dan berhasil mengerahkan sebagian infrastrukturnya berdasarkan MCS.

Setelah lolos validasi, suatu NPO dapat menerima kapasitas virtual dari MCS, namun konfigurasi lebih lanjut memerlukan kualifikasi tertentu. Pada materi kali ini, kami ingin membagikan instruksi khusus untuk menyiapkan server berbasis Ubuntu Linux untuk menjalankan situs web fondasi utama dan sejumlah subdomain menggunakan sertifikat SSL gratis. Bagi banyak orang, ini akan menjadi panduan sederhana, namun kami berharap pengalaman kami bermanfaat bagi organisasi nirlaba lainnya, dan tidak hanya.

FYI: Apa yang bisa kamu dapatkan dari MCS? 4 CPU, RAM 32 GB, HDD 1 TB, OS Linux Ubuntu, penyimpanan objek 500 GB.

Langkah 1: luncurkan server virtual

Mari langsung ke intinya dan buat server virtual kami (alias “instance”) di akun pribadi MCS Anda. Di toko aplikasi, Anda perlu memilih dan menginstal tumpukan LAMP yang sudah jadi, yang merupakan seperangkat perangkat lunak server (LAMP = Linux, Apache, MySQL, PHP) yang diperlukan untuk menjalankan sebagian besar situs web.

Cloud for Charities: Panduan Migrasi
Cloud for Charities: Panduan Migrasi
Cloud for Charities: Panduan Migrasi
Pilih konfigurasi server yang sesuai dan buat kunci SSH baru. Setelah mengklik tombol “Instal”, instalasi server dan tumpukan LAMP akan dimulai, ini akan memakan waktu. Sistem juga akan menawarkan untuk mengunduh kunci pribadi ke komputer Anda untuk mengelola mesin virtual melalui konsol, simpan.

Setelah menginstal aplikasi, mari segera konfigurasikan firewall, ini juga dilakukan di akun pribadi Anda: buka bagian "Komputasi awan -> Mesin virtual" dan pilih "Pengaturan firewall":

Cloud for Charities: Panduan Migrasi
Anda perlu menambahkan izin untuk lalu lintas masuk melalui port 80 dan 9997. Hal ini diperlukan di masa depan untuk menginstal sertifikat SSL dan bekerja dengan phpMyAdmin. Hasilnya, seperangkat aturan akan terlihat seperti ini:

Cloud for Charities: Panduan Migrasi
Sekarang Anda dapat terhubung ke server Anda melalui baris perintah menggunakan protokol SSH. Untuk melakukannya, ketik perintah berikut, arahkan ke kunci SSH di komputer Anda dan alamat IP eksternal server Anda (Anda dapat menemukannya di bagian “Mesin virtual”):

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

Saat menghubungkan ke server untuk pertama kalinya, disarankan untuk menginstal semua pembaruan terkini di dalamnya dan mem-boot ulang. Untuk melakukannya, jalankan perintah berikut:

$ sudo apt-get update

Sistem akan menerima daftar pembaruan, menginstalnya menggunakan perintah ini dan ikuti petunjuknya:

$ sudo apt-get upgrade

Setelah menginstal pembaruan, mulai ulang server:

$ sudo reboot

Langkah 2: Siapkan host virtual

Banyak lembaga nonprofit yang perlu mengelola beberapa domain atau subdomain secara bersamaan (misalnya, situs web utama dan beberapa laman landas untuk kampanye promosi, dll.). Semua ini dapat dengan mudah ditempatkan di satu server dengan membuat beberapa host virtual.

Pertama kita perlu membuat struktur direktori untuk situs yang akan ditampilkan kepada pengunjung. 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 tentukan pemilik pengguna saat ini:

$ 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

Variabel $USER berisi nama pengguna yang saat ini Anda gunakan untuk masuk (secara default ini adalah pengguna ubuntu). Sekarang pengguna saat ini memiliki direktori public_html tempat kami akan menyimpan konten.

Kita juga perlu sedikit mengedit izin untuk memastikan bahwa akses baca diperbolehkan ke direktori web bersama dan semua file dan folder di dalamnya. Ini diperlukan agar halaman situs dapat ditampilkan dengan benar:

$ sudo chmod -R 755 /var/www

Server web Anda sekarang harus memiliki izin yang diperlukan untuk menampilkan konten. Selain itu, pengguna Anda kini memiliki kemampuan untuk membuat konten di direktori yang diperlukan.

Sudah ada file index.php di direktori /var/www/html, mari kita salin ke direktori baru kita - ini akan menjadi konten kita saat 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

Sekarang Anda perlu memastikan bahwa pengguna dapat mengakses situs Anda. Untuk melakukan ini, pertama-tama kita akan mengkonfigurasi file host virtual, yang menentukan bagaimana server web Apache akan merespons permintaan ke domain berbeda.

Secara default, Apache memiliki file host virtual 000-default.conf yang dapat kita gunakan sebagai titik awal. Kami akan menyalin ini untuk membuat file host virtual untuk setiap domain kami. Kita akan mulai dengan satu domain, mengonfigurasinya, menyalinnya ke domain lain, lalu melakukan pengeditan yang diperlukan lagi.

Konfigurasi default Ubuntu mengharuskan setiap file host virtual memiliki ekstensi *.conf.

Mari kita mulai dengan menyalin file untuk domain pertama:

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

Buka file baru di editor dengan hak root:

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

Edit data sebagai berikut, tentukan port 80, data Anda untuk ServerAdmin, ServerName, ServerAlias, serta jalur ke direktori root situs Anda, simpan file (Ctrl+X, lalu 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 harus cocok dengan nama host virtual. Ini harus menjadi nama domain Anda. Kedua, ServerAlias, mendefinisikan nama lain yang harus ditafsirkan seolah-olah itu adalah domain primer. Hal ini berguna untuk menggunakan nama domain tambahan, misalnya menggunakan www.

Mari salin konfigurasi ini untuk host lain dan edit juga dengan cara yang sama:

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

Anda dapat membuat direktori dan host virtual untuk situs web Anda sebanyak yang Anda suka! Sekarang kita telah membuat file host virtual, kita perlu mengaktifkannya. Kita dapat menggunakan utilitas a2ensite untuk mengaktifkan setiap situs kami seperti ini:

$ sudo a2ensite a-dobra.ru.conf

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

Secara default, port 80 ditutup di LAMP, dan kita memerlukannya nanti untuk menginstal sertifikat SSL. Jadi mari kita segera edit file ports.conf lalu restart Apache:

$ sudo nano /etc/apache2/ports.conf

Tambahkan baris baru dan simpan file sehingga terlihat seperti ini:

Listen 80
Listen 443
Listen 9997

Setelah menyelesaikan pengaturan, Anda perlu me-restart Apache agar semua perubahan diterapkan:

$ sudo systemctl reload apache2

Langkah 3: Siapkan nama domain

Selanjutnya, Anda perlu menambahkan catatan DNS yang akan mengarah ke server baru Anda. Untuk mengelola domain, Arithmetic of Good Foundation kami menggunakan layanan dns-master.ru, kami akan menunjukkannya dengan sebuah contoh.

Menyiapkan A-record untuk domain utama biasanya ditunjukkan sebagai berikut (sign @):

Cloud for Charities: Panduan Migrasi
Catatan A untuk subdomain biasanya ditentukan seperti ini:

Cloud for Charities: Panduan Migrasi
Alamat IP adalah alamat server Linux yang baru saja kita buat. Anda dapat menentukan TTL = 3600.

Setelah beberapa waktu, situs Anda dapat dikunjungi, tetapi untuk saat ini hanya melalui http://. Pada langkah selanjutnya kami akan menambahkan dukungan https://.

Langkah 4: Siapkan sertifikat SSL gratis

Anda bisa mendapatkan sertifikat SSL Let's Encrypt gratis untuk situs utama Anda dan semua subdomain. Anda juga dapat mengonfigurasi perpanjangan otomatisnya, yang sangat nyaman. Untuk mendapatkan sertifikat SSL, instal Certbot di server Anda:

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

Instal paket Certbot untuk Apache menggunakan apt:

$ sudo apt install python-certbot-apache 

Sekarang Certbot siap digunakan, jalankan perintah:

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

Perintah ini menjalankan certbot, kunci -d tentukan nama domain yang sertifikatnya harus diterbitkan.

Jika ini pertama kalinya Anda meluncurkan certbot, Anda akan diminta memasukkan alamat email Anda dan menyetujui persyaratan penggunaan layanan. certbot kemudian akan menghubungi server Let's Encrypt dan kemudian memverifikasi bahwa Anda benar-benar mengontrol domain yang Anda minta sertifikatnya.

Jika semuanya berjalan lancar, certbot akan menanyakan bagaimana Anda ingin mengonfigurasi 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 merekomendasikan memilih opsi 2 dan menekan ENTER. Konfigurasi akan diperbarui dan Apache akan dimulai ulang untuk menerapkan perubahan.

Sertifikat Anda sekarang telah diunduh, diinstal, dan berfungsi. Coba muat ulang situs Anda dengan https:// dan Anda akan melihat ikon keamanan di browser Anda. Jika Anda menguji server Anda Tes Server Lab SSL, dia akan menerima nilai A.

Sertifikat Let's Encrypt hanya berlaku selama 90 hari, tetapi paket certbot yang baru saja kita instal akan memperbarui sertifikat secara otomatis. Untuk menguji proses pembaruan, kita dapat melakukan uji coba certbot:

$ sudo certbot renew --dry-run 

Jika Anda tidak melihat kesalahan apa pun akibat menjalankan perintah ini, maka semuanya berfungsi!

Langkah 5: Akses MySQL dan phpMyAdmin

Banyak situs web menggunakan database. Alat phpMyAdmin untuk manajemen database sudah terinstal di server kami. Untuk mengaksesnya, buka browser Anda menggunakan tautan seperti:

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

Kata sandi untuk akses root dapat diperoleh di akun pribadi MCS Anda (https://mcs.mail.ru/app/services/marketplace/apps/). Jangan lupa untuk mengubah kata sandi root Anda saat pertama kali login!

Langkah 6: Atur unggahan file melalui SFTP

Pengembang akan merasa nyaman mengunggah file untuk situs web Anda melalui SFTP. Untuk melakukan ini, kami akan membuat pengguna baru, panggil dia webmaster:

$ sudo adduser webmaster

Sistem akan meminta Anda untuk mengatur kata sandi dan memasukkan beberapa data lainnya.

Mengubah pemilik direktori dengan website Anda:

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

Sekarang mari kita ubah konfigurasi SSH sehingga pengguna baru hanya memiliki akses ke SFTP dan bukan terminal SSH:

$ sudo nano /etc/ssh/sshd_config

Gulir ke bagian paling akhir file konfigurasi dan tambahkan 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 file dan mulai ulang layanan:

$ sudo systemctl restart sshd

Sekarang Anda dapat terhubung ke server melalui klien SFTP apa pun, misalnya melalui FileZilla.

Total

  1. Sekarang Anda tahu cara membuat direktori baru dan mengkonfigurasi host virtual untuk situs web Anda dalam server yang sama.
  2. Anda dapat dengan mudah membuat sertifikat SSL yang diperlukan - gratis dan akan diperbarui secara otomatis.
  3. Anda dapat dengan mudah bekerja dengan database MySQL melalui phpMyAdmin yang sudah dikenal.
  4. Membuat akun SFTP baru dan menyiapkan hak akses tidak memerlukan banyak usaha. Akun tersebut dapat ditransfer ke pengembang web pihak ketiga dan administrator situs.
  5. Jangan lupa untuk memperbarui sistem secara berkala, dan kami juga menyarankan untuk membuat cadangan - di MCS Anda dapat mengambil "snapshot" seluruh sistem dengan satu klik, dan kemudian, jika perlu, meluncurkan seluruh gambar.

Sumber daya bekas 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

Kebetulan, di sini Anda dapat membaca di VC bagaimana yayasan kami menerapkan platform pendidikan online untuk anak yatim piatu berdasarkan cloud MCS.

Sumber: www.habr.com

Tambah komentar