DĂ«shiroj tĂ« ndaj disa pĂ«rshtypje mbi nevojĂ«n ose jo tĂ« njĂ« paneli kontrolli pĂ«r njĂ« projekt komercial njĂ«-serverĂ«sh me njĂ« administrator shumĂ« part-time. Historia filloi disa vite mĂ« parĂ«, kur miq tĂ« miqve kĂ«rkuan nga unĂ« tĂ« asistoj nĂ« blerjen e njĂ« biznesi â njĂ« site lajmesh â nga njĂ« kĂ«ndvĂ«shtrim teknik. Duhej tĂ« merja pak informacion se çfarĂ« pĂ«rdorej, tĂ« siguroja qĂ« tĂ« gjitha detajet e nevojshme tĂ« ishin transferuar nĂ« mĂ«nyrĂ«n e duhur dhe nĂ« sasi tĂ« mjaftueshme, dhe tĂ« vlerĂ«soja strategjikisht se çfarĂ« mund tĂ« pĂ«rmirĂ«sohej.
Transaksioni u realizua, violinisti nuk ishte më i nevojshëm. Fundi. Në të vërtetë, jo.
Faqja ishte duke funksionuar në një VM me dy bëjka dhe 4 gigabajt në Linode, në një Debian5 të vjetër me një uptime prej 400 ditësh dhe me një listë të tillë pakashumë të pakove të paazhuara. Pjesa web ishte në një CMS të shkruar me dorë, nginx, php5.3 FPM, mysql e optimizuar përmes Percona. Në parim, funksiononte.
Paralelisht me bisedat me mua, pronari i ri po kĂ«rkonte njĂ« programues pĂ«r tĂ« sjellĂ« projektin sipas pritshmĂ«rive. Gjeti. Programuesi vlerĂ«soi trafikun dhe volumet dhe vendosi se di si tĂ« bĂ«jĂ« optimizimin dhe menaxhimin e kostove. Ai migrroi tĂ« gjithĂ« faqen nĂ« njĂ« hosting tĂ« pĂ«rbashkĂ«t 700-rublesh nĂ«n menaxhimin e IS****er qĂ« i ishte i njohur. Pas disa ditĂ«sh, pĂ«rsĂ«ri njĂ« telefonatĂ« nga pronari: "gjithçka po ngadalĂ«sohet dhe duket se na kanĂ« sulmuar". UnĂ« pĂ«rpiqesha tĂ« rregulloja situatĂ«n pĂ«rmes panelit, por pas disa pĂ«rpjekjeve tĂ« dĂ«shtuara pĂ«r tĂ« ndryshuar versionin e PHP-sĂ« ose handlerin nga fcgi nĂ« fpm, u dorĂ«zova dhe shkova nĂ« shell. Atje gjetĂ«m debugging tĂ« aktivizuar, i cili shfaqte njĂ« fjalĂ«kalim pĂ«r MySQL nĂ« tĂ« gjithĂ« internetin, 777 pĂ«r disa dosje, tĂ« cilat deri nĂ« atĂ« moment ishin tĂ« mbushura me malware dhe tĂ« ngjashme. Pronari e kuptoi dhe vendosi se tĂ« kursesh pĂ«r hosting, programuesin dhe njĂ« administrator qĂ« do tĂ« kontrollonte me njĂ« sy si shkonin punĂ«t â Ă«shtĂ« gabim.
Po shkruajmĂ« nĂ« RuVDS. Pak mĂ« afĂ«r se Linode britanik dhe nĂ«se ndonjĂ«herĂ« dĂ«shiron tĂ« ruash tĂ« dhĂ«na personale, nuk do tĂ« jetĂ« e nevojshme tĂ« kalosh diku tjetĂ«r. Duke qenĂ« se projekti planifikohej tĂ« zgjerohej, morĂ«m njĂ« VM "pĂ«r rritje": 4 bĂ«rthamĂ«, 8 GB memorie, 80 GB disk. Nuk Ă«shtĂ« se nuk di tĂ« punoj me konfigurimet e nginx manualisht, thjesht nuk kisha entuziazĂ«m pĂ«r tĂ« u angazhuar kaq intimitet nĂ« kĂ«tĂ« projekt (shih mĂ« sipĂ«r pĂ«r orarin part-time). Prandaj, instalova Plesk (kĂ«tu do ta lĂ« jashtĂ« detajet e instalimit, sepse nĂ« fakt nuk ka shumĂ«: nisa installer-in, vendosa fjalĂ«kalimin pĂ«r adminin, futa çelĂ«sin â dhe kjo Ă«shtĂ« e gjitha), atĂ«herĂ« ky ishte versioni 17.0. CilĂ«simet themelore funksionojnĂ« mjaft mirĂ« nga kutia, ka edhe fail2ban dhe versionet mĂ« tĂ« fundit tĂ« disponueshme tĂ« PHP dhe nginx.Â
Ndoshta, duhet të ndalem dhe të shpjegoj se pse ai. Duke qenë se merrem me këto gjëra rrallë, dhe nuk kam asnjë mjet të veçantë dhe grumbullin e përgatitur për çdo rast, ishte e qartë se nevojitej ndonjë automatizim i gjërave bazike, për të siguruar që, së pari, të bëhej shpejt, së dyti, në mënyrë të sigurt, dhe së treti, të gjithë praktikat më të mira të ishin tashmë të zbatueshme.
Pra, e vendosa. Kur ndihmat e kohës ishin mjaft të konsiderueshme, rindezja e sitit në serverin e ri doli të ishte praktikisht momentale. Mbetej vetëm të prishja konfigurimin e MySQL, t'i jepja atij gjysmën e memorjes dhe të rrisja numrin e pool-eve të buferëve, dhe t'i jepja nginx gjysmën e bërthamave (Plesk nuk e prek konfigurimin global), dhe brenda disa ditësh të shkoja në shell për të parë statistikat e mysqltuner. Po, dhe bleva ImunifyAV të paguar nga katalogu i shtesave, për të liruar nga malware që ishte ngarkuar. U gjendën rreth 11000 skedarë të infektuar. Kjo është e neveritshme, sepse në statika po lëshohej kode të obfuskuara dhe të pastronte këtë me dorë do të ishte krejt e mërzitshme. Fillimisht provova ClamAV, por, siç u pa, ai nuk merret me këtë lloj gjëje, ndërsa ImunifyAV munde. Për më tepër, skedarët e trajtuar mbeten në gjendje punuese, thjesht hiqet pjesa me malware.
Arithmetic is simple: 50$ në muaj për VM, 10$ për Plesk (në të vërtetë më pak, sepse e blenë menjëherë për një vit me një zbritje prej dy muajsh) dhe 3$ për antivirusin. Ose shumë valixhka parash për kohën time, e cila do ta kaloja në server në fillim duke përballuar këto stallat manualisht. Pronari është i kënaqur me këtë plan.

