Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị

Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị

N'oge na-adịbeghị anya, Mail.Ru Cloud Solutions (MCS) na ọrụ Dobro Mail.Ru malitere ọrụ ahụ "Igwe ojii maka ndị ọrụ ebere”, ekele nke ndị otu na-anaghị akwụ ụgwọ nwere ike nweta akụrụngwa nke igwe ojii igwe ojii MCS n'efu. Ụlọ ọrụ ebere"Arthmetic nke ịdị mma» sonyere na oru ngo a wee bufee akụkụ nke akụrụngwa ya dabere na MCS.

Mgbe agafechara nkwado, NPO nwere ike ịnweta ikike mebere n'aka MCS, mana nhazi ọzọ chọrọ ntozu ụfọdụ. N'ime ihe a, anyị chọrọ ịkesa ntuziaka akọwapụtara maka ịtọlite ​​​​ihe nkesa dabere na Ubuntu Linux ka ọ na-agba ọsọ webụsaịtị ntọala yana ọtụtụ subdomains site na iji asambodo SSL efu. Maka ọtụtụ ndị, nke a ga-abụ nduzi dị mfe, ma anyị nwere olileanya na ahụmahụ anyị ga-aba uru maka òtù ndị ọzọ na-abaghị uru, ọ bụghị naanị.

FYI: Kedu ihe ị ga-enweta n'aka MCS? 4 CPUs, 32 GB Ram, 1 TB HDD, Ubuntu Linux OS, nchekwa ihe 500 GB.

Nzọụkwụ 1: ẹkedori mebere nkesa

Ka anyị rute n'isi okwu wee mepụta nkesa mebere anyị (aka "ihe atụ") na akaụntụ nkeonwe gị MCS. N'ime ụlọ ahịa ngwa, ịkwesịrị ịhọrọ ma wụnye ngwugwu LAMP dị njikere, nke bụ ngwa ngwa nkesa (LAMP = Linux, Apache, MySQL, PHP) dị mkpa iji mee ọtụtụ weebụsaịtị.

Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị
Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị
Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị
Họrọ nhazi nkesa kwesịrị ekwesị wee mepụta igodo SSH ọhụrụ. Mgbe ịpịrị bọtịnụ "Wụnye", ntinye nke ihe nkesa na nchịkọta LAMP ga-amalite, nke a ga-ewe oge. Usoro ahụ ga-enyekwa nbudata igodo nzuzo na kọmputa gị iji jikwaa igwe mebere site na njikwa, chekwaa ya.

Mgbe ị wụnyechara ngwa ahụ, ka anyị guzobe firewall ozugbo, a na-eme nke a na akaụntụ nkeonwe gị: gaa na ngalaba "Cloud Computing -> Virtual Machines" wee họrọ "Ịtọ ntọala firewall":

Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị
Ịkwesịrị ịgbakwunye ikike maka okporo ụzọ na-abata site na ọdụ ụgbọ mmiri 80 na 9997. Nke a dị mkpa n'ọdịnihu iji wụnye asambodo SSL yana iji phpMyAdmin rụọ ọrụ. N'ihi ya, usoro iwu kwesịrị ịdị ka nke a:

Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị
Ugbu a ị nwere ike jikọọ na ihe nkesa gị site na ahịrị iwu site na iji protocol SSH. Iji mee nke a, pịnye iwu na-esonụ, na-atụ aka na igodo SSH dị na kọmputa gị yana adreesị IP nke ihe nkesa gị (ị nwere ike ịhụ ya na ngalaba "Virtual Machines").

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

Mgbe ị na-ejikọta na ihe nkesa na nke mbụ, a na-atụ aro ka ịwụnye mmelite niile dị ugbu a na ya wee malitegharịa ya. Iji mee nke a, mee iwu ndị a:

$ sudo apt-get update

Sistemu ga-enweta ndepụta mmelite, wụnye ha site na iji iwu a wee soro ntuziaka ndị a:

