Kuv xav qhia qee qhov kev xav txog qhov tsim nyog lossis tsis tsim nyog ntawm lub vaj huam sib luag tswj hwm rau ib qho project web ib leeg nrog tus thawj coj ua haujlwm ib nrab hnub. Zaj dab neeg pib ob peb xyoos dhau los, thaum qee tus phooj ywg ntawm cov phooj ywg thov kom kuv saib xyuas kev yuav khoom ntawm ib lub lag luam - lub vev xaib xov xwm - los ntawm qhov kev xav txog kev siv tshuab. Kuv xav tau kev nkag siab yooj yim txog dab tsi tab tom khiav ntawm dab tsi, xyuas kom meej tias tag nrho cov ntsiab lus tsim nyog tau xa mus rau hauv hom ntawv thiab qhov ntau thiab tsawg, thiab soj ntsuam qhov zoo uas yuav tsum tau txhim kho.
Daim ntawv cog lus tau ua tiav lawm, tus neeg ntaus violin tsis xav tau lawm. Qhov kawg. Tsis yog tiag tiag.
Lub xaib tau khiav ntawm dual-core 4GB VM ntawm Linode, ntawm qee qhov mossy Debian5 nrog 400 hnub ntawm lub sijhawm ua haujlwm thiab cov npe ntev ntawm cov pob khoom tsis tau hloov kho. Lub vev xaib yog nyob rau ntawm CMS kev cai, nginx, PHP 5.3 FPM, thiab Percona MySQL uas tau kho. Nws yeej ua haujlwm tau zoo.
Thaum kuv tham nrog kuv, tus tswv tshiab tab tom nrhiav ib tus programmer los ua kom qhov project no ua tau raws li qhov xav tau. Nws pom ib tug. Tus programmer tau soj ntsuam qhov traffic thiab volume thiab txiav txim siab tias nws muaj peev xwm ua kom zoo dua thiab tswj tus nqi. Nws tau tsiv tag nrho lub xaib mus rau 700-ruble shared hosting service uas nws tus IS****er ib txwm tswj hwm. Ob peb hnub tom qab, tus tswv rov qab hu dua: "Txhua yam qeeb thiab zoo li peb tau tawg lawm." Kuv tau sim kho qhov teeb meem los ntawm lub control panel, tab sis tom qab qee qhov kev sim hloov PHP version lossis tus handler los ntawm fcgi mus rau fpm, kuv tau tso tseg thiab mus rau hauv lub plhaub. Nyob ntawd, kuv pom debugging enabled, uas qhia txog password rau tag nrho internet, 777 rau qee cov folders, uas los ntawm lub sijhawm ntawd tau tawg nrog malware, thiab cov lus tsis muaj tseeb zoo sib xws. Tus tswv paub thiab txiav txim siab tias kev tsis quav ntsej txog hosting, tus programmer, thiab tus admin uas yuav saib xyuas seb tej yam mus li cas yog qhov tsis ncaj ncees lawm.
Peb tab tom tsiv mus rau RuVDS. Nws nyob ze dua li UK's Linode, thiab yog tias peb xav khaws cov ntaub ntawv tus kheej thiab txhua yam ntawd, peb yuav tsis tas tsiv mus rau lwm qhov. Txij li thaum qhov project tau npaj rau kev nthuav dav, peb tau txais VM "rau kev loj hlob": 4 cores, 8 GB ntawm lub cim xeeb, 80 GB ntawm qhov chaw disk. Nws tsis yog tias kuv tsis paub yuav ua li cas kho qhov teeb tsa nginx los ntawm tes, kuv tsuas yog tsis muaj kev txaus siab los ua haujlwm ntawm qhov project no zoo heev (saib saum toj no txog part-time). Yog li, kuv tau teeb tsa Plesk (Kuv yuav hla cov ntsiab lus teeb tsa ntawm no, vim tias tsis muaj tiag tiag: khiav lub installer, teeb tsa tus password rau tus admin, nkag mus rau tus yuam sij, thiab qhov ntawd yog nws). Lub sijhawm ntawd, nws yog 17.0. Cov chaw teeb tsa yooj yim ua haujlwm tau zoo tawm ntawm lub thawv; nws muaj fail2ban thiab cov versions tshiab tshaj plaws ntawm PHP thiab nginx.
Tej zaum kuv yuav tsum nres ib pliag thiab piav qhia yog vim li cas. Vim tias kuv tsis tshua ua hom haujlwm no thiab tsis muaj cov cuab yeej tshwj xeeb lossis cov teeb tsa ua ntej rau txhua qhov xwm txheej, nws pom tseeb tias qee qhov kev ua haujlwm yooj yim yog qhov xav tau, thawj zaug, kom ua kom nws ceev, qhov thib ob, muaj kev nyab xeeb, thiab qhov thib peb, kom ntseeg tau tias txhua qhov kev coj ua zoo tshaj plaws tau raug siv lawm.
Yog li, kuv tau teeb tsa nws. Kuv tau txuag lub sijhawm ntau, thiab lub xaib tau rov pib dua ntawm lub server tshiab yuav luag tam sim ntawd. Txhua yam uas tseem tshuav yog kho qhov kev teeb tsa ntawm cov leeg, faib ib nrab ntawm lub cim xeeb thiab nce tus naj npawb ntawm cov pas dej buffer, thiab muab ib nrab ntawm cov cores rau nginx (Splash tsis kov cov kev teeb tsa thoob ntiaj teb), thiab tom qab ntawd nkag mus rau hauv lub plhaub rau ob peb hnub kom saib mysqltuner stats. Auj, thiab kuv tau yuav ImunifyAV them los ntawm daim ntawv teev npe txuas ntxiv kom tshem tawm cov malware uas tau txhaj tshuaj. Lawv pom txog 11000 cov ntaub ntawv kis kab mob. Qhov phem yog tias cov chunks ntawm cov lej tsis meej pem tau txhaj tshuaj rau hauv cov ntaub ntawv static, thiab kev ntxuav lawv manually yuav yog qhov mob tiag tiag. Kuv sim ClamAV ua ntej, tab sis nws tig tawm tias nws tsis tuaj yeem ua cov khoom zoo li no, thaum ImunifyAV tau ua. Ntxiv mus, cov ntaub ntawv ntxuav tseem ua haujlwm; cov chunk uas muaj malware tsuas yog raug tshem tawm.
Kev suav lej yooj yim heev: $50 ib hlis rau VMware, $10 rau Plesk (qhov tseeb tsawg dua, vim peb yuav ib xyoos puv nrog ob lub hlis luv nqi), thiab $3 rau antivirus. Los yog ntau nyiaj rau lub sijhawm kuv yuav tau siv rau ntawm lub server thaum xub thawj, ntxuav cov teeb meem no tes. Tus tswv zoo siab heev nrog qhov kev npaj no.

