Ang aking karanasan sa Plesk

Gusto kong magbahagi ng ilang mga impression tungkol sa pangangailangan o hindi kinakailangan ng isang bagay bilang isang control panel para sa isang komersyal na single-server na proyekto sa web na may isang napaka part-time na administrator. Nagsimula ang kuwento ilang taon na ang nakalilipas, nang hilingin sa akin ng mga kaibigan ng mga kaibigan na tumulong sa pagbili ng isang negosyo - isang site ng balita - mula sa teknikal na pananaw. Ito ay kinakailangan upang bungkalin nang kaunti sa kung ano ang gumagana sa kung ano, siguraduhin na ang lahat ng mga kinakailangang detalye ay inilipat sa tamang anyo at dami, at madiskarteng malaman kung ano ang maaaring mapabuti.

Ang aking karanasan sa Plesk
Natapos ang deal, hindi na kailangan ang violinist. Tapusin. Hindi naman.

Ang site ay tumakbo sa isang dual-core 4-GB VM sa Linode, sa ilang mossy Debian5 na may uptime na 400 araw at tulad ng isang listahan ng hindi na-update na mga pakete. Web part sa isang self-written CMS, nginx, php5.3 FPM, mysql tuned Percona. Sa prinsipyo, nagtrabaho ito.

Kasabay ng mga pag-uusap sa akin, ang bagong may-ari ay naghahanap ng isang programmer upang dalhin ang proyekto sa inaasahan. Natagpuan. Sinuri ng programmer ang trapiko at dami at nagpasya na alam niya kung paano mag-optimize at pamamahala ng gastos. Inilipat niya ang buong site sa isang 700-ruble shared hosting na pinamamahalaan ng kanyang karaniwang IS****er. Pagkalipas ng ilang araw ay may isa pang tawag mula sa may-ari: "lahat ay mabagal at tila kami ay nasira." Sinubukan kong itama ang sitwasyon sa pamamagitan ng panel, ngunit pagkatapos ng ilang oras ng walang bungang mga pagtatangka na baguhin ang bersyon ng PHP o handler mula fcgi sa fpm, sumuko ako at pumasok sa shell. Doon ay natagpuan ko ang isang pinaganang debug na nagniningning sa buong Internet na may password mula sa kalamnan, 777 sa ilang mga folder na sa oras na iyon ay nag-crack na sa malware at katulad na kalokohan. Napagtanto ng may-ari at nagpasya na mali ang magtipid sa pagho-host, isang programmer, at isang admin na maaaring bantayan kung ano ang nangyayari.

Pupunta kami sa RuVDS. Medyo mas malapit kaysa sa British Linode, at kung biglang gusto mong mag-imbak ng personal na data at lahat ng ito, hindi mo na kailangang lumipat kahit saan pa. Dahil ang proyekto ay binalak na palawakin, kumuha kami ng VM para sa paglago: 4 na core, 8 gigabytes ng memorya, 80GB ng disk. Hindi naman sa hindi ko alam kung paano manu-manong i-configure ang nginx configs, wala lang akong enthusiasm na magtrabaho sa proyektong ito nang husto (tingnan sa itaas ang tungkol sa part time). Iyon ang dahilan kung bakit na-install ko ang Plesk (dito ko aalisin ang mga detalye ng pag-install, dahil sa pangkalahatan ay wala: Inilunsad ko ang installer, itinakda ang password para sa admin, ipinasok ang susi - iyon lang), sa oras na iyon ay 17.0. Ang mga pangunahing setting ay gumagana sa labas ng kahon, mayroong fail2ban at ang pinakabagong magagamit na mga bersyon ng PHP at nginx. 

Malamang na ito ay nagkakahalaga ng paghinto at ipaliwanag kung bakit. Dahil bihira akong gumawa ng mga ganoong bagay, at wala akong anumang mga espesyal na tool o hanay ng mga paghahanda para sa bawat kaso, malinaw na kailangan ang ilang uri ng automation ng mga pangunahing bagay, upang una, mabilis, pangalawa, ligtas, at pangatlo. , lahat ng pinakamahuhusay na kagawian ay ipinatupad na ito ng isang tao.

