Тун удалгүй Mail.Ru Cloud Solutions (MCS) болон Dobro Mail.Ru үйлчилгээ "" төслийг эхлүүлсэн.
Баталгаажуулалтад тэнцсэний дараа NPO нь MCS-ээс виртуал хүчин чадал хүлээн авах боломжтой боловч цаашдын тохиргоонд тодорхой ур чадвар шаардагдана. Энэ материалд бид үндсэн суурь вэб сайт болон хэд хэдэн дэд домайнуудыг үнэгүй SSL сертификат ашиглан ажиллуулахын тулд Ubuntu Linux-д суурилсан серверийг тохируулах тусгай зааврыг хуваалцахыг хүсч байна. Олон хүмүүсийн хувьд энэ нь энгийн гарын авлага байх болно, гэхдээ бидний туршлага зөвхөн бус бусад ашгийн бус байгууллагуудад хэрэг болно гэж найдаж байна.
FYI: MCS-ээс юу авч болох вэ? 4 CPU, 32 ГБ RAM, 1 TB HDD, Ubuntu Linux үйлдлийн систем, 500 ГБ объект хадгалах.
Алхам 1: виртуал серверийг ажиллуул
Шууд зүйл рүүгээ орж, өөрийн MCS хувийн дансанд виртуал серверээ ("жишээ") үүсгэцгээе. Апп дэлгүүрт та ихэнх вэбсайтуудыг ажиллуулахад шаардлагатай серверийн програм хангамжийн багц (LAMP = Linux, Apache, MySQL, PHP) болох бэлэн LAMP стекийг сонгож суулгах хэрэгтэй.
Тохирох серверийн тохиргоог сонгоод шинэ SSH түлхүүр үүсгэнэ үү. "Суулгах" товчийг дарсны дараа сервер болон LAMP стекийг суулгаж эхлэх бөгөөд үүнд хэсэг хугацаа шаардагдана. Систем нь виртуал машиныг консолоор удирдахын тулд хувийн түлхүүрийг компьютер дээрээ татаж авахыг санал болгож, хадгална уу.
Програмыг суулгасны дараа галт ханыг нэн даруй тохируулцгаая, энэ нь таны хувийн дансанд хийгддэг: "Үүлэн тооцоолол -> Виртуал машинууд" хэсэгт очоод "Галт ханыг тохируулах" гэснийг сонгоно уу:
Та 80 болон 9997 портоор орж ирж буй урсгалын зөвшөөрлийг нэмэх шаардлагатай. Энэ нь ирээдүйд SSL сертификат суулгах, phpMyAdmin-тай ажиллахад зайлшгүй шаардлагатай. Үүний үр дүнд дүрмийн багц дараах байдлаар харагдах ёстой.
Одоо та SSH протоколыг ашиглан командын мөрөөр сервертэйгээ холбогдох боломжтой. Үүнийг хийхийн тулд компьютер дээрх SSH товчлуур болон серверийнхээ гадаад IP хаяг руу зааж дараах тушаалыг бичнэ үү (та үүнийг "Виртуал машинууд" хэсгээс олох боломжтой):
$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>
Сервертэй анх удаа холбогдох үед үүн дээр байгаа бүх шинэчлэлтүүдийг суулгаж, дахин ачаалахыг зөвлөж байна. Үүнийг хийхийн тулд дараах тушаалуудыг ажиллуулна уу.
$ sudo apt-get update
Систем шинэчлэлтүүдийн жагсаалтыг хүлээн авч, энэ тушаалыг ашиглан суулгаж, зааврыг дагана уу.
$ sudo apt-get upgrade
Шинэчлэлтүүдийг суулгасны дараа серверийг дахин эхлүүлнэ үү:
$ sudo reboot
Алхам 2: Виртуал хостуудыг тохируулна уу
Олон ашгийн бус байгууллагууд нэгэн зэрэг хэд хэдэн домэйн эсвэл дэд домайныг хадгалах шаардлагатай байдаг (жишээлбэл, үндсэн вэбсайт болон сурталчилгааны кампанит ажилд зориулсан хэд хэдэн буух хуудас гэх мэт). Энэ бүгдийг хэд хэдэн виртуал хост үүсгэснээр нэг сервер дээр тав тухтай байрлуулж болно.
Эхлээд бид зочдод үзүүлэх сайтуудын лавлах бүтцийг бий болгох хэрэгтэй. Хэдэн лавлах үүсгэцгээе:
$ sudo mkdir -p /var/www/a-dobra.ru/public_html
$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html
Мөн одоогийн хэрэглэгчийн эзэмшигчийг зааж өгнө үү:
$ 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
Хувьсах $USER
Таны одоо нэвтэрсэн хэрэглэгчийн нэрийг агуулдаг (анхдагчаар энэ нь хэрэглэгч юм ubuntu
). Одоо одоогийн хэрэглэгч бидний агуулгыг хадгалах public_html сангуудыг эзэмшдэг.
Мөн бид хуваалцсан вэб лавлах болон түүнд агуулагдах бүх файл, хавтас руу унших хандалтыг зөвшөөрсөн эсэхийг шалгахын тулд зөвшөөрлийг бага зэрэг засах хэрэгтэй. Энэ нь сайтын хуудсуудыг зөв харуулахын тулд шаардлагатай:
$ sudo chmod -R 755 /var/www
Таны вэб сервер одоо агуулгыг харуулах зөвшөөрөлтэй байх ёстой. Нэмж дурдахад, таны хэрэглэгч шаардлагатай лавлахуудад контент үүсгэх боломжтой болсон.
/var/www/html санд аль хэдийн index.php файл байна, үүнийг шинэ сангууддаа хуулж авцгаая - энэ нь одоогоор бидний агуулга байх болно:
$ 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
Одоо та хэрэглэгч таны сайтад нэвтрэх боломжтой эсэхийг шалгах хэрэгтэй. Үүнийг хийхийн тулд бид эхлээд виртуал хост файлуудыг тохируулах бөгөөд энэ нь Apache вэб сервер өөр домэйны хүсэлтэд хэрхэн хариу үйлдэл үзүүлэхийг тодорхойлох болно.
Анхдагч байдлаар, Apache нь 000-default.conf виртуал хост файлтай бөгөөд бид үүнийг эхлэх цэг болгон ашиглаж болно. Бид домэйн тус бүртээ виртуал хост файл үүсгэхийн тулд үүнийг хуулах болно. Бид нэг домэйноос эхэлж, тохируулж, өөр домэйнд хуулж, шаардлагатай засваруудыг дахин хийнэ.
Ubuntu-н үндсэн тохиргоо нь виртуал хост файл бүр *.conf өргөтгөлтэй байхыг шаарддаг.
Эхний домэйны файлыг хуулж эхэлцгээе:
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf
Үндэс эрх бүхий засварлагчаар шинэ файл нээх:
$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf
Өгөгдлийг дараах байдлаар засварлаж, 80-р портын өгөгдлийг зааж өгнө үү ServerAdmin
, ServerName
, ServerAlias
, түүнчлэн таны сайтын үндсэн директор руу очих зам, файлыг хадгална уу (Ctrl+X, дараа нь 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
виртуал хост нэртэй таарч байх ёстой үндсэн домайныг тохируулна. Энэ нь таны домэйн нэр байх ёстой. Хоёрдугаарт, ServerAlias
, нь үндсэн домэйн мэт тайлбарлах ёстой бусад нэрийг тодорхойлдог. Энэ нь нэмэлт домэйн нэрийг ашиглахад тохиромжтой, жишээ нь www.
Скопируем данный конфиг для другого хоста и тоже отредактируем его по аналогии:
$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf
Та өөрийн вэб сайтдаа хүссэнээрээ олон лавлах, виртуал хост үүсгэж болно! Одоо бид виртуал хост файлуудаа үүсгэсэн тул тэдгээрийг идэвхжүүлэх хэрэгтэй. Бид a2ensite хэрэглүүрийг ашиглан өөрийн сайт бүрийг дараах байдлаар идэвхжүүлж болно.
$ sudo a2ensite a-dobra.ru.conf
$ sudo a2ensite promo.a-dobra.ru.conf
Анхдагчаар 80-р порт нь LAMP-д хаагдсан бөгөөд дараа нь SSL сертификат суулгахын тулд бидэнд хэрэгтэй болно. Тиймээс ports.conf файлыг нэн даруй засаад Apache-г дахин эхлүүлье:
$ sudo nano /etc/apache2/ports.conf
Добавьте новую строку и сохраните файл, чтобы он выглядел следующим образом:
Listen 80
Listen 443
Listen 9997
Тохиргоог хийж дууссаны дараа бүх өөрчлөлт хүчин төгөлдөр болохын тулд та Apache-г дахин эхлүүлэх хэрэгтэй.
$ sudo systemctl reload apache2
Алхам 3: Домэйн нэрийг тохируулах
Дараа нь та шинэ сервер рүүгээ чиглүүлэх DNS бичлэгүүдийг нэмэх хэрэгтэй. Домэйнуудыг удирдахын тулд манай арифметик сайн сангийн dns-master.ru үйлчилгээг ашигладаг бөгөөд бид үүнийг жишээгээр харуулах болно.
Үндсэн домэйны хувьд A бичлэгийг тохируулах нь ихэвчлэн дараах байдлаар илэрхийлэгдэнэ (тэмдэг @
):
Дэд домайнуудын A бичлэгийг ихэвчлэн дараах байдлаар зааж өгдөг.
IP хаяг нь бидний саяхан үүсгэсэн Линукс серверийн хаяг юм. Та TTL = 3600 гэж зааж өгч болно.
Через некоторое время на ваш сайт уже можно будет зайти, но пока только через http://
. В следующем шаге мы добавим поддержку https://
.
Алхам 4: Үнэгүй SSL сертификатуудыг тохируулна уу
Та өөрийн үндсэн сайт болон бүх дэд домайнуудад үнэгүй Let's Encrypt SSL сертификат авах боломжтой. Та мөн тэдний автомат шинэчлэлтийг тохируулах боломжтой бөгөөд энэ нь маш тохиромжтой. SSL сертификат авахын тулд сервер дээрээ Certbot суулгана уу:
$ sudo add-apt-repository ppa:certbot/certbot
Apache-д зориулсан Certbot багцыг ашиглан суулгана уу apt
:
$ sudo apt install python-certbot-apache
Одоо Certbot ашиглахад бэлэн болсон тул дараах тушаалыг ажиллуулна уу:
$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru
Энэ тушаал нь certbot, түлхүүрүүдийг ажиллуулдаг -d
гэрчилгээ олгох ёстой домайнуудын нэрийг тодорхойлох.
Хэрэв та анх удаа certbot ажиллуулж байгаа бол танаас имэйл хаягаа оруулахыг хүсэх бөгөөд үйлчилгээг ашиглах нөхцөлийг зөвшөөрөх болно. Дараа нь certbot нь Let's Encrypt сервертэй холбогдож, дараа нь та гэрчилгээ хүссэн домайныг үнэхээр хянаж байгаа эсэхийг шалгах болно.
Хэрэв бүх зүйл сайн болсон бол certbot нь 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):
Бид 2-р сонголтыг сонгоод ENTER товчийг дарахыг зөвлөж байна. Өөрчлөлтүүдийг хэрэгжүүлэхийн тулд тохиргоо шинэчлэгдэж, Apache дахин асах болно.
Таны гэрчилгээг одоо татаж аваад суулгаж, ажиллаж байна. Сайтаа https:// ашиглан дахин ачаалаад үзээрэй, та хөтөч дээрээ аюулгүй байдлын дүрсийг харах болно. Хэрэв та серверээ туршиж үзвэл
Шифрлэцгээе гэрчилгээ нь зөвхөн 90 хоногийн хугацаанд хүчинтэй байх боловч бидний саяхан суулгасан certbot багц нь гэрчилгээг автоматаар шинэчлэх болно. Шинэчлэх процессыг шалгахын тулд бид certbot-ийг хуурай ажиллуулж болно:
$ sudo certbot renew --dry-run
Если вы не видите каких-либо ошибок в результате выполнения этой команды, то всё работает!
Алхам 5: MySQL болон phpMyAdmin руу нэвтрэх
Олон вэбсайтууд мэдээллийн санг ашигладаг. Өгөгдлийн сангийн менежментийн phpMyAdmin хэрэгслийг манай сервер дээр суулгасан байна. Үүнд хандахын тулд дараах холбоосыг ашиглан хөтөч рүүгээ орно уу:
https://<ip-адрес сервера>:9997
Үндсэн хандалтын нууц үгийг MCS хувийн данснаас авах боломжтой (
Алхам 6: SFTP-ээр файл байршуулахыг тохируулна уу
Хөгжүүлэгчид SFTP-ээр дамжуулан вэбсайтдаа файл байршуулахад тохиромжтой байх болно. Үүнийг хийхийн тулд бид шинэ хэрэглэгч үүсгэж, түүнийг вэбмастер гэж нэрлэнэ:
$ sudo adduser webmaster
Систем танаас нууц үг тохируулж, бусад өгөгдлийг оруулахыг хүсэх болно.
Өөрийн вэбсайттай лавлах эзэмшигчийг өөрчлөх:
$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html
Одоо шинэ хэрэглэгч SSH терминал биш зөвхөн SFTP руу хандах боломжтой байхаар SSH тохиргоог өөрчилье:
$ sudo nano /etc/ssh/sshd_config
Тохиргооны файлын төгсгөлд гүйлгээд дараах блокыг нэмнэ үү.
Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Файлыг хадгалаад үйлчилгээг дахин эхлүүлнэ үү:
$ sudo systemctl restart sshd
Одоо та ямар ч SFTP клиентээр, жишээлбэл FileZilla-ээр дамжуулан серверт холбогдох боломжтой.
Үр дүн
- Теперь вы знаете, как создавать новые каталоги и настраивать виртуальные хосты для ваших веб-сайтов в рамках одного сервера.
- Та шаардлагатай SSL сертификатуудыг хялбархан үүсгэж болно - энэ нь үнэ төлбөргүй бөгөөд автоматаар шинэчлэгдэх болно.
- Та сайн мэддэг phpMyAdmin-ээр дамжуулан MySQL мэдээллийн сантай хялбархан ажиллах боломжтой.
- Шинэ SFTP данс үүсгэх, нэвтрэх эрхийг тохируулах нь их хүчин чармайлт шаарддаггүй. Ийм дансыг гуравдагч этгээдийн вэб хөгжүүлэгчид болон сайтын админуудад шилжүүлж болно.
- Системийг үе үе шинэчлэхээ бүү мартаарай, мөн бид нөөцлөлт хийхийг зөвлөж байна - MCS дээр та нэг товшилтоор бүхэл системийн "агшин зуурын" зургийг авч, шаардлагатай бол бүхэл бүтэн зургийг ажиллуулж болно.
Ашигтай байж болох ашигласан нөөцүүд:
Дашрамд хэлэхэд,
Эх сурвалж: www.habr.com