Lub sijhawm ntawd, peb tau nrhiav tau ib tus programmer tshiab. Peb tau pom zoo rau kev faib cov luag haujlwm, tsim ib lub subdomain rau qhov version sim, thiab tau pib ua haujlwm. Nws tab tom tsim ib lub version tshiab ntawm lub xaib hauv Laravel, thiab kuv tau saib xyuas fail2ban.

Txaus siab kawg li, cov neeg xav paub ntau tus yeej tsis muaj hnub kawg li, thiab daim ntawv teev npe uas raug txwv tsis pub siv yeej muaj li ib puas qhov chaw nyob. Qhov cuam tshuam yog qhov nthuav: tshwj xeeb, thaum kuv feem ntau nkag mus rau hauv lub plhaub, lub vijtsam txais tos feem ntau qhia txog 20000-30000 qhov kev sim nkag mus rau hauv SSH tsis ua tiav. Nrog fail2ban qhib, nws yog li 70. Kev siv zog nqis peev: 0. Hmoov tsis zoo, muaj me ntsis ntawm qhov ntes. Los ntawm lub neej ntawd, WAF (modsecurity) yog "semi-enabled": hauv hom kev tshawb nrhiav. Ntawd yog, nws tau kaw cov haujlwm txawv txawv hauv cov cav tab sis tsis tau ua dab tsi tiag tiag. Thiab fail2ban nyeem tag nrho cov cav tsis xaiv, raws li cov tsev kaw neeg qhib, thiab so tawm txhua yam uas tsiv mus. Yog li, peb txwv ib nrab ntawm cov neeg ua haujlwm kho xov xwm :D. Peb yuav tsum kaw lub tsev kaw neeg no thiab sau cov chaw nyob IP uas xav tau rau kev ntseeg siab. Kev siv zog nqis peev yog ob peb qhov nias nas thiab cob qhia cov neeg kho kom muab lawv cov chaw nyob IP.

Qhov uas tus programmer nyiam tam sim ntawd yog lub peev xwm los upload cov database ncaj qha mus rau lub vaj huam sib luag thiab nkag mus rau phpMyAdmin sai.