Kaya, na-install ko ito. Nakatipid ako ng maraming oras, ang pag-restart ng site sa isang bagong server ay halos madalian. Ang natitira lang ay i-edit ang muscle config, binibigyan ito ng kalahati ng memorya at pagtaas ng bilang ng buffer pools, at bigyan ng nginx kalahati ng mga cores (Plesk ay hindi hawakan ang mga global config), at sa loob ng ilang araw pumunta sa shell upang tumingin sa mysqltuner stats. Oo, at binili ko ang bayad na ImunifyAV mula sa catalog ng mga extension upang maalis ang binahang malware. May natagpuang 11000 mga nahawaang file. Ang kasuklam-suklam ay ang mga obfuscated na piraso ng code ay ibinuhos sa statics, at ang paglilinis nito sa pamamagitan ng kamay ay magiging ganap na mapurol. Una kong sinubukan ang ClamAV, ngunit, tulad ng nangyari, hindi ito tumatagal ng mga ganoong bagay, ngunit magagawa ng ImunifyAV. Bukod dito, ang mga na-disinfect na file ay nananatili sa kondisyong gumagana; ang piraso na may malware ay tinatanggal lang.

Ang aritmetika ay simple: $50 bawat buwan para sa VMka, $10 para sa Plesk (talagang mas mababa, dahil binili mo ito nang sabay-sabay na may dalawang buwang diskwento) at $3 para sa antivirus. O maraming pera para sa aking oras, na gagastusin ko sana sa server noong una, nang manu-mano ang pag-raking ng mga stables na ito. Ang may-ari ay lubos na nasiyahan sa kaayusan na ito.

Ang aking karanasan sa Plesk
Samantala, nakahanap sila ng bagong programmer. Sumang-ayon kami sa kanya sa pamamahagi ng responsibilidad, gumawa ng subdomain para sa pagsubok na bersyon, at nagsimula ang trabaho. Nag-cut siya ng bagong bersyon ng site sa Laravel, at tinitingnan ko ang fail2ban%).

Ang aking karanasan sa Plesk
Kapansin-pansin, ang daloy ng mga usisero na tao ay hindi tumitigil at palaging may halos isang daang address sa listahan ng mga ipinagbabawal. Ang epekto ay kawili-wili: sa partikular, kadalasan, kung mag-log in ako sa isang shell, nakikita ko ang tungkol sa 20000-30000 hindi matagumpay na mga pagtatangka na mag-log in sa pamamagitan ng SSH sa pagbati. Sa pagana ng fail2ban, humigit-kumulang 70. Mga pagsisikap na namuhunan: 0. Sa kasamaang palad, ito ay walang isang patak ng pamahid. Bilang default, ang WAF (modsecurity) ay kalahating pinagana: sa discovery mode. Iyon ay, sumulat siya ng kahina-hinalang aktibidad sa log, ngunit talagang walang ginawang aksyon. At walang pinipiling binasa ng fail2ban ang lahat ng mga tala, ayon sa pinaganang mga kulungan, at pinatay ang lahat ng gumalaw. Kaya, pinagbawalan namin ang kalahati ng mga editor :D. Kinailangan kong i-disable ang kulungan na ito, at i-whitelist ang mga kinakailangang IP address para sa pagiging maaasahan. Ang mga pagsisikap ay namuhunan: sundutin ang mouse ng dalawang beses at turuan ang mga editor na sabihin sa iyo ang iyong IP address.

Ang aking karanasan sa Plesk
Ang agad na nagustuhan ng programmer ay ang kakayahang mag-upload ng mga database nang direkta sa panel at mabilis na pag-access sa phpMyAdmin

Ang aking karanasan sa Plesk
Ang nagustuhan ko ay ang mga log at backup. Ang mga log ay isinusulat at iniikot sa labas ng kahon; Napakadaling i-set up ang mga backup. Sa pinakamabagal na oras, isang buong backup ang ginawa, mga 10 gig, at pagkatapos araw-araw ay isang incremental, 200 megabytes bawat isa, sa loob ng isang linggo. Butil-butil ang pagbawi, hanggang sa isang partikular na file o database. Kung kailangan mong i-restore mula sa isang incremental na isa, pagkatapos ay hindi mo na kailangang mag-abala muna sa isang buo at pagpapanumbalik ng buong chain, Plesk ang lahat ng bagay mismo. Maaari kang mag-upload ng mga backup kahit saan: sa FTP, dropbox, s3 bucket, google drive, atbp.

