Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma

Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma

Yaqinda Mail.Ru Cloud Solutions (MCS) va Dobro Mail.Ru xizmati loyihani ishga tushirdi.Xayriya uchun bulut”, buning yordamida notijorat tashkilotlar MCS bulutli platformasi resurslarini bepul olishlari mumkin. Xayriya jamg'armasi "Yaxshilik arifmetikasi» loyihada ishtirok etdi va MCS asosidagi infratuzilmasining bir qismini muvaffaqiyatli joylashtirdi.

Tekshiruvdan o'tgandan so'ng, NPO MCS dan virtual sig'im olishi mumkin, ammo keyingi konfiguratsiya muayyan malakalarni talab qiladi. Ushbu materialda biz bepul SSL sertifikatlaridan foydalangan holda asosiy veb-sayt va bir qator subdomenlarni ishga tushirish uchun Ubuntu Linux-ga asoslangan serverni o'rnatish bo'yicha aniq ko'rsatmalarni baham ko'rmoqchimiz. Ko'pchilik uchun bu oddiy qo'llanma bo'ladi, ammo bizning tajribamiz nafaqat boshqa notijorat tashkilotlar uchun foydali bo'ladi deb umid qilamiz.

FYI: MCS dan nimani olishingiz mumkin? 4 protsessor, 32 GB operativ xotira, 1 TB HDD, Ubuntu Linux OS, 500 GB ob'ekt xotirasi.

1-qadam: virtual serverni ishga tushiring

Keling, to'g'ridan-to'g'ri masalaga o'taylik va MCS shaxsiy hisobingizda virtual serverimizni (aka "misol") yaratamiz. Ilovalar do'konida siz ko'pgina veb-saytlarni ishga tushirish uchun zarur bo'lgan server dasturlari to'plami (LAMP = Linux, Apache, MySQL, PHP) bo'lgan tayyor LAMP stekini tanlashingiz va o'rnatishingiz kerak.

Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma
Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma
Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma
Tegishli server konfiguratsiyasini tanlang va yangi SSH kalitini yarating. "O'rnatish" tugmasini bosgandan so'ng, server va LAMP stekini o'rnatish boshlanadi, bu biroz vaqt oladi. Tizim shuningdek, virtual mashinani konsol orqali boshqarish, uni saqlash uchun shaxsiy kalitni kompyuteringizga yuklab olishni taklif qiladi.

Ilovani o'rnatgandan so'ng, darhol xavfsizlik devorini o'rnatamiz, bu sizning shaxsiy hisobingizda ham amalga oshiriladi: "Bulutli hisoblash -> Virtual mashinalar" bo'limiga o'ting va "Xavfsizlik devorini o'rnatish" ni tanlang:

Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma
80 va 9997 portlari orqali kiruvchi trafik uchun ruxsatni qo'shishingiz kerak. Bu kelajakda SSL sertifikatlarini o'rnatish va phpMyAdmin bilan ishlash uchun zarur. Natijada, qoidalar to'plami quyidagicha ko'rinishi kerak:

Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma
Endi siz SSH protokoli yordamida buyruq satri orqali serveringizga ulanishingiz mumkin. Buni amalga oshirish uchun kompyuteringizdagi SSH kalitiga va serveringizning tashqi IP-manziliga ishora qilib, quyidagi buyruqni kiriting (uni "Virtual mashinalar" bo'limida topishingiz mumkin):

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

Serverga birinchi marta ulanganda, unga barcha joriy yangilanishlarni o'rnatish va uni qayta ishga tushirish tavsiya etiladi. Buning uchun quyidagi buyruqlarni bajaring:

$ sudo apt-get update

Tizim yangilanishlar ro'yxatini oladi, ularni ushbu buyruq yordamida o'rnating va ko'rsatmalarga amal qiling:

$ sudo apt-get upgrade

Yangilanishlarni o'rnatgandan so'ng, serverni qayta ishga tushiring:

$ sudo reboot

2-qadam: Virtual xostlarni sozlang

Ko'pgina notijorat tashkilotlar bir vaqtning o'zida bir nechta domenlar yoki subdomenlarni saqlashlari kerak (masalan, asosiy veb-sayt va reklama kampaniyalari uchun bir nechta ochilish sahifalari va boshqalar). Bularning barchasi bir nechta virtual xostlar yaratish orqali bir serverga qulay tarzda joylashtirilishi mumkin.

Avval biz tashrif buyuruvchilarga ko'rsatiladigan saytlar uchun katalog tuzilmasini yaratishimiz kerak. Keling, ba'zi kataloglarni yarataylik:

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

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

Va joriy foydalanuvchining egasini belgilang:

$ 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

Argumentlar $USER Siz hozirda tizimga kirgan foydalanuvchi nomini o'z ichiga oladi (sukut bo'yicha bu foydalanuvchi ubuntu). Endi joriy foydalanuvchi biz kontentni saqlaydigan public_html kataloglariga egalik qiladi.