Qhov kuv nyiam yog cov cav thiab cov thaub qab. Cov cav raug sau thiab tig tau los ntawm lub thawv; cov thaub qab yooj yim heev rau teeb tsa. Thaum lub sijhawm qeeb tshaj plaws, ib qho thaub qab tag nrho ntawm kwv yees li 10 GB raug tsim, thiab tom qab ntawd ib qho thaub qab ntxiv ntawm 200 MB raug tsim txhua hnub rau ib lub lim tiam. Kev kho dua tshiab yog granular, mus rau ib daim ntawv lossis database tshwj xeeb. Yog tias koj xav tau rov qab los ntawm kev thaub qab ntxiv, koj tsis tas yuav txhawj txog kev thaub qab tag nrho thiab tom qab ntawd rov qab tag nrho cov saw hlau - Plesk ua nws tag nrho. Koj tuaj yeem upload cov thaub qab nyob txhua qhov chaw: rau FTP, Dropbox, S3 Bucket, Google Drive, thiab lwm yam.

Hnub G: Tus programmer thaum kawg ua tiav lub cav tshiab, peb tau thauj nws mus rau hauv kev tsim khoom, xa cov ntaub ntawv qub, thiab zaum xaiv xim ntawm peb lub Maseratis yav tom ntej. Peb tseem tab tom xaiv.
Cov teeb meem thawj zaug pib. Lub xaib tshiab hnyav dua li qhov qub, tab sis qhov teeb meem tiag tiag yog tias lawv siv Yandex.Zen, ntawm lwm yam, los tsav tsheb, uas tau tsav cov neeg tuaj saib ntau heev. Lub xaib poob qis hauv qab 150 qhov kev sib txuas tib lub sijhawm (Kuv tsis tham txog RPS, vim peb tsis tau ntsuas nws). Lawv pib thawb cov nyees khawm thiab kho cov nyees khawm hauv thaj chaw teeb tsa php_fpm:

Oops, nws twb tuav 500 qhov kev sib txuas. Thaum kuv siv kuv daim npav rho nyiaj rau cov cuab yeej tshaj tawm, cov nthwv dej tsheb loj hlob tuaj. Lub hom phiaj tom ntej yog 1000 qhov kev sib txuas tib lub sijhawm. Ntawm no, kuv yuav tsum tau kho dua cov lej thiab tshuaj xyuas cov leeg. Splash tsis tau pab, tab sis qhov ntawd tsis yog qhov kuv xav tau. Kuv tau qhib cov ntawv teev lus nug qeeb, ntxiv cov ntsuas rau hauv lub ntaub ntawv, tshem tawm cov lus nug tsis tsim nyog ntawm cov lej, thiab kho qhov MySQL teeb tsa dua raws li mysqltuner cov lus qhia.
Kev sib tw tshiab - 2000 kev sib txuas. Plesk 17.8 nyuam qhuav tso tawm, uas, ntawm lwm yam, ntxiv nginx caching. Peb hloov kho (yooj yim xav tsis thoob). Peb sim nws. Nws ua haujlwm! Thiab tom qab ntawd peb ntaus ib qho snag: Yandex.Zen pub tsis ua haujlwm. Lub xaib ua haujlwm, tab sis pub tsis ua haujlwm. Pub tsis ua haujlwm, tsis muaj tsheb khiav. Huab cua kub hnyiab. Nyob rau hauv kev nyuaj siab los ntawm qhov xwm txheej thiab tsis muaj kev xav, kuv tam sim ntawd sim strace nginx thiab pom qhov kuv tab tom nrhiav. Nws hloov tawm tias thaum qee lub sijhawm, nginx ruam cached ib qho yuam kev 500 stray ua lus teb rau Yandex's get feed.xml. Peb kho nws los ntawm kev ntxiv kev zam rau cov chaw cache:

Nws pom tseeb tias tus tswv xav tau NTAU dua, thiab cov nthwv dej maj mam nce ntxiv. Peb tab tom tswj hwm tam sim no, tab sis peb pib sim nrog memcached thaum ntxov, vim Laravel txhawb nqa nws yuav luag tawm ntawm lub thawv. Peb tsis xav nruab memcached manually tsuas yog ua si ib puag ncig, yog li peb tau nruab ib daim duab Docker. Txoj cai los ntawm lub dashboard.

Okay, kuv dag, kuv yuav tsum mus rau hauv lub plhaub thiab nruab lub module ntawm pecl. Yog lawm. Tseem tsis tau muaj dab tsi los tshaj tawm txog kev nce qib ntawm cov ntaub ntawv; tseem tsis tau muaj qhov nce siab tseem ceeb. Lub cav xaib txuas nrog localhost: 11211, cov ntaub ntawv qhia tau tias, tab sis lub cim xeeb raug siv ntau dhau. Yog tias peb nyiam nws, peb yuav pom tias yuav ua li cas tom ntej. Peb yuav tso nws li qub, lossis nruab qhov "tiag tiag" ncaj qha rau hauv OS. Lossis peb yuav sim Redis tib yam.
Tom qab ntawd kuv yuav tsum teeb tsa tsab ntawv xov xwm email. Tsis muaj relays, tsuas yog SMTP authentication xwb. Kuv tau tsim ib qho chaw nyob email, thiab peb siv nws cov ntaub ntawv los xa tsab ntawv xov xwm ntawm PHP.