$ sudo apt-get upgrade

Mgbe ị wụnye mmelite ahụ, malitegharịa ihe nkesa:

$ sudo reboot

Kwụpụ 2: Hazie ndị ọbịa nke ọma

Ọtụtụ ndị anaghị akwụ ụgwọ kwesịrị idowe ọtụtụ ngalaba ma ọ bụ subdomains n'otu oge (dịka ọmụmaatụ, ebe nrụọrụ weebụ bụ isi na ọtụtụ ibe ọdịda maka mgbasa ozi nkwado, wdg). Enwere ike idobe ihe niile nke ọma na otu ihe nkesa site na ịmepụta ọtụtụ ndị ọbịa mebere.

Mbụ anyị kwesịrị ịmepụta usoro ndekọ aha maka saịtị ndị a ga-egosi ndị ọbịa. Ka anyị mepụta ụfọdụ akwụkwọ ndekọ aha:

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

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

Ma kọwaa onye nwe onye ọrụ ugbu a:

$ 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

Mgbanwe $USER nwere aha njirimara nke ị na-abanye ugbu a (na ndabara nke a bụ onye ọrụ ubuntu). Ugbu a onye ọrụ ugbu a nwere akwụkwọ ndekọ aha ọha_html ebe anyị ga-echekwa ọdịnaya.

Anyị kwesịkwara idezi ikikere ntakịrị iji jide n'aka na anabatara ohere ịgụ na ndekọ ndekọ weebụ nkekọrịta yana faịlụ na nchekwa niile o nwere. Nke a dị mkpa ka ibe saịtị ahụ gosipụta nke ọma:

$ sudo chmod -R 755 /var/www

Ihe nkesa weebụ gị kwesịrị ịnwe ikike ugbu a iji gosipụta ọdịnaya. Na mgbakwunye, onye ọrụ gị ugbu a nwere ikike imepụta ọdịnaya n'ime akwụkwọ ndekọ aha achọrọ.

Enweela faịlụ index.php na /var/www/html ndekọ, ka anyị detuo ya na akwụkwọ ndekọ aha ọhụrụ anyị - nke a ga-abụ ọdịnaya anyị ugbu a:

$ 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

Ugbu a ịkwesịrị ijide n'aka na onye ọrụ nwere ike ịnweta saịtị gị. Iji mee nke a, anyị ga-ebu ụzọ hazie faịlụ nnabata mebere, nke na-ekpebi ka sava weebụ Apache ga-esi zaghachi arịrịọ na ngalaba dị iche iche.

Site na ndabara, Apache nwere faịlụ nnabata mebere 000-default.conf nke anyị nwere ike iji dị ka mmalite. Anyị ga-eṅomi nke a iji mepụta faịlụ nnabata mebere maka ngalaba anyị nke ọ bụla. Anyị ga-eji otu ngalaba malite, hazie ya, detuo ya na ngalaba ọzọ, wee megharịa ndị dị mkpa ọzọ.

Nhazi ndabara nke Ubuntu chọrọ ka faịlụ ọ bụla mebere ya nwee ndọtị * .conf.

Ka anyị malite site na iṅomi faịlụ maka ngalaba nke mbụ:

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

Mepee faịlụ ọhụrụ na onye ndezi nwere ikike mgbọrọgwụ:

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