Ang aking karanasan sa Plesk
Araw F: sa wakas ay nakumpleto ng programmer ang bagong engine, na-upload namin ito sa produksyon, nag-import ng lumang data at umupo upang piliin ang kulay ng aming hinaharap na Maserati. Nakaupo pa rin kami at pumipili.

Nagsimula ang mga unang problema. Ang bagong site ay inaasahang mas mabigat kaysa sa luma, ngunit ang tunay na rake ay upang maakit ang trapiko na ginamit nila, bukod sa iba pang mga bagay, Yandex.Zen, na nagdala ng maraming mga bisita. Nag-crash ang site na may 150 sabay-sabay na koneksyon (Hindi ko pinag-uusapan ang tungkol sa RPS, dahil hindi nila ito sinukat). Sinimulan namin ang pag-poking ng mga pindutan at pagpihit ng mga knobs sa lugar ng mga setting ng php_fpm:
 
Ang aking karanasan sa Plesk
Hay, 500 connections na siya. Habang ang mga credit card ay idinagdag sa paraan ng promosyon, ang mga alon ng trapiko ay naging mas malaki. Ang susunod na milestone ay 1000 sabay-sabay na koneksyon. Dito kailangan naming ayusin ang code at tingnan ang kaluluwa ng kalamnan. Hindi naman nakatulong yung splashing, pero hindi namin talaga inaasahan. Pinagana namin ang mabagal na log ng mga query, nagdagdag ng mga index sa database, nag-alis ng mga hindi kinakailangang query mula sa code, at muling nilinis ang mysql config ayon sa payo ng mysqltuner.

Bagong hamon - 2000 koneksyon. Ang bersyon ng Plesk 17.8 ay pinamamahalaang lamang na mailabas, kung saan, bukod sa iba pang mga bagay, ang nginx caching ay idinagdag. Na-update (nakakagulat na madali). Subukan Natin. Gumagana! At pagkatapos ay tumapak sila sa malambot na bahagi, ang Yandex.Zen feed ay tumigil sa paggana. Gumagana ang site, hindi gumagana ang feed. Hindi gumagana ang feed, walang traffic. Umiinit ang kapaligiran. Sa ilalim ng presyon mula sa mga pangyayari at mula sa kawalan ng imahinasyon, agad akong pumunta sa strace at nginx at nakita ko ang aking hinahanap. Ito ay lumiliko out na sa ilang mga punto bobo nginx naka-cache ang stray 500th error bilang isang tugon sa Yandex makakuha ng feed.xml. Inayos ito sa pamamagitan ng pagdaragdag ng mga pagbubukod sa mga setting ng cache:

Ang aking karanasan sa Plesk
Malinaw na KARAGDAGANG kailangan ng may-ari, unti-unting dumarami ang alon. Kinakaya namin sa ngayon, ngunit nagsimula kaming mag-eksperimento sa memcached nang maaga, sa kabutihang palad ay sinusuportahan ito ni Laravel nang halos wala sa kahon. Kahit papaano ay hindi ko gustong mag-install ng memcached nang manu-mano para lang "maglaro", kaya nag-install ako ng docker image. Diretso mula sa panel.

Ang aking karanasan sa Plesk
Well, okay, nagsisinungaling ako, kailangan kong pumunta sa shell at i-install ang module sa pamamagitan ng pecl. Tama tagubilin. Wala pang masasabi tungkol sa pagtaas ng throughput; wala pang sapat na malalaking pag-agos. Ang engine ng site ay naka-hook up sa localhost:11211, ipinapakita ang mga istatistika, ginagamit ang memorya. Kung gusto mo, tingnan natin kung ano ang susunod na gagawin. Alinman ay iiwan natin ito sa ganoong paraan, o ilalagay natin ang "totoo" sa mismong Axis. O subukan natin ang redis sa parehong paraan

Pagkatapos ay kinakailangan na mag-attach ng isang mailing list. Walang relay, smtp authentication lang. Nag-set up ako ng isang mailing address at ginagamit ang mga detalye nito para magpadala ng newsletter sa pamamagitan ng PHP.