Ndërkohë, gjetëm një programues të ri. U dakorduam me të për shpërndarjen e përgjegjësive, bëre një subdomain për versionin testues dhe puna filloi. Ai ishte duke ndërtuar versionin e ri të faqes në Laravel, ndërsa unë po shikoja në fail2ban%).

ĂshtĂ« interesante qĂ« fluksi i kuriozĂ«ve nuk ndalet dhe nĂ« listĂ«n e tĂ« bllokuarve gjithmonĂ« ka rreth njĂ«qind adresa. Efekti Ă«shtĂ« interesant: nĂ« veçanti, zakonisht, nĂ«se unĂ« hyj nĂ« shell, nĂ« pĂ«rshĂ«ndetje shoh rreth 20000-30000 pĂ«rpjekje tĂ« dĂ«shtuara pĂ«r tĂ« hyrĂ« pĂ«rmes SSH. Me fail2ban tĂ« aktivizuar, rreth 70. MundĂ«sitĂ« e angazhimit: 0. Pa ndonjĂ« pikĂ« katrori, fatkeqĂ«sisht, nuk kaluam. Nga default ishte âgjysmĂ«aktivâ WAF (modsecurity): nĂ« modalitetin e zbulimit. Pra, ai shkruante aktivitetin e dyshimtĂ« nĂ« log, por nĂ« fakt nuk merrte asnjĂ« veprim. NdĂ«rsa fail2ban lexonte tĂ« gjitha log-et pa dallim, sipas jails tĂ« aktivizuara, dhe bllokonte gjithçka qĂ« lĂ«vizte. KĂ«shtu qĂ« bllokuam gjysmĂ«n e redaksisĂ« :D. Duhej tĂ« çaktivizoja kĂ«tĂ« jail dhe adresat IP tĂ« nevojshme pĂ«r siguri tâi vendosja nĂ« listĂ«n e bardhĂ«. PĂ«rpjekjet e angazhimit: dy herĂ« tĂ« gjuaja me miun dhe tĂ« mĂ«soja redaktorĂ«t tĂ« thonin adresĂ«n e tyre IP.