Umumiy veb-katalogga va undagi barcha fayl va papkalarga o'qishga ruxsat berilganligiga ishonch hosil qilish uchun biz ruxsatlarni biroz tahrirlashimiz kerak. Bu sayt sahifalarini to'g'ri ko'rsatish uchun zarur:

$ sudo chmod -R 755 /var/www

Sizning veb-serveringiz kontentni ko'rsatish uchun kerakli ruxsatlarga ega bo'lishi kerak. Bundan tashqari, foydalanuvchi endi kerakli kataloglarda tarkib yaratish imkoniyatiga ega.

/var/www/html katalogida index.php fayli allaqachon mavjud, keling, uni yangi kataloglarimizga ko'chiramiz - bu hozircha bizning tarkibimiz bo'ladi:

$ 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

Endi siz foydalanuvchining saytingizga kirishiga ishonch hosil qilishingiz kerak. Buning uchun biz avval virtual xost fayllarini sozlaymiz, ular Apache veb-serverining turli domenlarga bo'lgan so'rovlarga qanday javob berishini aniqlaydi.

Odatiy bo'lib, Apache 000-default.conf virtual xost fayliga ega bo'lib, biz uni boshlang'ich nuqtasi sifatida ishlatishimiz mumkin. Biz har bir domenimiz uchun virtual xost fayllarini yaratish uchun buni nusxalaymiz. Biz bitta domendan boshlaymiz, uni sozlaymiz, uni boshqa domenga nusxalaymiz va keyin yana kerakli tahrirlarni qilamiz.

Ubuntu'ning standart konfiguratsiyasi har bir virtual xost faylida *.conf kengaytmasi bo'lishini talab qiladi.

Birinchi domen uchun faylni nusxalashdan boshlaylik:

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

Muharrirda ildiz huquqlariga ega yangi faylni oching:

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

80-portni ko'rsatib, ma'lumotlarni quyidagi tarzda tahrirlang ServerAdmin, ServerName, ServerAlias, shuningdek, saytingizning asosiy katalogiga yo'l bilan faylni saqlang (Ctrl+X, keyin 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 virtual xost nomiga mos kelishi kerak bo'lgan asosiy domenni o'rnatadi. Bu sizning domen nomingiz bo'lishi kerak. Ikkinchi, ServerAlias, asosiy domen kabi talqin qilinishi kerak bo'lgan boshqa nomlarni belgilaydi. Bu qo'shimcha domen nomlaridan foydalanish uchun qulay, masalan, www.

Keling, ushbu konfiguratsiyani boshqa xost uchun nusxalaymiz va uni xuddi shu tarzda tahrirlaymiz:

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

Siz xohlagancha veb-saytlaringiz uchun kataloglar va virtual xostlar yaratishingiz mumkin! Endi biz virtual xost fayllarimizni yaratdik, ularni yoqishimiz kerak. Biz har bir saytimizni quyidagi kabi yoqish uchun a2ensite yordam dasturidan foydalanishimiz mumkin:

$ sudo a2ensite a-dobra.ru.conf

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

Odatiy bo'lib, 80-port LAMP-da yopilgan va SSL sertifikatini o'rnatish uchun keyinroq kerak bo'ladi. Keling, ports.conf faylini darhol tahrirlaymiz va keyin Apache-ni qayta ishga tushiramiz:

$ sudo nano /etc/apache2/ports.conf

Yangi qator qo'shing va faylni quyidagicha saqlang:

Listen 80
Listen 443
Listen 9997

Sozlamalarni tugatgandan so'ng, barcha o'zgarishlar kuchga kirishi uchun Apache-ni qayta ishga tushirishingiz kerak:

$ sudo systemctl reload apache2

3-qadam: Domen nomlarini sozlang

Keyinchalik, yangi serveringizga ishora qiluvchi DNS yozuvlarini qo'shishingiz kerak. Domenlarni boshqarish uchun bizning arifmetika yaxshi fondimiz dns-master.ru xizmatidan foydalanadi, biz uni misol bilan ko'rsatamiz.

Asosiy domen uchun A yozuvini o'rnatish odatda quyidagicha ko'rsatiladi (belgi @):

Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma
Subdomenlar uchun A yozuvi odatda quyidagicha belgilanadi:

Xayriya uchun bulut: Migratsiya bo'yicha qo'llanma
IP-manzil biz yaratgan Linux serverining manzilidir. Siz TTL = 3600 ni belgilashingiz mumkin.

Biroz vaqt o'tgach, sizning saytingizga tashrif buyurish mumkin bo'ladi, ammo hozircha faqat orqali http://. Keyingi bosqichda biz qo'llab-quvvatlashni qo'shamiz https://.

4-qadam: Bepul SSL sertifikatlarini o'rnating

Siz asosiy saytingiz va barcha subdomenlaringiz uchun bepul Let's Encrypt SSL sertifikatlarini olishingiz mumkin. Siz ularning avtomatik yangilanishini ham sozlashingiz mumkin, bu juda qulay. SSL sertifikatlarini olish uchun serveringizga Certbot-ni o'rnating:

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

Apache uchun Certbot paketini o'rnating apt:

$ sudo apt install python-certbot-apache 

Endi Certbot foydalanishga tayyor, buyruqni bajaring:

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

Bu buyruq certbot, kalitlarni boshqaradi -d sertifikat berilishi kerak bo'lgan domenlar nomlarini aniqlang.

Agar siz certbotni birinchi marta ishga tushirayotgan bo'lsangiz, sizdan elektron pochta manzilingizni kiritishingiz va xizmatdan foydalanish shartlariga rozilik bildirishingiz so'raladi. certbot keyin Let's Encrypt serveriga murojaat qiladi va keyin siz sertifikat so'ragan domenni haqiqatan ham nazorat qilishingizni tekshiradi.

Agar hamma narsa yaxshi bo'lsa, certbot HTTPS konfiguratsiyasini qanday sozlashni so'raydi:

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):

2-variantni tanlash va ENTER tugmasini bosishni tavsiya qilamiz. O'zgarishlarni qo'llash uchun konfiguratsiya yangilanadi va Apache qayta ishga tushiriladi.

Sizning sertifikatlaringiz endi yuklab olindi, o'rnatildi va ishlamoqda. Saytingizni https:// bilan qayta yuklashga urinib koʻring va brauzeringizda xavfsizlik belgisini koʻrasiz. Agar siz serveringizni sinab ko'rsangiz SSL Labs server testi, u A bahosini oladi.

Let's Encrypt sertifikatlari faqat 90 kun davomida amal qiladi, ammo biz o'rnatgan certbot paketi sertifikatlarni avtomatik ravishda yangilaydi. Yangilanish jarayonini sinab ko'rish uchun biz certbot-ni quruq ishga tushirishimiz mumkin:

$ sudo certbot renew --dry-run 

Agar siz ushbu buyruqni bajarish natijasida hech qanday xatoliklarni ko'rmasangiz, unda hamma narsa ishlaydi!

5-qadam: MySQL va phpMyAdmin-ga kiring

Ko'pgina veb-saytlar ma'lumotlar bazasidan foydalanadi. Ma'lumotlar bazasini boshqarish uchun phpMyAdmin vositasi allaqachon serverimizda o'rnatilgan. Unga kirish uchun quyidagi havola orqali brauzeringizga o'ting:

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

Ildizga kirish uchun parolni MCS shaxsiy hisobingizda olish mumkin (https://mcs.mail.ru/app/services/marketplace/apps/). Birinchi marta kirganingizda root parolingizni o'zgartirishni unutmang!

6-qadam: SFTP orqali fayl yuklashni sozlang

Ishlab chiquvchilar veb-saytingiz uchun fayllarni SFTP orqali yuklashni qulay deb bilishadi. Buning uchun biz yangi foydalanuvchi yaratamiz, uni webmaster deb nomlaymiz:

$ sudo adduser webmaster

Tizim sizdan parol o'rnatishingizni va boshqa ma'lumotlarni kiritishingizni so'raydi.

Veb-saytingiz bilan katalog egasini o'zgartirish:

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

Endi SSH konfiguratsiyasini yangi foydalanuvchi SSH terminaliga emas, balki faqat SFTP ga kirish huquqiga ega bo'lishi uchun o'zgartiramiz:

$ sudo nano /etc/ssh/sshd_config

Konfiguratsiya faylining oxirigacha o'ting va quyidagi blokni qo'shing:

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

Faylni saqlang va xizmatni qayta ishga tushiring:

$ sudo systemctl restart sshd

Endi siz serverga istalgan SFTP mijozi orqali, masalan, FileZilla orqali ulanishingiz mumkin.

Xulosa

  1. Endi siz yangi kataloglarni qanday yaratishni va bir xil serverdagi veb-saytlaringiz uchun virtual xostlarni sozlashni bilasiz.
  2. Siz kerakli SSL sertifikatlarini osongina yaratishingiz mumkin - bu bepul va ular avtomatik ravishda yangilanadi.
  3. Siz MySQL ma'lumotlar bazasi bilan tanish phpMyAdmin orqali qulay ishlashingiz mumkin.
  4. Yangi SFTP hisoblarini yaratish va kirish huquqlarini o'rnatish ko'p harakat talab qilmaydi. Bunday hisoblar uchinchi tomon veb-ishlab chiquvchilari va sayt ma'murlariga o'tkazilishi mumkin.
  5. Tizimni vaqti-vaqti bilan yangilashni unutmang, shuningdek, zaxira nusxalarini yaratishni tavsiya etamiz - MCS-da siz bir marta bosish bilan butun tizimning "suratlarini" olishingiz va keyin, agar kerak bo'lsa, butun rasmlarni ishga tushirishingiz mumkin.

Foydali bo'lishi mumkin bo'lgan foydalanilgan manbalar:

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

Ayni paytda, shu yerda Bizning fond MCS bulutiga asoslangan etim bolalar uchun onlayn ta'lim platformasini qanday o'rnatganini VC orqali o'qishingiz mumkin.

Manba: www.habr.com

a Izoh qo'shish