Cloud ji bo Xêrxwazan: Rêberê Koçberiyê

Cloud ji bo Xêrxwazan: Rêberê Koçberiyê

Demek berê, Mail.Ru Cloud Solutions (MCS) û karûbarê Dobro Mail.Ru projeya "Cloud ji bo xêrxwazan”, bi saya ku rêxistinên ne-qezenc dikarin çavkaniyên platforma cloudê ya MCS belaş bistînin. Weqfa Xêrxwazî"Arîtmetîka qenciyê» beşdarî projeyê bû û beşek ji binesaziya xwe ya li ser bingeha MCS-ê bi serfirazî bicîh kir.

Piştî derbasbûna pejirandinê, NPO dikare kapasîteya virtual ji MCS-ê werbigire, lê veavakirina bêtir hin jêhatîbûnê hewce dike. Di vê materyalê de, em dixwazin rêwerzên taybetî ji bo sazkirina serverek-based Ubuntu Linux-ê parve bikin da ku malpera bingehîn a bingehîn û hejmarek subdomain bi karanîna sertîfîkayên SSL-ya belaş bimeşîne. Ji bo gelekan, ev ê bibe rêberek hêsan, lê em hêvî dikin ku ezmûna me dê ji bo rêxistinên din ên ne-qezencê kêrhatî be, û ne tenê.

FYI: Hûn dikarin ji MCS çi bistînin? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB hilanîna tiştan.

Gav 1: servera virtual dest pê bike

Ka em rasterast werin ser xalê û di hesabê weya kesane ya MCS de servera xweya virtual (aka "nimûne") biafirînin. Di firotgeha sepanê de, hûn hewce ne ku stûnek LAMP-a amadekirî hilbijêrin û saz bikin, ku komek nermalava serverê ye (LAMP = Linux, Apache, MySQL, PHP) ku ji bo xebitandina pir malperan hewce ye.

Cloud ji bo Xêrxwazan: Rêberê Koçberiyê
Cloud ji bo Xêrxwazan: Rêberê Koçberiyê
Cloud ji bo Xêrxwazan: Rêberê Koçberiyê
Veavakirina serverê ya guncan hilbijêrin û mifteyek SSH-ya nû biafirînin. Piştî ku li ser bişkojka "Sazkirin" bikirtînin, dê sazkirina server û stoka LAMP dest pê bike, ev ê hin dem bigire. Pergal dê di heman demê de pêşkêşî dakêşana mifteyek taybet a komputera xwe bike da ku makîneya virtual bi riya konsolê ve rêve bibe, wê hilîne.

Piştî sazkirina serîlêdanê, em tavilê dîwarê dîwarê saz bikin, ev jî di hesabê weya kesane de tê kirin: biçin beşa "Cloud Computing -> Makîneyên Virtual" û "Setting of firewall" hilbijêrin:

Cloud ji bo Xêrxwazan: Rêberê Koçberiyê
Hûn hewce ne ku ji bo seyrûsefera hatina bi porta 80 û 9997 destûr zêde bikin. Ev di pêşerojê de hewce ye ku sertîfîkayên SSL saz bikin û bi phpMyAdmin re bixebitin. Wekî encamek, rêza qaîdeyan divê bi vî rengî xuya bike:

Cloud ji bo Xêrxwazan: Rêberê Koçberiyê
Naha hûn dikarin bi riya rêzika fermanê bi karanîna protokola SSH ve bi servera xwe ve girêdin. Ji bo vê yekê, emrê jêrîn binivîsin, bişkoka SSH ya li ser komputera xwe û navnîşana IP-ya derveyî ya servera xwe destnîşan bikin (hûn dikarin wê di beşa "Makîneyên Virtual" de bibînin):

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

Dema ku yekem car bi serverê ve tê girêdan, tê pêşniyar kirin ku hemî nûvekirinên heyî li ser wê saz bikin û wê ji nû ve bidin destpêkirin. Ji bo vê yekê, emrên jêrîn bicîh bikin:

$ sudo apt-get update

Pergal dê navnîşek nûvekirinan bistîne, wan bi karanîna vê fermanê saz bike û rêwerzan bişopîne:

$ sudo apt-get upgrade

Piştî sazkirina nûvekirinan, serverê ji nû ve bidin destpêkirin:

$ sudo reboot

Gav 2: Mêvanên virtual saz bikin

Gelek neqezenc hewce ne ku di heman demê de gelek doman an subdomain biparêzin (mînak, malperek sereke û çend rûpelên zevî ji bo kampanyayên danasînê, hwd.). Hemî ev dikarin bi hêsanî li ser yek serverek bi afirandina çend mêvandarên virtual ve werin danîn.

Pêşî divê em ji bo malperên ku dê ji mêvanan re werin xuyang kirin avahiyek pelrêça biafirînin. Ka em hin pelrêçan biafirînin:

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

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

Û xwediyê bikarhênerê heyî diyar bike:

$ 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

Têgûherr $USER Navê bikarhênerê ku tu niha têkevî di bin de heye (ji hêla xwerû ev bikarhêner e ubuntu). Naha bikarhênerê heyî xwediyê pelrêça public_html e ku em ê naverokê lê hilînin.