Ajo qĂ« i pĂ«lqeu gjithashtu programuesit â mundĂ«sia pĂ«r tĂ« ngarkuar bazat e tĂ« dhĂ«nave direkt nĂ« panel dhe akses tĂ« shpejtĂ« nĂ« phpMyAdmin.

Ajo qĂ« mĂ« pĂ«lqeu mua â log-et dhe backup-et. Log-et shkruhen dhe rotullohen vetĂ« nga kutia; backup-et janĂ« shumĂ« tĂ« lehta pĂ«r t'u konfigurueshĂ«m. NĂ« kohĂ«n mĂ« tĂ« zakonshme bĂ«het njĂ« backup i plotĂ«, diku rreth 10 gigabajt, dhe pastaj çdo ditĂ« njĂ« inkremental, rreth 200 megabajt, gjatĂ« njĂ« jave. RindĂ«rtimi Ă«shtĂ« granular, deri nĂ« skedar ose bazĂ« tĂ« dhĂ«nash specifike. NĂ«se duhet tĂ« rikuperohet nga inkrementali, nuk Ă«shtĂ« e nevojshme tĂ« fillohet me pjesĂ«n e plotĂ« dhe tĂ« rinovohet e gjithĂ« zinxhiri, Plesk e bĂ«n gjithçka vetĂ«. Backup-et mund tĂ« ngarkohen kudo: nĂ« ftp, nĂ« dropbox, s3 bucket, google drive dhe tĂ« tjera.

Dita D: programuesi më në fund përfundoi motorin e ri, e ngarkuam në prodhim, importuam të dhënat e vjetra dhe u ulëm të zgjidhnim ngjyrën e Maserati-t tonë të ardhshëm. Ende po zgjedhim.
Filluan problematikat e para. I reja faqe ishte pritur të ishte më e rëndë se e vjetra, por problemi i vërtetë ishte se për të tërhequr trafik përdornim, mes të tjerash, Yandex.Zen, i cili sjell vizitorë në grupe. Faqja po dështon me 150 lidhje të njëkohshme (nuk po flas për RPS, sepse nuk e matëm). Filluam të shtypnim butonat dhe të rregullojmë parametrat në zonën e php_fpm:
Â