Ang aking karanasan sa Plesk
Hindi nagtagal ay inilabas ang Plesk Obsidian (18.0), nag-update kami batay sa nakaraang karanasan nang walang takot. Naging maayos ang lahat, wala man lang mapag-usapan. Ang kaaya-ayang bagay ay ang kalidad ng interface ay bumuti nang husto, ito ay naging mas moderno at naging mas maginhawa sa ilang mga lugar. Cool na bagay na Advanced na Pagsubaybay sa Grafana.

Ang aking karanasan sa Plesk
Hindi ko pa ito napag-uusapan nang detalyado, ngunit maaari mong, halimbawa, mag-set up ng mga alerto para sa anumang parameter sa iyong email. Sa may ari, lol.

Habang pinag-uusapan ko ang interface, tumutugon ito at gumagana nang maayos sa telepono. Sa mga unang yugto, habang sinusubukan naming hanapin ang pinakamainam na mga setting para sa PHP at iba pang bagay, nakatulong ito nang malaki. At lalo na kapag ang isang programmer, sa isang akma ng sigasig sa trabaho, ay gumagawa ng isang bagay sa 23:XNUMX, at ako, sa isang akma ng sigasig sa trabaho, umiinom ng vodka sa banyo, at MAAAGAD kong kailangang lumipat ng isang bagay.

Ang aking karanasan sa Plesk
Oo nga pala. Ang larawan ay nagpapakita na ang PHP Composer ay lumitaw. Hindi pa namin ito nilalaro, ngunit, sabihin nating, para sa Laravel, makakatipid ito ng ilang shell login at ilang oras sa pag-install ng mga dependency. Ang parehong sistema ay umiiral para sa Node.JS at Ruby.

Sa SSL lahat ay simple. Kung mareresolba ang domain gaya ng inaasahan, gagawin ang Let's Encrypt sa isang pag-click at pagkatapos ay ina-update ang sarili nito, para sa mismong domain, at para sa mga subdomain, at maging sa mga serbisyo ng mail.

Ang aking karanasan sa Plesk
Ang Plesk mismo bilang isang software ay kasalukuyang medyo kaaya-aya at matatag. Ina-update nito ang sarili nito at ang Axis nang tahimik, kumukonsumo ng kaunting mapagkukunan, at gumagana nang maayos. Ni hindi ko naaalala na may natapakan ako sa isang lugar, na magiging halatang depekto sa produkto. May mga problema, siyempre, ngunit maaaring dahil sa hindi perpektong pagsasaayos o sa isang lugar sa junction, kaya walang dapat ireklamo. Ang mga impression ng pakikipagtulungan sa Plesk ay karaniwang kaaya-aya. Ang wala nito, at kailangan nating maunawaan ito, ay anumang (anumang) clustering. Ni LB o HA. Maaari mong subukan, ngunit ang pagsisikap na kasangkot ay magiging labis na mas mahusay na gumawa ng isang bagay na naiiba mula sa simula.

Sa tingin ko ay maaari nating buod ito. Para sa kaso kapag walang administrator, o walang sapat sa kanya, kapag ang presyo ng pagho-host at ang (mga) site na umiikot dito ay lumampas, well, sabihin nating, 100 USD, kapag hindi natin pinag-uusapan ang bestial sharing na 1500 mga site sa isang server, kapag ang gumagawa ng desisyon ay nahaharap sa Kung mayroon kang pagpipiliang kumuha ng part-time na admin, o bumili ng software at magkaroon ng admin sa halagang kalahating pera, o wala talagang isa - tiyak na makatuwiran. Mula sa punto ng view ng remote administrator - ang parehong bagay. $10 bawat buwan, at nakakatipid ng oras at nagbibigay ng flexibility sa trabaho sa napakahabang panahonΠΎmas malaking halaga. Kung, halimbawa, mahigpit akong hihilingin na kumuha ng katulad na proyekto sa ilalim ng aking pakpak, pipilitin kong ilipat ito sa Plesk.

Ang aking karanasan sa Plesk

Pinagmulan: www.habr.com

Magdagdag ng komento