Di heman demê de pêdivî ye ku em destûran hinekî biguhezînin da ku pê ewle bin ku gihîştina xwendinê ji pelrêça tevna hevpar û hemî pel û peldankên ku tê de hene destûr e. Ji bo ku rûpelên malperê rast werin xuyang kirin ev hewce ye:

$ sudo chmod -R 755 /var/www

Pêdivî ye ku servera weya webê nuha destûrnameyên ku jê re hewce dike hebe ku naverokê nîşan bide. Digel vê yekê, bikarhênerê we nuha xwedan şiyana afirandina naverokê di pelrêçên pêwîst de ye.

Jixwe pelek index.php di pelrêça /var/www/html de heye, em wê li pelrêçiyên xwe yên nû kopî bikin - ev ê heya niha naveroka me be:

$ 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

Naha hûn hewce ne ku pê ewle bin ku bikarhêner dikare bigihîje malpera we. Ji bo vê yekê, em ê pêşî pelên mêvandarê virtual mîheng bikin, ku diyar dike ka dê servera webê ya Apache çawa bersivê bide daxwazên domên cihêreng.

Ji hêla xwerû, Apache pelê mêvandarek virtual 000-default.conf heye ku em dikarin wekî xala destpêkê bikar bînin. Em ê vê kopî bikin da ku ji bo her domainê pelên mêvandarê virtual biafirînin. Em ê bi yek domainê dest pê bikin, wê mîheng bikin, wê li domainek din kopî bikin, û dûv re dîsa guherandinên pêwîst bikin.

Veavakirina xwerû ya Ubuntu hewce dike ku her pelê mêvandarê virtual xwedan pêvekek *.conf be.

Ka em bi kopîkirina pelê ji bo domaina yekem dest pê bikin:

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

Di edîtorek bi mafên root de pelek nû vekin:

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