O, tashmë mban 500 lidhje. Me aplikimin e kartës kredite për fondet e promovimit, valët e trafik duket se janë rritur. Milestone-i tjetër janë 1000 lidhje të njëkohshme. Këtu u desh të rafinojmë kodin dhe të shohim në thellësi muskujt. Plesk në këtë nuk ndihmoi, por kjo nuk pritej shumë. Aktivizuam log-un e pyetjeve të ngadalta, vendosëm indekse në bazë, e hoqëm kërkesat e tepërta nga kodi, dhe një herë tjetër e rregulluam konfigurimin e mysql sipas këshillave nga mysqltuner.
SfidĂ« e re â 2000 lidhje. PikĂ«risht sapo doli versioni Plesk 17.8, i cili, pĂ«rveç tĂ« tjerave, shtoi caching pĂ«r nginx. U rinovuam (pĂ«r çudi lehtĂ«sisht). Po e provojmĂ«. Funksionon! Dhe menjĂ«herĂ« ndodhi njĂ« problem, ndaloi puna e feed-it tĂ« Yandex Zen. Site-i punon, por feed-i jo. NĂ«se feed-i nuk punon, nuk ka trafik. Atmosfera bĂ«het e tensionuar. NĂ«n presionin e rrethanave dhe nga mungesa e fantazisĂ«, vendosa menjĂ«herĂ« tĂ« pĂ«rdor strace pĂ«r nginx dhe gjeta se çfarĂ« po kĂ«rkonte. Doli se nĂ« njĂ« moment, nginx-i idiot kishte cached njĂ« gabim 500 si pĂ«rgjigje pĂ«r kĂ«rkesĂ«n yandex pĂ«r feed.xml. E rregulluam duke shtuar pĂ«rjashtime nĂ« konfigurimin e caches:

Natyrisht, pronari ka nevojĂ« pĂ«r MĂ SHUMĂ, valĂ«t ngadalĂ« po rriten. Deri tani po e menaxhojmĂ«, por paraprakisht filluam tĂ« eksperimentojmĂ« me memcached, e cila pĂ«r fat tĂ« mirĂ« Laravel e mbĂ«shtet gati pa ndihmĂ«. Nuk doja tĂ« instalonim memcached me dorĂ« pĂ«r ta "luajtur", kĂ«shtu qĂ« vendosĂ«m njĂ« imazh docker. Drejt nga paneli.

Mirë, po gënjej, duhej të hyja në shell dhe të instalonim modulin përmes pecl. Drejt për . Nuk kam çfarë të them për rritjen e kapacitetit, nuk kishte flukse shumë të mëdha. Motori i sitit u lidh me localhost:11211, statistikat po shfaqen, memoria po përdoret. Nëse funksionon mirë, do të shohim se çfarë të bëjmë më tej. Ose do ta lëmë kështu, ose do të vendosim një "të vërtetë" direkt në OS. Ose po ashtu do të provojmë redis.
Më pas, kishte nevojë për të krijuar një dërgesë postare. Asnjë relayer, vetëm autentifikimi smtp. Krijova një adresë postare dhe përmes të dhënave të saj bëjmë dërgesën përmes PHP.

Jo shumĂ« kohĂ« mĂ« parĂ« dolĂ«n Plesk Obsidian (18.0), u rinovuam pa frikĂ« sipas pĂ«rvojĂ«s sĂ« kaluar. TĂ« gjitha shkuan shumĂ« pa probleme, nuk kam asgjĂ« pĂ«r tĂ« treguar. Nga e mira â ndĂ«rfaqja Ă«shtĂ« bĂ«rĂ« shumĂ« mĂ« cilĂ«sore, Ă«shtĂ« modernizuar dhe nĂ« disa vende Ă«shtĂ« bĂ«rĂ« mĂ« e lehtĂ« pĂ«r t'u pĂ«rdorur. GjĂ« interesante Advanced Monitoring nĂ« Grafana.

Derisa nuk kam hulumtuar thellësisht me të, por mund të konfigurosh, për shembull, alarmin për çdo parameter në e-mail. Për pronarin, lol.
Duke jam thënë për ndërfaqen, ajo është adaptuese dhe punon mjaft mirë në telefon. Në fazat e hershme, kur ne po përpiqeshim të gjenim konfigurimet optimale të PHP dhe gjërave të tjera, kjo ka qenë shumë e dobishme. Sidomos kur programuesi, në një përplasje entuziazmi për punë, bën diçka në orën 23:00, ndërkohë që unë, në një përplasje entuziazmi për punë, po pi vodka në banjë, dhe është E DOMOSDOSHME të kaloj diçka.