Plesk Obsidian (18.0) nyuam qhuav tso tawm, thiab peb tau hloov kho tshiab yam tsis muaj kev ntshai, raws li kev paub dhau los. Txhua yam mus zoo heev, tsis muaj dab tsi los tshaj tawm. Ntawm qhov zoo, lub interface tau raug txhim kho zoo heev, niaj hnub, thiab tam sim no siv tau yooj yim dua hauv qee qhov chaw. Kev Saib Xyuas Qib Siab ntawm Grafana yog ib qho feature zoo heev.

Kuv tseem tsis tau tshawb nrhiav nws kom meej, tab sis koj tuaj yeem, piv txwv li, teeb tsa email ceeb toom rau txhua qhov parameter. Rau tus tswv, lol.
Hais txog lub interface, nws teb tau sai thiab ua haujlwm tau zoo heev ntawm lub xov tooj. Thaum pib, thaum peb tab tom nrhiav qhov chaw teeb tsa PHP zoo tshaj plaws thiab lwm yam, qhov no tau pab tau zoo heev. Tshwj xeeb tshaj yog thaum tus programmer, uas mob siab rau ua haujlwm, tab tom ua haujlwm rau qee yam thaum 23 teev tsaus ntuj, thiab kuv mob siab rau ua haujlwm, haus vodka hauv chav sauna, thiab kuv xav tau hloov qee yam sai sai.

Auj, los ntawm txoj kev. Koj tuaj yeem pom los ntawm daim duab tias PHP Composer tau tshwm sim. Peb tsis tau ua si nrog nws tseem, tab sis piv txwv li, rau Laravel, nws tuaj yeem txuag tau ob peb lub plhaub nkag mus thiab qee lub sijhawm teeb tsa dependencies. Muaj ib lub kaw lus zoo sib xws rau Node.JS thiab Ruby.
SSL yooj yim heev. Yog tias lub domain daws tau raws li qhov xav tau, Let's Encrypt raug teeb tsa nrog ib qho nias thiab hloov kho rau lub domain nws tus kheej, subdomains, thiab txawm tias cov kev pabcuam email.

Plesk nws tus kheej tam sim no yooj yim siv thiab ruaj khov. Nws hloov kho nws tus kheej thiab OS ntsiag to, siv cov peev txheej me me, thiab khiav tau zoo. Kuv tsis nco qab txog tej teeb meem uas yuav suav tias yog qhov tsis zoo hauv cov khoom. Muaj qee qhov teeb meem, tau kawg, tab sis lawv yog vim tsis zoo lossis teeb meem qhov twg ntawm txoj kev, yog li tsis muaj dab tsi los nrhiav qhov txhaum. Zuag qhia tag nrho, kuv qhov kev paub nrog Plesk tau zoo siab. Qhov nws tsis muaj, thiab nws tseem ceeb kom nkag siab, yog txhua yam kev sib sau ua ke. Tsis muaj LB, tsis muaj HA. Koj tuaj yeem sim, tab sis kev siv zog koom nrog yuav zoo heev uas nws zoo dua los ua qee yam txawv ntawm qhov pib.
Kuv xav tias peb muaj peev xwm sau luv luv. Rau qhov xwm txheej uas tsis muaj tus thawj coj, lossis tsuas yog ob peb tug xwb, thaum tus nqi ntawm kev tuav thiab lub vev xaib (cov) khiav ntawm nws tshaj, piv txwv li, $ 100, thaum peb tsis tham txog lub server loj heev nrog 1500 lub xaib, thaum tus neeg txiav txim siab ntsib nrog kev xaiv ntawm kev ntiav tus thawj coj ib nrab sijhawm, yuav software thiab ntiav tus thawj coj "ib nrab sijhawm", lossis tsis ntiav ib tus li - nws yeej ua rau muaj kev nkag siab. Los ntawm qhov kev xav ntawm tus thawj coj nyob deb, nws zoo ib yam. $ 10 ib hlis txuag lub sijhawm thiab ntxiv kev ywj pheej rau kev ua haujlwm ntawm qhov ntsuas loj heev.оIb qho nyiaj ntau dua. Piv txwv li, yog tias kuv raug hais kom ua ib qho project zoo sib xws hauv kuv tis, kuv yuav hais kom tsiv mus rau Plesk.
Tau qhov twg los: www.hab.com