Daneyên wekî jêrîn biguherînin, porta 80-ê, daneyên xwe ji bo diyar bikin ServerAdmin, ServerName, ServerAlias, û her weha riya pelrêça root ya malpera xwe, pelê hilînin (Ctrl+X, paşê 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 domaina bingehîn destnîşan dike, ku divê bi navê mêvandarê virtual re têkildar be. Divê ev navê domaina we be. Duyem, ServerAlias, navên din diyar dike ku divê wekî ku ew qada bingehîn be were şîrove kirin. Ev ji bo karanîna navên domainê yên din rehet e, mînakî karanîna www.

Ka em vê mîhengê ji bo mêvandarek din kopî bikin û bi heman rengî jî biguherînin:

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

Hûn dikarin ji bo malperên xwe wekî ku hûn dixwazin gelek pelrêçan û mêvandarên virtual biafirînin! Naha ku me pelên mêvandarê xweya virtual afirandine, pêdivî ye ku em wan çalak bikin. Em dikarin karûbar a2ensite bikar bînin da ku her yek ji malperên xwe bi vî rengî çalak bikin:

$ sudo a2ensite a-dobra.ru.conf

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

Ji hêla xwerû, porta 80-ê di LAMP-ê de girtî ye, û em ê paşê jê re hewce bikin ku belgeyek SSL saz bikin. Ji ber vê yekê em tavilê pelê ports.conf biguherînin û dûv re Apache ji nû ve bidin destpêkirin:

$ sudo nano /etc/apache2/ports.conf

Rêzek nû lê zêde bikin û pelê hilînin da ku wusa xuya bike:

Listen 80
Listen 443
Listen 9997

Piştî qedandina mîhengan, hûn hewce ne ku Apache-yê ji nû ve bidin destpêkirin da ku hemî guhertin bi bandor bibin:

$ sudo systemctl reload apache2

Gav 3: Navên domainê saz bikin

Dûv re, hûn hewce ne ku tomarên DNS-ê yên ku dê servera weya nû destnîşan bikin lê zêde bikin. Ji bo birêvebirina domanan, Weqfa meya Arithmetic of Good karûbarê dns-master.ru bikar tîne, em ê bi mînakek nîşan bidin.

Sazkirina tomarek A-yê ji bo domana sereke bi gelemperî wekî jêrîn tê destnîşan kirin (nîşan @):

Cloud ji bo Xêrxwazan: Rêberê Koçberiyê
Tomara A ji bo subdomainan bi gelemperî bi vî rengî tête diyar kirin:

Cloud ji bo Xêrxwazan: Rêberê Koçberiyê
Navnîşana IP-ê navnîşana servera Linux-ê ye ku me nû çêkiriye. Hûn dikarin TTL = 3600 diyar bikin.

Piştî demekê, dê gengaz be ku hûn biçin malpera xwe, lê heya niha tenê bi riya http://. Di gava pêş de em ê piştgirî zêde bikin https://.

Gav 4: Sertîfîkayên SSL-ya belaş saz bikin

Hûn dikarin ji bo malpera xweya sereke û hemî subdomain sertîfîkayên Let's Encrypt SSL belaş bistînin. Her weha hûn dikarin nûvekirina wana otomatîkî mîheng bikin, ku pir hêsan e. Ji bo bidestxistina sertîfîkayên SSL, Certbot li ser servera xwe saz bikin:

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

Ji bo karanîna Apache pakêta Certbot saz bikin apt:

$ sudo apt install python-certbot-apache 

Naha Certbot amade ye ku bikar bîne, fermanê bişopîne:

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

Ev ferman certbot, bişkojkan dimeşîne -d navên domainên ku divê sertîfîka ji bo wan bê dayîn diyar bikin.

Ger ev yekem car e ku hûn certbot dest pê dikin, dê ji we were xwestin ku hûn navnîşana e-nameya xwe binivîsin û şertên karanîna karûbarê bipejirînin. Dê certbot dûv re têkilî servera Let's Encrypt bike û dûv re verast bike ku hûn bi rastî domaina ku we ji bo sertîfîkayê daxwaz kiriye kontrol dike.

Ger her tişt baş bû, certbot dê bipirse ka hûn çawa dixwazin veavakirina HTTPS-ê mîheng bikin:

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

Em pêşniyar dikin ku vebijarka 2 hilbijêrin û ENTER bitikînin. Veavakirin dê were nûve kirin û Apache dê ji nû ve were destpêkirin da ku guhartinan bicîh bîne.

Sertîfîkayên we nuha têne dakêşandin, saz kirin û dixebitin. Biceribînin ku malpera xwe bi https://-ê ji nû ve bar bikin û hûn ê îkona ewlehiyê di geroka xwe de bibînin. Ger hûn servera xwe ceribandin Testa Pêşkêşkara SSL Labs, ew ê pileya A bistîne.

Werin em sertîfîkayên Şîfrekirinê tenê 90 rojan derbasdar in, lê pakêta certbot ku me nû saz kir dê sertîfîkayan bixweber nû bike. Ji bo ceribandina pêvajoya nûvekirinê, em dikarin certbotek hişk bikin:

$ sudo certbot renew --dry-run 

Heke hûn di encama xebitandina vê fermanê de xeletiyek nabînin, wê hingê her tişt dixebite!

Gav 5: Bigihînin MySQL û phpMyAdmin

Gelek malper databases bikar tînin. Amûra phpMyAdmin ji bo rêveberiya databasê jixwe li ser servera me hatî saz kirin. Ji bo ku hûn bigihîjin wê, biçin geroka xwe bi karanîna girêdanek mîna:

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

Şîfreya ji bo gihîştina root dikare di hesabê weya kesane ya MCS de were wergirtin (https://mcs.mail.ru/app/services/marketplace/apps/). Ji bîr nekin ku gava yekem têketinê şîfreya xweya root biguherînin!

Gav 6: Barkirina pelê bi SFTP ve saz bikin

Pêşdebir dê hêsan bibînin ku pelan ji bo malpera xwe bi SFTP-ê barkirin. Ji bo vê yekê, em ê bikarhênerek nû biafirînin, jê re dibêjin webmaster:

$ sudo adduser webmaster

Pergal dê ji we bixwaze ku şîfreyek saz bikin û hin daneyên din têkevin.

Guhertina xwediyê pelrêça bi malpera xwe:

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

Naha em konfigurasyona SSH biguhezînin da ku bikarhênerê nû tenê bigihîje SFTP û ne termînala SSH:

$ sudo nano /etc/ssh/sshd_config

Li dawiya pelê veavakirinê bigerin û bloka jêrîn lê zêde bikin:

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

Pelê hilînin û karûbarê ji nû ve bidin destpêkirin:

$ sudo systemctl restart sshd

Naha hûn dikarin bi navgîniya her xerîdarek SFTP ve, mînakî, bi navgîniya FileZilla, bi serverê ve girêdin.

Encam

  1. Naha hûn dizanin ka meriv çawa pelrêçikên nû biafirîne û ji bo malperên xwe di nav heman serverê de mêvandarên virtual mîheng bike.
  2. Hûn dikarin bi hêsanî sertîfîkayên SSL yên pêwîst biafirînin - ew belaş e, û ew ê bixweber werin nûve kirin.
  3. Hûn dikarin bi navgîniya phpMyAdmin-a naskirî bi databasa MySQL re bi hêsanî bixebitin.
  4. Afirandina hesabên nû yên SFTP û sazkirina mafên gihîştinê zêde hewildan hewce nake. Hesabên weha dikarin ji pêşdebirên malperê yên sêyemîn û rêvebirên malperê re werin veguheztin.
  5. Ji bîr nekin ku pergalê bi periyodîk nûve bikin, û em her weha pêşniyar dikin ku paşvekêşan çêbikin - di MCS de hûn dikarin bi yek klîk "wêneyên" tevahî pergalê bigirin, û dûv re, ger hewce be, tevahî wêneyan bidin destpêkirin.

Çavkaniyên bikar anîn ku dibe ku kêrhatî be:

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

Bi awayê vir Hûn dikarin li ser VC bixwînin ka bingeha me çawa platformek ji bo perwerdehiya serhêl ji bo sêwîyan li ser bingeha ewrê MCS-ê saz kir.

Source: www.habr.com

Add a comment