O, përtej kësaj. Në imazh duket se është paraqitur PHP Composer. Akoma nuk e kemi provuar, por për shembull, për Laravelin mund të kursejmë disa hyrje në shell dhe disa kohë për instalimin e varësive. Një sistem i tillë ekziston për Node.JS dhe Ruby.
Me SSL gjithçka Ă«shtĂ« e thjeshtĂ«. NĂ«se domeni rezolvohet atje ku duhet, Letâs Encrypt krijohet me njĂ« klik dhe pĂ«rditĂ«sohet vetĂ« mĂ« pas, si pĂ«r domenin vetĂ«, ashtu edhe pĂ«r subdomenet, dhe madje edhe pĂ«r shĂ«rbimet e postĂ«s.

Plesk vetĂ« si software nĂ« kĂ«tĂ« kohĂ« Ă«shtĂ« mjaft i kĂ«ndshĂ«m dhe stabil. PĂ«rditĂ«sohet vetĂ« dhe OS-nĂ« qetĂ«, konsumon pak burime, punon saktĂ«sisht. Nuk e mbaj mend tĂ« kem hasur ndonjĂ«herĂ« ndonjĂ« defekt tĂ« dukshĂ«m tĂ« produktit. Sigurisht, kishte probleme, por ato ishin ose pĂ«r shkak tĂ« papĂ«rsosmĂ«risĂ« sĂ« konfigurimit, ose diku nĂ« pikĂ«n e lidhjes, kĂ«shtu qĂ« nuk ka shumĂ« pĂ«r t'u ankuar. PĂ«rgjithĂ«sisht, pĂ«rshtypjet nga puna me Plesk janĂ« pozitive. ĂfarĂ« nuk ka, dhe duhet ta kuptoni kĂ«tĂ«, Ă«shtĂ« cila (çdo) klasterizim. As LB, as HA. Mund tĂ« provosh, por pĂ«rpjekja do tĂ« jetĂ« kaq e madhe sa qĂ« mĂ« mirĂ« Ă«shtĂ« tĂ« bĂ«sh diçka ndryshe nĂ« fillim.
Mendoj se mund tĂ« pĂ«rmbledhim. PĂ«r rastet kur administratori nuk Ă«shtĂ« i pranishĂ«m, ose Ă«shtĂ« shumĂ« pak, kurcmimi i hostimit dhe i faqeve qĂ« funksionojnĂ« nĂ« tĂ« tejkalon, le tĂ« themi, 100⏠, kur nuk bĂ«het fjalĂ« pĂ«r ndarjen e njĂ« serveri me 1500 faqje, kur ajo qĂ« merr vendimin ka opsionin tĂ« punĂ«sojĂ« njĂ« administrator nĂ« gjysmĂ« slagĂ«, ose tĂ« blejĂ« software dhe tĂ« angazhojĂ« njĂ« administrator nĂ« "gjysmĂ« rroge", ose ta lĂ«rĂ« krejtĂ«sisht pa administratore â ka sigurisht kuptim. Nga pikĂ«pamja e administratorit tĂ« largĂ«t â po ashtu. 10$ nĂ« muaj, por kursen kohĂ« dhe shton fleksibilitet nĂ« punĂ« pĂ«r njĂ« shumĂ« shumĂ« mĂ« tĂ« madhe. NĂ«se, pĂ«r shembull, dikush mĂ« kĂ«rkon me ngulm tĂ« marr njĂ« projekt tĂ« ngjashĂ«m nĂ«n kujdesin tim, do tĂ« insistoj pĂ«r kalimin nĂ« Plesk.oDoli Wine 5.0
Burimi: habr.com