Dezie data dị ka ndị a, na-akọwapụta ọdụ ụgbọ mmiri 80, data gị maka ServerAdmin, ServerName, ServerAlias, yana ụzọ gaa na ndekọ mgbọrọgwụ nke saịtị gị, chekwaa faịlụ (Ctrl+X, wee 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 na-esetịpụ ngalaba isi, nke ga-adakọrịrị aha nnabata mebere. Nke a ga-abụrịrị aha ngalaba gị. Nke abụọ, ServerAlias, na-akọwa aha ndị ọzọ ekwesịrị ịkọwa dị ka a ga-asị na ọ bụ ngalaba bụ isi. Nke a dị mma maka iji aha ngalaba ọzọ, dịka ọmụmaatụ iji www.

Ka anyị detuo nhazi a maka onye ọbịa ọzọ ma dezie ya n'otu ụzọ ahụ:

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

Ị nwere ike ịmepụta ọtụtụ akwụkwọ ndekọ aha na ndị ọbịa mebere maka weebụsaịtị gị dịka ịchọrọ! Ugbu a na anyị kere anyị mebere usu faịlụ, anyị kwesịrị ime ka ha. Anyị nwere ike iji ike a2ensite mee ka saịtị anyị ọ bụla nwee ike dị ka nke a:

$ sudo a2ensite a-dobra.ru.conf

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

Site na ndabara, a na-emechi ọdụ ụgbọ mmiri 80 na LAMP, anyị ga-achọkwa ya ma emechaa iji wụnye asambodo SSL. Yabụ ka anyị dezie faịlụ ports.conf ozugbo wee malitegharịa Apache:

$ sudo nano /etc/apache2/ports.conf

Tinye ahịrị ọhụrụ wee chekwaa faịlụ ahụ ka ọ dị ka nke a:

Listen 80
Listen 443
Listen 9997

Mgbe ịmechara ntọala ahụ, ịkwesịrị ịmalitegharịa Apache maka mgbanwe niile iji mee ihe:

$ sudo systemctl reload apache2

Kwụpụ 3: Tọọ aha ngalaba

Ọzọ, ịkwesịrị ịgbakwunye ndekọ DNS nke ga-arụtụ aka na ihe nkesa ọhụrụ gị. Iji jikwaa ngalaba, Arithmetic of Good Foundation anyị na-eji ọrụ dns-master.ru, anyị ga-egosi ya na ihe atụ.

A na-egosipụtakarị ịtọlite ​​ndekọ A maka ngalaba isi dị ka ndị a (akara @):

Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị
A na-akọwakarị ndekọ maka subdomains dị ka nke a:

Igwe ojii maka ndị ọrụ ebere: Ntuziaka Mbugharị
Adreesị IP bụ adreesị nke sava Linux anyị mebere ugbu a. Ị nwere ike ịkọwapụta TTL = 3600.

Mgbe oge ụfọdụ gasịrị, ọ ga-ekwe omume ịga na saịtị gị, mana ugbu a naanị site na http://. Na nzọụkwụ ọzọ, anyị ga-agbakwunye nkwado https://.

Kwụpụ 4: Hazie asambodo SSL efu

Ị nwere ike nweta asambodo Ka anyị ezoro ezo SSL n'efu maka saịtị gị na ngalaba subdomains niile. Ị nwekwara ike hazi ha akpaka ọhụrụ, nke dị nnọọ adaba. Iji nweta asambodo SSL, wụnye Certbot na sava gị:

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

Wụnye ngwugwu Certbot maka Apache site na iji apt:

$ sudo apt install python-certbot-apache 

Ugbu a Certbot dị njikere iji, mee iwu:

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

Iwu a na-agba certbot, igodo -d kọwaa aha ngalaba nke akwụkwọ kwesịrị inye.

Ọ bụrụ na nke a bụ nke mbụ ịmalite certbot, a ga-agwa gị ka itinye adreesị email gị wee kwenye na usoro ojiji nke ọrụ ahụ. certbot ga-akpọtụrụ ihe nkesa Ka anyị Encrypt wee chọpụta na ị na-ejikwa ngalaba nke ị rịọrọ asambodo ahụ.

Ọ bụrụ na ihe niile gara nke ọma, certbot ga-ajụ ka ịchọrọ ịhazi nhazi 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):

Anyị na-akwado ịhọrọ nhọrọ 2 wee pịa ENTER. A ga-emelite nhazi ahụ yana Apache ga-amalitegharị iji tinye mgbanwe ndị ahụ.

