Yaqinda Mail.Ru Cloud Solutions (MCS) va Dobro Mail.Ru xizmati loyihani ishga tushirdi.
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.
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:
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:
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 @
):
Subdomenlar uchun A yozuvi odatda quyidagicha belgilanadi:
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
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 (
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
- Endi siz yangi kataloglarni qanday yaratishni va bir xil serverdagi veb-saytlaringiz uchun virtual xostlarni sozlashni bilasiz.
- Siz kerakli SSL sertifikatlarini osongina yaratishingiz mumkin - bu bepul va ular avtomatik ravishda yangilanadi.
- Siz MySQL ma'lumotlar bazasi bilan tanish phpMyAdmin orqali qulay ishlashingiz mumkin.
- 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.
- 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:
Ayni paytda,
Manba: www.habr.com