ebudatara, arụnyere ma na-arụ ọrụ asambodo gị ugbu a. Gbalịa bugharịa saịtị gị na https:// na ị ga-ahụ akara nchekwa na ihe nchọgharị gị. Ọ bụrụ na ị nwalee ihe nkesa gị Nnwale nkesa SSL Labs, ọ ga-enweta ọkwa A.

Ka anyị Encrypt asambodo dị naanị ụbọchị 90, mana ngwugwu certbot anyị rụnyere ga-emegharị asambodo na-akpaghị aka. Iji nwalee usoro mmelite, anyị nwere ike ime certbot akọrọ:

$ sudo certbot renew --dry-run 

Ọ bụrụ na ịhụghị njehie ọ bụla n'ihi ịgba ọsọ iwu a, ihe niile na-arụ ọrụ!

Kwụpụ 5: Nweta MySQL na phpMyAdmin

Ọtụtụ weebụsaịtị na-eji ọdụ data. Awụnyelarị ngwaọrụ phpMyAdmin maka njikwa nchekwa data na sava anyị. Iji nweta ya, gaa na ihe nchọgharị gị site na iji njikọ dị ka:

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

Enwere ike nweta paswọọdụ maka ịnweta mgbọrọgwụ na akaụntụ nkeonwe nke MCS gị (https://mcs.mail.ru/app/services/marketplace/apps/). Echefula ịgbanwe paswọọdụ mgbọrọgwụ gị oge mbụ ị banyere!

Kwụpụ 6: Hazie bulite faịlụ site na SFTP

Ndị mmepe ga-ahụ na ọ dabara adaba bulite faịlụ maka webụsaịtị gị site na SFTP. Iji mee nke a, anyị ga-emepụta onye ọrụ ọhụrụ, kpọọ ya webmaster:

$ sudo adduser webmaster

Sistemu ga-arịọ gị ka ịtọọ paswọọdụ wee tinye data ọzọ.

Iji webụsaịtị gị na-agbanwe onye nwe ndekọ ahụ:

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

Ugbu a, ka anyị gbanwee nhazi SSH ka onye ọrụ ọhụrụ nwee ike ịnweta SFTP ọ bụghị ọdụ SSH:

$ sudo nano /etc/ssh/sshd_config

Pịgharịa gaa na njedebe nke faịlụ nhazi wee gbakwunye ngọngọ ndị a:

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

Chekwaa faịlụ ma malitegharịa ọrụ:

$ sudo systemctl restart sshd

Ugbu a ị nwere ike jikọọ na ihe nkesa site na onye ahịa SFTP ọ bụla, dịka ọmụmaatụ, site na FileZilla.

Nsonaazụ

  1. Ugbu a, ị maara ka ịmepụta ọhụrụ directories na hazi mebere ụsụụ ndị agha gị na ebe nrụọrụ weebụ n'ime otu ihe nkesa.
  2. Ị nwere ike ịmepụta asambodo SSL dị mkpa - ọ bụ n'efu, a ga-emelite ha na-akpaghị aka.
  3. Ị nwere ike ịrụ ọrụ na MySQL nchekwa data site na phpMyAdmin maara nke ọma.
  4. Ịmepụta akaụntụ SFTP ọhụrụ yana ịmepụta ikike ịnweta anaghị achọ mgbalị dị ukwuu. Enwere ike ịnyefe akaụntụ ndị dị otú ahụ na ndị mmepe webụ ndị ọzọ na ndị nchịkwa saịtị.
  5. Echefula imelite sistemụ ahụ kwa oge, anyị na-akwadokwa ịme nkwado ndabere na mpaghara - na MCS ị nwere ike were otu pịa were were “snapshots” nke sistemu niile, wee wepụta onyonyo niile.

Akụrụngwa ejiri nwere ike ịba uru:

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

Site n'ụzọ, ebe a Ị nwere ike ịgụ na VC ka ntọala anyị si tinye usoro mmụta maka ịntanetị maka ụmụ mgbei dabere na igwe ojii MCS.

isi: www.habr.com

Tinye a comment