<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
 <channel>
 <title>Блог — uHost</title>
 <description>Последние статьи и новости</description>
 <link>https://uhost.online/</link>
 <atom:link href="https://uhost.online//blog/rss" rel="self" type="application/rss+xml" />
 <language>ru-RU</language>
 <lastBuildDate>Sun, 19 Apr 2026 16:12:09 +0000</lastBuildDate>
 <generator>Uhost Blog System</generator>

  <item>
 <title>DNS-записи A, AAAA, CNAME, MX, TXT: що означають і як налаштувати правильно</title>
 <link>https://uhost.online/blog/dns-zapisi-a-aaaa-cname-mx-txt-shcho-oznachayut-yak-nalashtuvati-pravilno</link>
 <guid isPermaLink="true">https://uhost.online/blog/dns-zapisi-a-aaaa-cname-mx-txt-shcho-oznachayut-yak-nalashtuvati-pravilno</guid>
 <description><![CDATA[Пояснюємо простими словами, як працює DNS і для чого потрібні записи A/AAAA/CNAME/MX/TXT. Покрокові приклади налаштування для сайту, пошти, SPF/DKIM/DMARC, типові помилки та чек-лист.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/20_23_43_1768760845_1543.webp" alt="DNS-записи A, AAAA, CNAME, MX, TXT: що означають і як налаштувати правильно" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h2 data-start=&quot;624&quot; data-end=&quot;694&quot;&gt;DNS-записи A/AAAA/CNAME/MX/TXT: що це таке і як налаштувати без болю&lt;/h2&gt;<br />
&lt;p data-start=&quot;696&quot; data-end=&quot;1076&quot;&gt;DNS &amp;mdash; це як телефонна книга інтернету. Люди пам&amp;rsquo;ятають назви (example.com), а сервери працюють з адресами (IP). І от DNS займається простим на вигляд, але критично важливим завданням: &lt;strong data-start=&quot;880&quot; data-end=&quot;923&quot;&gt;перекладає домен у конкретні &amp;ldquo;куди йти&amp;rdquo;&lt;/strong&gt; &amp;mdash; на який сервер віддати сайт, куди доставити пошту, які політики безпеки застосувати, як перевірити підпис листа, чи дозволяти відправку з домену тощо.&lt;/p&gt;<br />
&lt;p data-start=&quot;1078&quot; data-end=&quot;1398&quot;&gt;Якщо коротко: &lt;strong data-start=&quot;1092&quot; data-end=&quot;1145&quot;&gt;DNS-записи &amp;mdash; це правила маршрутизації для домену.&lt;/strong&gt; Неправильно налаштовані записи дають класичні симптоми: сайт &amp;ldquo;не відкривається&amp;rdquo;, пошта &amp;ldquo;не доходить&amp;rdquo;, сервіси &amp;ldquo;не підтверджують домен&amp;rdquo;, а користувачі бачать то стару версію сайту, то нову. І головне &amp;mdash; це часто не баг сервера, а банальна помилка в зоні.&lt;/p&gt;<br />
&lt;p data-start=&quot;1400&quot; data-end=&quot;1742&quot;&gt;Нижче розберемо &lt;strong data-start=&quot;1416&quot; data-end=&quot;1443&quot;&gt;A, AAAA, CNAME, MX, TXT&lt;/strong&gt;: що означають, де їх ставлять, як вони взаємодіють, і як зробити налаштування так, щоб потім не розгрібати проблеми з доставкою пошти та індексацією сайту. Якщо ви плануєте &lt;a href=&quot;https://uhost.online/domains&quot;&gt;&lt;strong data-start=&quot;1617&quot; data-end=&quot;1633&quot;&gt;купити домен&lt;/strong&gt;&lt;/a&gt;, під&amp;rsquo;єднати &lt;a href=&quot;https://uhost.online/hosting&quot;&gt;&lt;strong data-start=&quot;1646&quot; data-end=&quot;1666&quot;&gt;надійний хостинг&lt;/strong&gt;&lt;/a&gt;, або підняти проект на &lt;strong data-start=&quot;1690&quot; data-end=&quot;1716&quot;&gt;VPS/виділеному сервері&lt;/strong&gt;, ці основи &amp;mdash; обов&amp;rsquo;язкові.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;1749&quot; data-end=&quot;1821&quot;&gt;Перед тим як створювати записи: що таке зона, хост, TTL і &amp;ldquo;пропагація&amp;rdquo;&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;1823&quot; data-end=&quot;1846&quot;&gt;Домен, зона і хости&lt;/h3&gt;<br />
&lt;ul data-start=&quot;1847&quot; data-end=&quot;2007&quot;&gt;<br />
&lt;li data-start=&quot;1847&quot; data-end=&quot;1873&quot;&gt;<br />
&lt;p data-start=&quot;1849&quot; data-end=&quot;1873&quot;&gt;&lt;strong data-start=&quot;1849&quot; data-end=&quot;1858&quot;&gt;Домен&lt;/strong&gt;: &lt;code data-start=&quot;1860&quot; data-end=&quot;1873&quot;&gt;example.com&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1874&quot; data-end=&quot;1951&quot;&gt;<br />
&lt;p data-start=&quot;1876&quot; data-end=&quot;1951&quot;&gt;&lt;strong data-start=&quot;1876&quot; data-end=&quot;1893&quot;&gt;Хост/піддомен&lt;/strong&gt;: &lt;code data-start=&quot;1895&quot; data-end=&quot;1912&quot;&gt;www.example.com&lt;/code&gt;, &lt;code data-start=&quot;1914&quot; data-end=&quot;1931&quot;&gt;api.example.com&lt;/code&gt;, &lt;code data-start=&quot;1933&quot; data-end=&quot;1951&quot;&gt;mail.example.com&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1952&quot; data-end=&quot;2007&quot;&gt;<br />
&lt;p data-start=&quot;1954&quot; data-end=&quot;2007&quot;&gt;&lt;strong data-start=&quot;1954&quot; data-end=&quot;1966&quot;&gt;DNS-зона&lt;/strong&gt;: набір усіх правил (записів) для домену.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2009&quot; data-end=&quot;2160&quot;&gt;Більшість панелей показують поле &amp;ldquo;Name/Host&amp;rdquo; &amp;mdash; це &lt;strong data-start=&quot;2059&quot; data-end=&quot;2075&quot;&gt;ліва частина&lt;/strong&gt; (наприклад &lt;code data-start=&quot;2087&quot; data-end=&quot;2092&quot;&gt;www&lt;/code&gt;), а поле &amp;ldquo;Value/Target&amp;rdquo; &amp;mdash; це &lt;strong data-start=&quot;2122&quot; data-end=&quot;2139&quot;&gt;права частина&lt;/strong&gt; (IP або домен-ціль).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2162&quot; data-end=&quot;2184&quot;&gt;TTL (Time To Live)&lt;/h3&gt;<br />
&lt;p data-start=&quot;2185&quot; data-end=&quot;2295&quot;&gt;TTL &amp;mdash; це час кешування відповіді DNS на резолверах (провайдери, корпоративні DNS, ваш браузер частково, тощо).&lt;/p&gt;<br />
&lt;ul data-start=&quot;2297&quot; data-end=&quot;2464&quot;&gt;<br />
&lt;li data-start=&quot;2297&quot; data-end=&quot;2358&quot;&gt;<br />
&lt;p data-start=&quot;2299&quot; data-end=&quot;2358&quot;&gt;Поставили TTL 3600 &amp;mdash; значить &amp;ldquo;тримайте це значення годину&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2359&quot; data-end=&quot;2464&quot;&gt;<br />
&lt;p data-start=&quot;2361&quot; data-end=&quot;2464&quot;&gt;Для міграцій зручно &lt;strong data-start=&quot;2381&quot; data-end=&quot;2408&quot;&gt;тимчасово знижувати TTL&lt;/strong&gt; (наприклад 300 секунд), щоб зміни швидше &amp;ldquo;роз&amp;rsquo;їхались&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;2466&quot; data-end=&quot;2484&quot;&gt;Пропагація DNS&lt;/h3&gt;<br />
&lt;p data-start=&quot;2485&quot; data-end=&quot;2711&quot;&gt;Те, що в панелі ви змінили запис, не означає, що &lt;strong data-start=&quot;2534&quot; data-end=&quot;2577&quot;&gt;весь інтернет уже побачив нове значення&lt;/strong&gt;. Частина кешів триматиме старе значення до завершення TTL. Тому &amp;ldquo;у мене вже працює, а в знайомого ні&amp;rdquo; &amp;mdash; абсолютно нормальна ситуація.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2718&quot; data-end=&quot;2755&quot;&gt;A-запис: &amp;ldquo;домінує&amp;rdquo; у світі IPv4&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;2757&quot; data-end=&quot;2770&quot;&gt;Що таке A&lt;/h3&gt;<br />
&lt;p data-start=&quot;2771&quot; data-end=&quot;2846&quot;&gt;&lt;strong data-start=&quot;2771&quot; data-end=&quot;2793&quot;&gt;A (Address) record&lt;/strong&gt; вказує: &amp;ldquo;цей домен/піддомен відповідає IPv4-адресі&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;2848&quot; data-end=&quot;2856&quot;&gt;Приклад:&lt;/p&gt;<br />
&lt;ul data-start=&quot;2857&quot; data-end=&quot;2926&quot;&gt;<br />
&lt;li data-start=&quot;2857&quot; data-end=&quot;2889&quot;&gt;<br />
&lt;p data-start=&quot;2859&quot; data-end=&quot;2889&quot;&gt;&lt;code data-start=&quot;2859&quot; data-end=&quot;2872&quot;&gt;example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;2875&quot; data-end=&quot;2889&quot;&gt;203.0.113.10&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2890&quot; data-end=&quot;2926&quot;&gt;<br />
&lt;p data-start=&quot;2892&quot; data-end=&quot;2926&quot;&gt;&lt;code data-start=&quot;2892&quot; data-end=&quot;2909&quot;&gt;www.example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;2912&quot; data-end=&quot;2926&quot;&gt;203.0.113.10&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;2928&quot; data-end=&quot;2951&quot;&gt;Коли використовують&lt;/h3&gt;<br />
&lt;ul data-start=&quot;2952&quot; data-end=&quot;3074&quot;&gt;<br />
&lt;li data-start=&quot;2952&quot; data-end=&quot;3016&quot;&gt;<br />
&lt;p data-start=&quot;2954&quot; data-end=&quot;3016&quot;&gt;Підключення сайту до сервера (shared hosting, VPS, dedicated).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3017&quot; data-end=&quot;3074&quot;&gt;<br />
&lt;p data-start=&quot;3019&quot; data-end=&quot;3074&quot;&gt;Підключення &lt;code data-start=&quot;3031&quot; data-end=&quot;3036&quot;&gt;api&lt;/code&gt;, &lt;code data-start=&quot;3038&quot; data-end=&quot;3043&quot;&gt;cdn&lt;/code&gt;, &lt;code data-start=&quot;3045&quot; data-end=&quot;3052&quot;&gt;panel&lt;/code&gt;, &lt;code data-start=&quot;3054&quot; data-end=&quot;3059&quot;&gt;app&lt;/code&gt; до окремих IP.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;3076&quot; data-end=&quot;3106&quot;&gt;Типовий сценарій для сайту&lt;/h3&gt;<br />
&lt;p data-start=&quot;3107&quot; data-end=&quot;3125&quot;&gt;Часто роблять так:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3126&quot; data-end=&quot;3233&quot;&gt;<br />
&lt;li data-start=&quot;3126&quot; data-end=&quot;3168&quot;&gt;<br />
&lt;p data-start=&quot;3128&quot; data-end=&quot;3168&quot;&gt;&lt;code data-start=&quot;3128&quot; data-end=&quot;3131&quot;&gt;@&lt;/code&gt; (або порожнє ім&amp;rsquo;я) &amp;mdash; A на IP сервера&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3169&quot; data-end=&quot;3233&quot;&gt;<br />
&lt;p data-start=&quot;3171&quot; data-end=&quot;3233&quot;&gt;&lt;code data-start=&quot;3171&quot; data-end=&quot;3176&quot;&gt;www&lt;/code&gt; &amp;mdash; або A на той самий IP, або CNAME на &lt;code data-start=&quot;3215&quot; data-end=&quot;3218&quot;&gt;@&lt;/code&gt; (про це нижче)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3235&quot; data-end=&quot;3256&quot;&gt;&lt;strong data-start=&quot;3235&quot; data-end=&quot;3256&quot;&gt;Приклад у панелі:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul data-start=&quot;3257&quot; data-end=&quot;3391&quot;&gt;<br />
&lt;li data-start=&quot;3257&quot; data-end=&quot;3322&quot;&gt;<br />
&lt;p data-start=&quot;3259&quot; data-end=&quot;3322&quot;&gt;Type: A&lt;br data-start=&quot;3266&quot; data-end=&quot;3269&quot;&gt;Name: &lt;code data-start=&quot;3277&quot; data-end=&quot;3280&quot;&gt;@&lt;/code&gt;&lt;br data-start=&quot;3280&quot; data-end=&quot;3283&quot;&gt;Value: &lt;code data-start=&quot;3292&quot; data-end=&quot;3306&quot;&gt;203.0.113.10&lt;/code&gt;&lt;br data-start=&quot;3306&quot; data-end=&quot;3309&quot;&gt;TTL: &lt;code data-start=&quot;3316&quot; data-end=&quot;3322&quot;&gt;3600&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3324&quot; data-end=&quot;3391&quot;&gt;<br />
&lt;p data-start=&quot;3326&quot; data-end=&quot;3391&quot;&gt;Type: A&lt;br data-start=&quot;3333&quot; data-end=&quot;3336&quot;&gt;Name: &lt;code data-start=&quot;3344&quot; data-end=&quot;3349&quot;&gt;www&lt;/code&gt;&lt;br data-start=&quot;3349&quot; data-end=&quot;3352&quot;&gt;Value: &lt;code data-start=&quot;3361&quot; data-end=&quot;3375&quot;&gt;203.0.113.10&lt;/code&gt;&lt;br data-start=&quot;3375&quot; data-end=&quot;3378&quot;&gt;TTL: &lt;code data-start=&quot;3385&quot; data-end=&quot;3391&quot;&gt;3600&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;3393&quot; data-end=&quot;3411&quot;&gt;Типові помилки&lt;/h3&gt;<br />
&lt;ol data-start=&quot;3412&quot; data-end=&quot;3660&quot;&gt;<br />
&lt;li data-start=&quot;3412&quot; data-end=&quot;3505&quot;&gt;<br />
&lt;p data-start=&quot;3415&quot; data-end=&quot;3505&quot;&gt;&lt;strong data-start=&quot;3415&quot; data-end=&quot;3435&quot;&gt;Забули про &lt;code data-start=&quot;3428&quot; data-end=&quot;3433&quot;&gt;www&lt;/code&gt;&lt;/strong&gt;: &lt;code data-start=&quot;3437&quot; data-end=&quot;3450&quot;&gt;example.com&lt;/code&gt; відкривається, а &lt;code data-start=&quot;3468&quot; data-end=&quot;3485&quot;&gt;www.example.com&lt;/code&gt; &amp;mdash; ні (або навпаки).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3506&quot; data-end=&quot;3576&quot;&gt;<br />
&lt;p data-start=&quot;3509&quot; data-end=&quot;3576&quot;&gt;&lt;strong data-start=&quot;3509&quot; data-end=&quot;3534&quot;&gt;Вказали внутрішній IP&lt;/strong&gt; типу &lt;code data-start=&quot;3540&quot; data-end=&quot;3553&quot;&gt;192.168.x.x&lt;/code&gt; &amp;mdash; ззовні це не працює.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3577&quot; data-end=&quot;3660&quot;&gt;<br />
&lt;p data-start=&quot;3580&quot; data-end=&quot;3660&quot;&gt;&lt;strong data-start=&quot;3580&quot; data-end=&quot;3601&quot;&gt;Залишили старий A&lt;/strong&gt; після міграції &amp;mdash; частина людей потрапляє на старий сервер.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2 data-start=&quot;3667&quot; data-end=&quot;3706&quot;&gt;AAAA-запис: те саме, але для IPv6&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;3708&quot; data-end=&quot;3724&quot;&gt;Що таке AAAA&lt;/h3&gt;<br />
&lt;p data-start=&quot;3725&quot; data-end=&quot;3773&quot;&gt;&lt;strong data-start=&quot;3725&quot; data-end=&quot;3740&quot;&gt;AAAA record&lt;/strong&gt; вказує домен на &lt;strong data-start=&quot;3757&quot; data-end=&quot;3772&quot;&gt;IPv6-адресу&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;p data-start=&quot;3775&quot; data-end=&quot;3783&quot;&gt;Приклад:&lt;code data-start=&quot;3786&quot; data-end=&quot;3799&quot;&gt;example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;3802&quot; data-end=&quot;3816&quot;&gt;2001:db8::10&lt;/code&gt;&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3818&quot; data-end=&quot;3852&quot;&gt;Чи потрібно ставити AAAA всім?&lt;/h3&gt;<br />
&lt;p data-start=&quot;3853&quot; data-end=&quot;4039&quot;&gt;Якщо ваш сервер/хостинг &lt;strong data-start=&quot;3877&quot; data-end=&quot;3909&quot;&gt;реально налаштований на IPv6&lt;/strong&gt; (вебсервер слухає IPv6, фаєрвол дозволяє, маршрути є), тоді AAAA &amp;mdash; плюс: сучасні мережі можуть ходити по IPv6 швидше/стабільніше.&lt;/p&gt;<br />
&lt;p data-start=&quot;4041&quot; data-end=&quot;4222&quot;&gt;Але якщо поставити AAAA &amp;ldquo;просто так&amp;rdquo;, а сервер по IPv6 не працює &amp;mdash; отримаєте дивний баг: &lt;strong data-start=&quot;4130&quot; data-end=&quot;4178&quot;&gt;у частини користувачів сайт не відкривається&lt;/strong&gt;, бо їхні провайдери віддають перевагу IPv6.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;4224&quot; data-end=&quot;4244&quot;&gt;Практична порада&lt;/h3&gt;<br />
&lt;ul data-start=&quot;4245&quot; data-end=&quot;4406&quot;&gt;<br />
&lt;li data-start=&quot;4245&quot; data-end=&quot;4321&quot;&gt;<br />
&lt;p data-start=&quot;4247&quot; data-end=&quot;4321&quot;&gt;Якщо не впевнений &amp;mdash; &lt;strong data-start=&quot;4267&quot; data-end=&quot;4292&quot;&gt;краще не ставити AAAA&lt;/strong&gt;, ніж поставити неправильний.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4322&quot; data-end=&quot;4406&quot;&gt;<br />
&lt;p data-start=&quot;4324&quot; data-end=&quot;4406&quot;&gt;Якщо є &lt;strong data-start=&quot;4331&quot; data-end=&quot;4355&quot;&gt;надійний хостинг/VPS&lt;/strong&gt; з повною підтримкою IPv6 &amp;mdash; тоді ставте і тестуйте.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;4413&quot; data-end=&quot;4452&quot;&gt;CNAME: &amp;ldquo;псевдонім&amp;rdquo; на інший домен&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;4454&quot; data-end=&quot;4471&quot;&gt;Що таке CNAME&lt;/h3&gt;<br />
&lt;p data-start=&quot;4472&quot; data-end=&quot;4545&quot;&gt;&lt;strong data-start=&quot;4472&quot; data-end=&quot;4498&quot;&gt;CNAME (Canonical Name)&lt;/strong&gt; каже: &amp;ldquo;цей хост &amp;mdash; це псевдонім іншого домену&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;4547&quot; data-end=&quot;4555&quot;&gt;Приклад:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4556&quot; data-end=&quot;4692&quot;&gt;<br />
&lt;li data-start=&quot;4556&quot; data-end=&quot;4591&quot;&gt;<br />
&lt;p data-start=&quot;4558&quot; data-end=&quot;4591&quot;&gt;&lt;code data-start=&quot;4558&quot; data-end=&quot;4575&quot;&gt;www.example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;4578&quot; data-end=&quot;4591&quot;&gt;example.com&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4592&quot; data-end=&quot;4635&quot;&gt;<br />
&lt;p data-start=&quot;4594&quot; data-end=&quot;4635&quot;&gt;&lt;code data-start=&quot;4594&quot; data-end=&quot;4612&quot;&gt;shop.example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;4615&quot; data-end=&quot;4635&quot;&gt;shops.platform.com&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4636&quot; data-end=&quot;4692&quot;&gt;<br />
&lt;p data-start=&quot;4638&quot; data-end=&quot;4692&quot;&gt;&lt;code data-start=&quot;4638&quot; data-end=&quot;4658&quot;&gt;verify.example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;4661&quot; data-end=&quot;4692&quot;&gt;some-verification.service.com&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4694&quot; data-end=&quot;4807&quot;&gt;Тут важливо: CNAME не вказує на IP напряму, він вказує на &lt;strong data-start=&quot;4752&quot; data-end=&quot;4765&quot;&gt;інше ім&amp;rsquo;я&lt;/strong&gt;, а вже там DNS розрулить IP через A/AAAA.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;4809&quot; data-end=&quot;4835&quot;&gt;Коли CNAME &amp;mdash; ідеальний&lt;/h3&gt;<br />
&lt;ul data-start=&quot;4836&quot; data-end=&quot;5037&quot;&gt;<br />
&lt;li data-start=&quot;4836&quot; data-end=&quot;4873&quot;&gt;<br />
&lt;p data-start=&quot;4838&quot; data-end=&quot;4873&quot;&gt;Для &lt;code data-start=&quot;4842&quot; data-end=&quot;4847&quot;&gt;www&lt;/code&gt; (дуже поширений випадок).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4874&quot; data-end=&quot;4976&quot;&gt;<br />
&lt;p data-start=&quot;4876&quot; data-end=&quot;4976&quot;&gt;Для підключення сторонніх сервісів: CDN, CRM, email-провайдери, payment-віджети, конструктори, тощо.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4977&quot; data-end=&quot;5037&quot;&gt;<br />
&lt;p data-start=&quot;4979&quot; data-end=&quot;5037&quot;&gt;Для верифікації домену в сервісах: часто дають саме CNAME.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;5039&quot; data-end=&quot;5064&quot;&gt;Головне правило CNAME&lt;/h3&gt;<br />
&lt;p data-start=&quot;5065&quot; data-end=&quot;5211&quot;&gt;&lt;strong data-start=&quot;5065&quot; data-end=&quot;5133&quot;&gt;На одному й тому самому імені не можна мати CNAME і інші записи.&lt;/strong&gt;&lt;br data-start=&quot;5133&quot; data-end=&quot;5136&quot;&gt;Тобто якщо &lt;code data-start=&quot;5147&quot; data-end=&quot;5152&quot;&gt;www&lt;/code&gt; &amp;mdash; CNAME, то для &lt;code data-start=&quot;5169&quot; data-end=&quot;5174&quot;&gt;www&lt;/code&gt; не має бути A/AAAA/TXT/MX одночасно.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;5213&quot; data-end=&quot;5248&quot;&gt;Про &amp;ldquo;корінь домену&amp;rdquo; (@) і CNAME&lt;/h3&gt;<br />
&lt;p data-start=&quot;5249&quot; data-end=&quot;5434&quot;&gt;Багато DNS-провайдерів &lt;strong data-start=&quot;5272&quot; data-end=&quot;5289&quot;&gt;не дозволяють&lt;/strong&gt; CNAME на &lt;code data-start=&quot;5299&quot; data-end=&quot;5302&quot;&gt;@&lt;/code&gt; (apex). Причина проста: у корені домену потрібні ще NS/SOA та інші системні записи, а CNAME конфліктує з концепцією &amp;ldquo;єдиний запис&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;5436&quot; data-end=&quot;5664&quot;&gt;Іноді провайдери пропонують &amp;ldquo;ALIAS/ANAME&amp;rdquo; &amp;mdash; це їхній трюк, який поводиться як CNAME для кореня, але технічно реалізовано інакше. Якщо у вашій панелі є ALIAS/ANAME &amp;mdash; ок, але це &lt;strong data-start=&quot;5612&quot; data-end=&quot;5638&quot;&gt;не стандартний DNS-тип&lt;/strong&gt;, а реалізація провайдера.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;5671&quot; data-end=&quot;5713&quot;&gt;MX: куди доставляти пошту для домену&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;5715&quot; data-end=&quot;5729&quot;&gt;Що таке MX&lt;/h3&gt;<br />
&lt;p data-start=&quot;5730&quot; data-end=&quot;5800&quot;&gt;&lt;strong data-start=&quot;5730&quot; data-end=&quot;5752&quot;&gt;MX (Mail Exchange)&lt;/strong&gt; вказує, які сервери приймають пошту для домену.&lt;/p&gt;<br />
&lt;p data-start=&quot;5802&quot; data-end=&quot;5810&quot;&gt;Приклад:&lt;/p&gt;<br />
&lt;ul data-start=&quot;5811&quot; data-end=&quot;5919&quot;&gt;<br />
&lt;li data-start=&quot;5811&quot; data-end=&quot;5861&quot;&gt;<br />
&lt;p data-start=&quot;5813&quot; data-end=&quot;5861&quot;&gt;&lt;code data-start=&quot;5813&quot; data-end=&quot;5826&quot;&gt;example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;5829&quot; data-end=&quot;5847&quot;&gt;mail.example.com&lt;/code&gt; (priority 10)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5862&quot; data-end=&quot;5919&quot;&gt;<br />
&lt;p data-start=&quot;5864&quot; data-end=&quot;5919&quot;&gt;&lt;code data-start=&quot;5864&quot; data-end=&quot;5877&quot;&gt;example.com&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;5880&quot; data-end=&quot;5905&quot;&gt;backup.mail.example.com&lt;/code&gt; (priority 20)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;5921&quot; data-end=&quot;5975&quot;&gt;Чим &lt;strong data-start=&quot;5925&quot; data-end=&quot;5949&quot;&gt;менше число priority&lt;/strong&gt;, тим &lt;strong data-start=&quot;5955&quot; data-end=&quot;5974&quot;&gt;вищий пріоритет&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;5977&quot; data-end=&quot;6003&quot;&gt;Два популярні сценарії&lt;/h3&gt;<br />
&lt;h4 data-start=&quot;6004&quot; data-end=&quot;6044&quot;&gt;Сценарій А: Пошта на вашому сервері&lt;/h4&gt;<br />
&lt;ol data-start=&quot;6045&quot; data-end=&quot;6182&quot;&gt;<br />
&lt;li data-start=&quot;6045&quot; data-end=&quot;6111&quot;&gt;<br />
&lt;p data-start=&quot;6048&quot; data-end=&quot;6074&quot;&gt;Ставите A/AAAA для &lt;code data-start=&quot;6067&quot; data-end=&quot;6073&quot;&gt;mail&lt;/code&gt;:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6078&quot; data-end=&quot;6111&quot;&gt;<br />
&lt;li data-start=&quot;6078&quot; data-end=&quot;6111&quot;&gt;<br />
&lt;p data-start=&quot;6080&quot; data-end=&quot;6111&quot;&gt;&lt;code data-start=&quot;6080&quot; data-end=&quot;6098&quot;&gt;mail.example.com&lt;/code&gt; &amp;rarr; IP сервера&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6112&quot; data-end=&quot;6182&quot;&gt;<br />
&lt;p data-start=&quot;6115&quot; data-end=&quot;6137&quot;&gt;Ставите MX для домену:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6141&quot; data-end=&quot;6182&quot;&gt;<br />
&lt;li data-start=&quot;6141&quot; data-end=&quot;6182&quot;&gt;<br />
&lt;p data-start=&quot;6143&quot; data-end=&quot;6182&quot;&gt;MX &lt;code data-start=&quot;6146&quot; data-end=&quot;6149&quot;&gt;@&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;6152&quot; data-end=&quot;6170&quot;&gt;mail.example.com&lt;/code&gt; priority 10&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h4 data-start=&quot;6184&quot; data-end=&quot;6255&quot;&gt;Сценарій Б: Пошта на Google Workspace / Microsoft 365 / провайдері&lt;/h4&gt;<br />
&lt;p data-start=&quot;6256&quot; data-end=&quot;6362&quot;&gt;Тоді провайдер дає список MX записів (кілька штук). Ви &lt;strong data-start=&quot;6311&quot; data-end=&quot;6333&quot;&gt;повністю замінюєте&lt;/strong&gt; поточні MX на їхні значення.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;6364&quot; data-end=&quot;6387&quot;&gt;Типові помилки з MX&lt;/h3&gt;<br />
&lt;ol data-start=&quot;6388&quot; data-end=&quot;6718&quot;&gt;<br />
&lt;li data-start=&quot;6388&quot; data-end=&quot;6468&quot;&gt;<br />
&lt;p data-start=&quot;6391&quot; data-end=&quot;6468&quot;&gt;&lt;strong data-start=&quot;6391&quot; data-end=&quot;6411&quot;&gt;MX вказали на IP&lt;/strong&gt; &amp;mdash; за стандартом MX має вказувати на &lt;strong data-start=&quot;6448&quot; data-end=&quot;6457&quot;&gt;домен&lt;/strong&gt;, не на IP.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6469&quot; data-end=&quot;6546&quot;&gt;<br />
&lt;p data-start=&quot;6472&quot; data-end=&quot;6546&quot;&gt;&lt;strong data-start=&quot;6472&quot; data-end=&quot;6509&quot;&gt;Не створили A/AAAA для mail-хоста&lt;/strong&gt;, якщо MX веде на &lt;code data-start=&quot;6527&quot; data-end=&quot;6545&quot;&gt;mail.example.com&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6547&quot; data-end=&quot;6646&quot;&gt;<br />
&lt;p data-start=&quot;6550&quot; data-end=&quot;6646&quot;&gt;&lt;strong data-start=&quot;6550&quot; data-end=&quot;6586&quot;&gt;Залишили старі MX разом з новими&lt;/strong&gt; &amp;mdash; отримаєте кашу доставки: частина листів буде йти не туди.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6647&quot; data-end=&quot;6718&quot;&gt;<br />
&lt;p data-start=&quot;6650&quot; data-end=&quot;6718&quot;&gt;&lt;strong data-start=&quot;6650&quot; data-end=&quot;6679&quot;&gt;Неправильна пріоритезація&lt;/strong&gt; &amp;mdash; backup з нижчим числом, ніж primary.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2 data-start=&quot;6725&quot; data-end=&quot;6788&quot;&gt;TXT: універсальний &amp;ldquo;контейнер&amp;rdquo; для політик і підтверджень&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;6790&quot; data-end=&quot;6805&quot;&gt;Що таке TXT&lt;/h3&gt;<br />
&lt;p data-start=&quot;6806&quot; data-end=&quot;6903&quot;&gt;&lt;strong data-start=&quot;6806&quot; data-end=&quot;6820&quot;&gt;TXT record&lt;/strong&gt; &amp;mdash; це текстове поле, куди сервіси кладуть налаштування та докази володіння доменом.&lt;/p&gt;<br />
&lt;p data-start=&quot;6905&quot; data-end=&quot;6939&quot;&gt;Найчастіше TXT використовують для:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6940&quot; data-end=&quot;7266&quot;&gt;<br />
&lt;li data-start=&quot;6940&quot; data-end=&quot;7002&quot;&gt;<br />
&lt;p data-start=&quot;6942&quot; data-end=&quot;7002&quot;&gt;&lt;strong data-start=&quot;6942&quot; data-end=&quot;6949&quot;&gt;SPF&lt;/strong&gt; &amp;mdash; політика, хто має право надсилати листи від домену&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7003&quot; data-end=&quot;7052&quot;&gt;<br />
&lt;p data-start=&quot;7005&quot; data-end=&quot;7052&quot;&gt;&lt;strong data-start=&quot;7005&quot; data-end=&quot;7013&quot;&gt;DKIM&lt;/strong&gt; &amp;mdash; публічний ключ для перевірки підпису&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7053&quot; data-end=&quot;7113&quot;&gt;<br />
&lt;p data-start=&quot;7055&quot; data-end=&quot;7113&quot;&gt;&lt;strong data-start=&quot;7055&quot; data-end=&quot;7064&quot;&gt;DMARC&lt;/strong&gt; &amp;mdash; правила обробки листів, що не пройшли SPF/DKIM&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7114&quot; data-end=&quot;7179&quot;&gt;<br />
&lt;p data-start=&quot;7116&quot; data-end=&quot;7179&quot;&gt;&lt;strong data-start=&quot;7116&quot; data-end=&quot;7138&quot;&gt;Верифікації домену&lt;/strong&gt; (Google, Meta, Stripe, Cloudflare, etc.)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7180&quot; data-end=&quot;7266&quot;&gt;<br />
&lt;p data-start=&quot;7182&quot; data-end=&quot;7266&quot;&gt;Інколи &amp;mdash; налаштувань для різних сервісів (наприклад, &lt;code data-start=&quot;7235&quot; data-end=&quot;7265&quot;&gt;google-site-verification=...&lt;/code&gt;)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;7268&quot; data-end=&quot;7281&quot;&gt;SPF (TXT)&lt;/h3&gt;<br />
&lt;p data-start=&quot;7282&quot; data-end=&quot;7299&quot;&gt;SPF виглядає так:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7300&quot; data-end=&quot;7358&quot;&gt;<br />
&lt;li data-start=&quot;7300&quot; data-end=&quot;7311&quot;&gt;<br />
&lt;p data-start=&quot;7302&quot; data-end=&quot;7311&quot;&gt;Name: &lt;code data-start=&quot;7308&quot; data-end=&quot;7311&quot;&gt;@&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7312&quot; data-end=&quot;7358&quot;&gt;<br />
&lt;p data-start=&quot;7314&quot; data-end=&quot;7358&quot;&gt;Value: &lt;code data-start=&quot;7321&quot; data-end=&quot;7358&quot;&gt;v=spf1 include:_spf.google.com ~all&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;7360&quot; data-end=&quot;7438&quot;&gt;Сенс: &amp;ldquo;дозволяю відправку з домену тим, кого вказує Google; іншим &amp;mdash; softfail&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;7440&quot; data-end=&quot;7468&quot;&gt;Якщо пошта йде з вашого VPS:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7469&quot; data-end=&quot;7501&quot;&gt;<br />
&lt;li data-start=&quot;7469&quot; data-end=&quot;7501&quot;&gt;<br />
&lt;p data-start=&quot;7471&quot; data-end=&quot;7501&quot;&gt;&lt;code data-start=&quot;7471&quot; data-end=&quot;7501&quot;&gt;v=spf1 ip4:203.0.113.10 -all&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;7503&quot; data-end=&quot;7517&quot;&gt;DKIM (TXT)&lt;/h3&gt;<br />
&lt;p data-start=&quot;7518&quot; data-end=&quot;7562&quot;&gt;DKIM зазвичай створюється на піддомені виду:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7563&quot; data-end=&quot;7598&quot;&gt;<br />
&lt;li data-start=&quot;7563&quot; data-end=&quot;7598&quot;&gt;<br />
&lt;p data-start=&quot;7565&quot; data-end=&quot;7598&quot;&gt;&lt;code data-start=&quot;7565&quot; data-end=&quot;7598&quot;&gt;selector._domainkey.example.com&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;7600&quot; data-end=&quot;7610&quot;&gt;Наприклад:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7611&quot; data-end=&quot;7670&quot;&gt;<br />
&lt;li data-start=&quot;7611&quot; data-end=&quot;7637&quot;&gt;<br />
&lt;p data-start=&quot;7613&quot; data-end=&quot;7637&quot;&gt;Name: &lt;code data-start=&quot;7619&quot; data-end=&quot;7637&quot;&gt;email._domainkey&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7638&quot; data-end=&quot;7670&quot;&gt;<br />
&lt;p data-start=&quot;7640&quot; data-end=&quot;7670&quot;&gt;Value: &lt;code data-start=&quot;7647&quot; data-end=&quot;7670&quot;&gt;v=DKIM1; k=rsa; p=...&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;7672&quot; data-end=&quot;7756&quot;&gt;&lt;code data-start=&quot;7672&quot; data-end=&quot;7682&quot;&gt;selector&lt;/code&gt; &amp;mdash; це &amp;ldquo;ім&amp;rsquo;я ключа&amp;rdquo; (ви його задаєте в поштовій системі або дає провайдер).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;7758&quot; data-end=&quot;7773&quot;&gt;DMARC (TXT)&lt;/h3&gt;<br />
&lt;p data-start=&quot;7774&quot; data-end=&quot;7819&quot;&gt;DMARC &amp;mdash; це теж TXT, але на фіксованому імені:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7820&quot; data-end=&quot;7917&quot;&gt;<br />
&lt;li data-start=&quot;7820&quot; data-end=&quot;7836&quot;&gt;<br />
&lt;p data-start=&quot;7822&quot; data-end=&quot;7836&quot;&gt;Name: &lt;code data-start=&quot;7828&quot; data-end=&quot;7836&quot;&gt;_dmarc&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7837&quot; data-end=&quot;7917&quot;&gt;<br />
&lt;p data-start=&quot;7839&quot; data-end=&quot;7917&quot;&gt;Value: &lt;code data-start=&quot;7846&quot; data-end=&quot;7917&quot;&gt;v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; adkim=s; aspf=s&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;7919&quot; data-end=&quot;8077&quot;&gt;DMARC дуже дисциплінує домен: він каже отримувачу, що робити, якщо лист не пройшов перевірки. Для бізнесу це критично, бо впливає на доставку в Inbox vs Spam.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;8079&quot; data-end=&quot;8103&quot;&gt;Типові помилки з TXT&lt;/h3&gt;<br />
&lt;p data-start=&quot;8107&quot; data-end=&quot;8219&quot;&gt;&lt;strong data-start=&quot;8107&quot; data-end=&quot;8125&quot;&gt;Два SPF-записи&lt;/strong&gt; в одному домені &amp;mdash; так не можна. SPF має бути &lt;strong data-start=&quot;8171&quot; data-end=&quot;8179&quot;&gt;один&lt;/strong&gt; (можна об&amp;rsquo;єднати правила в один рядок).&lt;/p&gt;<br />
&lt;p data-start=&quot;8223&quot; data-end=&quot;8364&quot;&gt;&lt;strong data-start=&quot;8223&quot; data-end=&quot;8249&quot;&gt;Неправильний синтаксис&lt;/strong&gt; (пробіли, лапки, розриви рядків). Більшість панелей самі &amp;ldquo;розрізають&amp;rdquo; довгі значення &amp;mdash; це нормально, але не всюди.&lt;/p&gt;<br />
&lt;p data-start=&quot;8368&quot; data-end=&quot;8440&quot;&gt;&lt;strong data-start=&quot;8368&quot; data-end=&quot;8402&quot;&gt;DKIM записали не на тому імені&lt;/strong&gt; (плутають селектор або &lt;code data-start=&quot;8426&quot; data-end=&quot;8438&quot;&gt;_domainkey&lt;/code&gt;).&lt;/p&gt;<br />
&lt;p data-start=&quot;8444&quot; data-end=&quot;8574&quot;&gt;Занадто жорстка політика DMARC одразу (&lt;code data-start=&quot;8483&quot; data-end=&quot;8493&quot;&gt;p=reject&lt;/code&gt;), коли SPF/DKIM ще не в порядку &amp;mdash; і ви самі почнете &amp;ldquo;відрізати&amp;rdquo; свою ж розсилку&lt;/p&gt;<br />
&lt;h2 data-start=&quot;8581&quot; data-end=&quot;8649&quot;&gt;Практичні приклади налаштування: сайт + пошта + базова безпека&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;8651&quot; data-end=&quot;8716&quot;&gt;Приклад 1: Сайт на VPS/хостингу, пошта через сторонній сервіс&lt;/h3&gt;<br />
&lt;p data-start=&quot;8717&quot; data-end=&quot;8776&quot;&gt;Хочете: сайт на сервері, а пошта &amp;mdash; умовно Google Workspace.&lt;/p&gt;<br />
&lt;p data-start=&quot;8778&quot; data-end=&quot;8782&quot;&gt;DNS:&lt;/p&gt;<br />
&lt;ol data-start=&quot;8783&quot; data-end=&quot;8970&quot;&gt;<br />
&lt;li data-start=&quot;8783&quot; data-end=&quot;8806&quot;&gt;<br />
&lt;p data-start=&quot;8786&quot; data-end=&quot;8806&quot;&gt;&lt;code data-start=&quot;8786&quot; data-end=&quot;8789&quot;&gt;@&lt;/code&gt; &amp;mdash; A &amp;rarr; IP сервера&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8807&quot; data-end=&quot;8843&quot;&gt;<br />
&lt;p data-start=&quot;8810&quot; data-end=&quot;8843&quot;&gt;&lt;code data-start=&quot;8810&quot; data-end=&quot;8815&quot;&gt;www&lt;/code&gt; &amp;mdash; CNAME &amp;rarr; &lt;code data-start=&quot;8826&quot; data-end=&quot;8829&quot;&gt;@&lt;/code&gt; (або A на IP)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8844&quot; data-end=&quot;8901&quot;&gt;<br />
&lt;p data-start=&quot;8847&quot; data-end=&quot;8901&quot;&gt;MX &amp;mdash; записи Google (повністю замінити на їхній список)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8902&quot; data-end=&quot;8929&quot;&gt;<br />
&lt;p data-start=&quot;8905&quot; data-end=&quot;8929&quot;&gt;TXT SPF &amp;mdash; include Google&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8930&quot; data-end=&quot;8970&quot;&gt;<br />
&lt;p data-start=&quot;8933&quot; data-end=&quot;8970&quot;&gt;DKIM/DMARC &amp;mdash; як дасть провайдер пошти&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p data-start=&quot;8972&quot; data-end=&quot;9109&quot;&gt;Тут важливий нюанс: &lt;strong data-start=&quot;8992&quot; data-end=&quot;9017&quot;&gt;MX не впливає на сайт&lt;/strong&gt;, це лише пошта. Люди часто бояться &amp;ldquo;зміню MX &amp;mdash; і сайт впаде&amp;rdquo;. Ні, сайт живе у A/AAAA/CNAME.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;9111&quot; data-end=&quot;9159&quot;&gt;Приклад 2: І сайт, і пошта на одному сервері&lt;/h3&gt;<br />
&lt;ol data-start=&quot;9160&quot; data-end=&quot;9354&quot;&gt;<br />
&lt;li data-start=&quot;9160&quot; data-end=&quot;9175&quot;&gt;<br />
&lt;p data-start=&quot;9163&quot; data-end=&quot;9175&quot;&gt;&lt;code data-start=&quot;9163&quot; data-end=&quot;9166&quot;&gt;@&lt;/code&gt; &amp;mdash; A &amp;rarr; IP&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9176&quot; data-end=&quot;9198&quot;&gt;<br />
&lt;p data-start=&quot;9179&quot; data-end=&quot;9198&quot;&gt;&lt;code data-start=&quot;9179&quot; data-end=&quot;9184&quot;&gt;www&lt;/code&gt; &amp;mdash; A або CNAME&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9199&quot; data-end=&quot;9217&quot;&gt;<br />
&lt;p data-start=&quot;9202&quot; data-end=&quot;9217&quot;&gt;&lt;code data-start=&quot;9202&quot; data-end=&quot;9208&quot;&gt;mail&lt;/code&gt; &amp;mdash; A &amp;rarr; IP&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9218&quot; data-end=&quot;9260&quot;&gt;<br />
&lt;p data-start=&quot;9221&quot; data-end=&quot;9260&quot;&gt;MX &lt;code data-start=&quot;9224&quot; data-end=&quot;9227&quot;&gt;@&lt;/code&gt; &amp;rarr; &lt;code data-start=&quot;9230&quot; data-end=&quot;9248&quot;&gt;mail.example.com&lt;/code&gt; priority 10&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9261&quot; data-end=&quot;9288&quot;&gt;<br />
&lt;p data-start=&quot;9264&quot; data-end=&quot;9288&quot;&gt;TXT SPF &amp;mdash; &lt;code data-start=&quot;9274&quot; data-end=&quot;9288&quot;&gt;ip4:... -all&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9289&quot; data-end=&quot;9327&quot;&gt;<br />
&lt;p data-start=&quot;9292&quot; data-end=&quot;9327&quot;&gt;DKIM &amp;mdash; TXT на &lt;code data-start=&quot;9306&quot; data-end=&quot;9327&quot;&gt;selector._domainkey&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9328&quot; data-end=&quot;9354&quot;&gt;<br />
&lt;p data-start=&quot;9331&quot; data-end=&quot;9354&quot;&gt;DMARC &amp;mdash; TXT на &lt;code data-start=&quot;9346&quot; data-end=&quot;9354&quot;&gt;_dmarc&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p data-start=&quot;9356&quot; data-end=&quot;9599&quot;&gt;Цей сценарій часто обирають, коли беруть &lt;strong data-start=&quot;9397&quot; data-end=&quot;9404&quot;&gt;VPS&lt;/strong&gt; або &lt;strong data-start=&quot;9409&quot; data-end=&quot;9429&quot;&gt;виділений сервер&lt;/strong&gt; і хочуть повний контроль. На практиці це дає гнучкість, але й відповідальність: треба правильно налаштувати SPF/DKIM/DMARC, PTR/rDNS, TLS, інакше доставку може штормити.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;9606&quot; data-end=&quot;9665&quot;&gt;Чек-лист: як налаштувати DNS правильно з першого разу&lt;/h2&gt;<br />
&lt;p data-start=&quot;9667&quot; data-end=&quot;9713&quot;&gt;Ось коротка &amp;ldquo;пам&amp;rsquo;ятка&amp;rdquo;, яка рятує години часу:&lt;/p&gt;<br />
&lt;p data-start=&quot;9718&quot; data-end=&quot;9727&quot;&gt;&lt;strong data-start=&quot;9718&quot; data-end=&quot;9727&quot;&gt;Сайт:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul data-start=&quot;9731&quot; data-end=&quot;9871&quot;&gt;<br />
&lt;li data-start=&quot;9731&quot; data-end=&quot;9775&quot;&gt;<br />
&lt;p data-start=&quot;9733&quot; data-end=&quot;9775&quot;&gt;Є A (і AAAA лише якщо реально працює IPv6)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9779&quot; data-end=&quot;9812&quot;&gt;<br />
&lt;p data-start=&quot;9781&quot; data-end=&quot;9812&quot;&gt;Є запис для &lt;code data-start=&quot;9793&quot; data-end=&quot;9798&quot;&gt;www&lt;/code&gt; (A або CNAME)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9816&quot; data-end=&quot;9871&quot;&gt;<br />
&lt;p data-start=&quot;9818&quot; data-end=&quot;9871&quot;&gt;TTL адекватний (на час міграції 300&amp;ndash;600, потім 3600+)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;9876&quot; data-end=&quot;9886&quot;&gt;&lt;strong data-start=&quot;9876&quot; data-end=&quot;9886&quot;&gt;Пошта:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul data-start=&quot;9890&quot; data-end=&quot;10054&quot;&gt;<br />
&lt;li data-start=&quot;9890&quot; data-end=&quot;9928&quot;&gt;<br />
&lt;p data-start=&quot;9892&quot; data-end=&quot;9928&quot;&gt;MX вказує на доменні імена, не на IP&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9932&quot; data-end=&quot;9990&quot;&gt;<br />
&lt;p data-start=&quot;9934&quot; data-end=&quot;9990&quot;&gt;Якщо MX веде на &lt;code data-start=&quot;9950&quot; data-end=&quot;9968&quot;&gt;mail.example.com&lt;/code&gt; &amp;mdash; для &lt;code data-start=&quot;9975&quot; data-end=&quot;9981&quot;&gt;mail&lt;/code&gt; є A/AAAA&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9994&quot; data-end=&quot;10054&quot;&gt;<br />
&lt;p data-start=&quot;9996&quot; data-end=&quot;10054&quot;&gt;Старі MX видалені, якщо ви переходите на нового провайдера&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;10059&quot; data-end=&quot;10076&quot;&gt;&lt;strong data-start=&quot;10059&quot; data-end=&quot;10076&quot;&gt;TXT-політики:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul data-start=&quot;10080&quot; data-end=&quot;10240&quot;&gt;<br />
&lt;li data-start=&quot;10080&quot; data-end=&quot;10100&quot;&gt;<br />
&lt;p data-start=&quot;10082&quot; data-end=&quot;10100&quot;&gt;SPF рівно &lt;strong data-start=&quot;10092&quot; data-end=&quot;10100&quot;&gt;один&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10104&quot; data-end=&quot;10157&quot;&gt;<br />
&lt;p data-start=&quot;10106&quot; data-end=&quot;10157&quot;&gt;DKIM на правильному селекторі &lt;code data-start=&quot;10136&quot; data-end=&quot;10157&quot;&gt;selector._domainkey&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10161&quot; data-end=&quot;10240&quot;&gt;<br />
&lt;p data-start=&quot;10163&quot; data-end=&quot;10240&quot;&gt;DMARC починайте з &lt;code data-start=&quot;10181&quot; data-end=&quot;10189&quot;&gt;p=none&lt;/code&gt;, далі посилюйте (quarantine/reject), коли впевнені&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;10245&quot; data-end=&quot;10266&quot;&gt;&lt;strong data-start=&quot;10245&quot; data-end=&quot;10266&quot;&gt;Типові конфлікти:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul data-start=&quot;10270&quot; data-end=&quot;10479&quot;&gt;<br />
&lt;li data-start=&quot;10270&quot; data-end=&quot;10316&quot;&gt;<br />
&lt;p data-start=&quot;10272&quot; data-end=&quot;10316&quot;&gt;На одному імені не змішуйте CNAME з A/TXT/MX&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10320&quot; data-end=&quot;10358&quot;&gt;<br />
&lt;p data-start=&quot;10322&quot; data-end=&quot;10358&quot;&gt;Не ставте AAAA, якщо IPv6 не готовий&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10362&quot; data-end=&quot;10479&quot;&gt;<br />
&lt;p data-start=&quot;10364&quot; data-end=&quot;10479&quot;&gt;Перевіряйте, що панель не додає &amp;ldquo;.example.com&amp;rdquo; автоматично (деякі панелі просять повний домен, деякі &amp;mdash; тільки хост)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;10535&quot; data-end=&quot;10864&quot;&gt;DNS &amp;mdash; штука невидима, але вона або працює як годинник, або з&amp;rsquo;їдає нерви. Коли у вас &lt;a href=&quot;https://uhost.online/hosting&quot;&gt;&lt;strong data-start=&quot;10619&quot; data-end=&quot;10639&quot;&gt;надійний хостинг&lt;/strong&gt;&lt;/a&gt; або &lt;a href=&quot;https://uhost.online/vps&quot;&gt;&lt;strong data-start=&quot;10644&quot; data-end=&quot;10659&quot;&gt;швидкий VPS&lt;/strong&gt;&lt;/a&gt; з нормальною панеллю керування DNS, половина типових проблем просто не виникає: записи створюються правильно, TTL контролюється, є підказки по SPF/DKIM, а міграції проходять без &amp;ldquo;два дні не працює пошта&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;10866&quot; data-end=&quot;11077&quot;&gt;Якщо ви на етапі &amp;ldquo;хочу купити домен і підключити хостинг/віртуалку&amp;rdquo;, не економте на базових речах: DNS, пошта і правильні записи &amp;mdash; це фундамент, на якому тримається і сайт, і доставка листів, і репутація домену.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  ]]></content:encoded>
 <pubDate>Sun, 18 Jan 2026 18:15:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Домени</category>
  </item>
  <item>
 <title>Як підключити MonoPay (plata by mono) на сайт: інтернет-еквайринг, тестовий платіж, вебхуки та “оплата частинами”</title>
 <link>https://uhost.online/blog/yak-pdklyuchiti-monopay-plata-by-mono-na-sayt-nternet-ekvayring-testoviy-platzh-vebkhuki-ta-oplata-chastinami</link>
 <guid isPermaLink="true">https://uhost.online/blog/yak-pdklyuchiti-monopay-plata-by-mono-na-sayt-nternet-ekvayring-testoviy-platzh-vebkhuki-ta-oplata-chastinami</guid>
 <description><![CDATA[Де взяти токен MonoPay, як створити перший інвойс, зробити тестовий платіж, під&rsquo;єднати webhook і перевірити підпис, правильно оновлювати статуси замовлень. Як працює &ldquo;Покупка частинами&rdquo;, підпис HMAC і фіналізація угоди. З практичними прикладами коду (PHP/Laravel/cURL).]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/19_14_32_1768330567_7355.webp" alt="Як підключити MonoPay (plata by mono) на сайт: інтернет-еквайринг, тестовий платіж, вебхуки та &ldquo;оплата частинами&rdquo;" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h2 data-start=&quot;369&quot; data-end=&quot;443&quot;&gt;Що таке MonoPay / plata by mono і як виглядає інтеграція&lt;/h2&gt;<br />
&lt;p data-start=&quot;445&quot; data-end=&quot;905&quot;&gt;Якщо дуже коротко: ти на своєму бекенді створюєш &lt;strong data-start=&quot;494&quot; data-end=&quot;515&quot;&gt;рахунок (invoice)&lt;/strong&gt; через API monobank, отримуєш у відповідь &lt;code data-start=&quot;557&quot; data-end=&quot;568&quot;&gt;invoiceId&lt;/code&gt; та &lt;code data-start=&quot;572&quot; data-end=&quot;581&quot;&gt;pageUrl&lt;/code&gt;, відправляєш користувача на оплату, а результат фіксуєш за подією, яку monobank надсилає на твій &lt;strong data-start=&quot;679&quot; data-end=&quot;693&quot;&gt;webHookUrl&lt;/strong&gt;. Сам monobank прямо рекомендує вважати &lt;strong data-start=&quot;733&quot; data-end=&quot;764&quot;&gt;webhook основним механізмом&lt;/strong&gt; отримання статусів, а метод перевірки статусу &amp;mdash; використовувати лише як &amp;ldquo;план Б&amp;rdquo; при розсинхронізації.&lt;/p&gt;<br />
&lt;p data-start=&quot;907&quot; data-end=&quot;930&quot;&gt;Ключові пункти підключення:&lt;/p&gt;<br />
&lt;ol data-start=&quot;932&quot; data-end=&quot;1555&quot;&gt;<br />
&lt;li data-start=&quot;932&quot; data-end=&quot;1010&quot;&gt;<br />
&lt;p data-start=&quot;935&quot; data-end=&quot;1010&quot;&gt;&lt;strong data-start=&quot;935&quot; data-end=&quot;961&quot;&gt;Підключення еквайрингу&lt;/strong&gt; у бізнес-кабінеті та отримання токена (X-Token).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1011&quot; data-end=&quot;1116&quot;&gt;<br />
&lt;p data-start=&quot;1014&quot; data-end=&quot;1116&quot;&gt;&lt;strong data-start=&quot;1014&quot; data-end=&quot;1035&quot;&gt;Створення інвойсу&lt;/strong&gt; (&lt;code data-start=&quot;1037&quot; data-end=&quot;1067&quot;&gt;/api/merchant/invoice/create&lt;/code&gt;) з сумою, описом, &lt;code data-start=&quot;1086&quot; data-end=&quot;1099&quot;&gt;redirectUrl&lt;/code&gt; та &lt;code data-start=&quot;1103&quot; data-end=&quot;1115&quot;&gt;webHookUrl&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1117&quot; data-end=&quot;1227&quot;&gt;<br />
&lt;p data-start=&quot;1120&quot; data-end=&quot;1227&quot;&gt;&lt;strong data-start=&quot;1120&quot; data-end=&quot;1130&quot;&gt;Оплата&lt;/strong&gt; на сторінці &lt;code data-start=&quot;1143&quot; data-end=&quot;1152&quot;&gt;pageUrl&lt;/code&gt; (картка/Apple Pay/Google Pay/оплата в застосунку &amp;mdash; залежить від сценарію).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1228&quot; data-end=&quot;1282&quot;&gt;<br />
&lt;p data-start=&quot;1231&quot; data-end=&quot;1282&quot;&gt;&lt;strong data-start=&quot;1231&quot; data-end=&quot;1242&quot;&gt;Webhook&lt;/strong&gt; від monobank про зміну статусу інвойсу.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1283&quot; data-end=&quot;1346&quot;&gt;<br />
&lt;p data-start=&quot;1286&quot; data-end=&quot;1346&quot;&gt;&lt;strong data-start=&quot;1286&quot; data-end=&quot;1309&quot;&gt;Верифікація підпису&lt;/strong&gt; webhook (ECDSA, заголовок &lt;code data-start=&quot;1336&quot; data-end=&quot;1344&quot;&gt;X-Sign&lt;/code&gt;).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1347&quot; data-end=&quot;1428&quot;&gt;<br />
&lt;p data-start=&quot;1350&quot; data-end=&quot;1428&quot;&gt;&lt;strong data-start=&quot;1350&quot; data-end=&quot;1383&quot;&gt;Підтвердження у своїй системі&lt;/strong&gt;: змінюєш статус замовлення/підписки/рахунку.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1429&quot; data-end=&quot;1555&quot;&gt;<br />
&lt;p data-start=&quot;1432&quot; data-end=&quot;1555&quot;&gt;&lt;strong data-start=&quot;1432&quot; data-end=&quot;1454&quot;&gt;Резервна перевірка&lt;/strong&gt; статусу (&lt;code data-start=&quot;1464&quot; data-end=&quot;1494&quot;&gt;/api/merchant/invoice/status&lt;/code&gt;) якщо треба звіритися.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2&gt;&lt;strong&gt;Реєстрація та підключення еквайрингу: що потрібно зробити до написання коду&lt;/strong&gt;&lt;/h2&gt;<br />
&lt;p&gt;Для підключення еквайрингу потрібно бути &lt;strong data-start=&quot;1750&quot; data-end=&quot;1775&quot;&gt;зареєстрованим як ФОП&lt;/strong&gt; і мати відкритий &lt;strong data-start=&quot;1793&quot; data-end=&quot;1815&quot;&gt;рахунок ФОП у mono&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;p&gt;Далі &amp;mdash; авторизація у &lt;strong data-start=&quot;1878&quot; data-end=&quot;1894&quot;&gt;web-кабінеті&lt;/strong&gt; та заповнення інформації про бізнес (вид діяльності, посилання на сайт/соцмережі), після чого ти обираєш і підключаєш платіжні інструменти.&lt;/p&gt;<br />
&lt;p data-start=&quot;2074&quot; data-end=&quot;2244&quot;&gt;Це важливо: якщо еквайринг не підключений, токена для API у тебе просто не буде (він &amp;ldquo;стає доступним після підключення еквайрингу&amp;rdquo;).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2246&quot; data-end=&quot;2312&quot;&gt;У документації еквайрингу є чіткі кроки отримання токена:&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;li data-start=&quot;2372&quot; data-end=&quot;2397&quot;&gt;<br />
&lt;p data-start=&quot;2375&quot; data-end=&quot;2397&quot;&gt;зайти у web-кабінет;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2398&quot; data-end=&quot;2480&quot;&gt;<br />
&lt;p data-start=&quot;2401&quot; data-end=&quot;2480&quot;&gt;перейти на вкладку потрібного методу прийому оплат і натиснути &amp;ldquo;Налаштувати&amp;rdquo;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;&lt;img style=&quot;max-width: 100%; height: 400px;&quot; src=&quot;https://uhost.online/uploads/blog/images/image_1768322100_3839.webp&quot; alt=&quot;&quot; width=&quot;640&quot;&gt;&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;Тепер можна створити токен&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;&lt;img style=&quot;max-width: 100%; height: 407px;&quot; src=&quot;https://uhost.online/uploads/blog/images/image_1768322130_9769.webp&quot; alt=&quot;&quot; width=&quot;640&quot;&gt;&lt;/p&gt;<br />
&lt;p&gt;Цей токен ти потім передаєш у заголовку &lt;strong data-start=&quot;2597&quot; data-end=&quot;2610&quot;&gt;&lt;code data-start=&quot;2599&quot; data-end=&quot;2608&quot;&gt;X-Token&lt;/code&gt;&lt;/strong&gt; для API-запитів.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2667&quot; data-end=&quot;2689&quot;&gt;Тестове середовище&lt;/h3&gt;<br />
&lt;p data-start=&quot;2690&quot; data-end=&quot;2988&quot;&gt;monobank дає можливість працювати у &lt;strong data-start=&quot;2726&quot; data-end=&quot;2750&quot;&gt;тестовому середовищі&lt;/strong&gt;: для цього потрібен &lt;strong data-start=&quot;2771&quot; data-end=&quot;2789&quot;&gt;тестовий токен&lt;/strong&gt;, а &amp;ldquo;карткові&amp;rdquo; дані можуть бути будь-якими валідними (з валідним номером за алгоритмом Луна) &amp;mdash; фінансова авторизація не відбудеться, але інтеграцію ти проганяєш.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2690&quot; data-end=&quot;2988&quot;&gt;Архітектура інтеграції: що зберігати у БД&lt;/h2&gt;<br />
&lt;p data-start=&quot;3083&quot; data-end=&quot;3226&quot;&gt;Щоб інтеграція була контрольована (і щоб потім не розбиратися, чому &amp;ldquo;гроші прийшли, а замовлення не оплатилось&amp;rdquo;), я раджу зберігати щонайменше:&lt;code data-start=&quot;3238&quot; data-end=&quot;3248&quot;&gt;payments&lt;/code&gt; / &lt;code data-start=&quot;3251&quot; data-end=&quot;3261&quot;&gt;invoices&lt;/code&gt;&lt;/p&gt;<br />
&lt;ul data-start=&quot;3265&quot; data-end=&quot;3687&quot;&gt;<br />
&lt;li data-start=&quot;3265&quot; data-end=&quot;3284&quot;&gt;<br />
&lt;p data-start=&quot;3267&quot; data-end=&quot;3284&quot;&gt;&lt;code data-start=&quot;3267&quot; data-end=&quot;3271&quot;&gt;id&lt;/code&gt; (внутрішній)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3285&quot; data-end=&quot;3330&quot;&gt;<br />
&lt;p data-start=&quot;3287&quot; data-end=&quot;3330&quot;&gt;&lt;code data-start=&quot;3287&quot; data-end=&quot;3297&quot;&gt;order_id&lt;/code&gt; (або інший бізнес-ідентифікатор)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3331&quot; data-end=&quot;3358&quot;&gt;<br />
&lt;p data-start=&quot;3333&quot; data-end=&quot;3358&quot;&gt;&lt;code data-start=&quot;3333&quot; data-end=&quot;3345&quot;&gt;invoice_id&lt;/code&gt; (з monobank)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3359&quot; data-end=&quot;3413&quot;&gt;<br />
&lt;p data-start=&quot;3361&quot; data-end=&quot;3413&quot;&gt;&lt;code data-start=&quot;3361&quot; data-end=&quot;3369&quot;&gt;amount&lt;/code&gt; (у мінімальних одиницях, наприклад копійки)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3414&quot; data-end=&quot;3454&quot;&gt;<br />
&lt;p data-start=&quot;3416&quot; data-end=&quot;3454&quot;&gt;&lt;code data-start=&quot;3416&quot; data-end=&quot;3421&quot;&gt;ccy&lt;/code&gt; (ISO 4217, за замовчуванням 980)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3455&quot; data-end=&quot;3515&quot;&gt;<br />
&lt;p data-start=&quot;3457&quot; data-end=&quot;3515&quot;&gt;&lt;code data-start=&quot;3457&quot; data-end=&quot;3465&quot;&gt;status&lt;/code&gt; (created/processing/success/expired/failure тощо)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3516&quot; data-end=&quot;3544&quot;&gt;<br />
&lt;p data-start=&quot;3518&quot; data-end=&quot;3544&quot;&gt;&lt;code data-start=&quot;3518&quot; data-end=&quot;3530&quot;&gt;created_at&lt;/code&gt;, &lt;code data-start=&quot;3532&quot; data-end=&quot;3544&quot;&gt;updated_at&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3545&quot; data-end=&quot;3625&quot;&gt;<br />
&lt;p data-start=&quot;3547&quot; data-end=&quot;3625&quot;&gt;&lt;code data-start=&quot;3547&quot; data-end=&quot;3562&quot;&gt;modified_date&lt;/code&gt; (з monobank &amp;mdash; критично для правильного упорядкування вебхуків)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3626&quot; data-end=&quot;3687&quot;&gt;<br />
&lt;p data-start=&quot;3628&quot; data-end=&quot;3687&quot;&gt;&lt;code data-start=&quot;3628&quot; data-end=&quot;3646&quot;&gt;raw_last_payload&lt;/code&gt; (не обов&amp;rsquo;язково, але корисно для дебагу)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3689&quot; data-end=&quot;3965&quot;&gt;&lt;strong data-start=&quot;3689&quot; data-end=&quot;3722&quot;&gt;Чому &lt;code data-start=&quot;3696&quot; data-end=&quot;3710&quot;&gt;modifiedDate&lt;/code&gt; важливий?&lt;/strong&gt;&lt;br data-start=&quot;3722&quot; data-end=&quot;3725&quot;&gt;monobank попереджає, що &lt;strong data-start=&quot;3749&quot; data-end=&quot;3792&quot;&gt;вебхуки не гарантуються &amp;ldquo;один за одним&amp;rdquo;&lt;/strong&gt;, і теоретично &lt;code data-start=&quot;3807&quot; data-end=&quot;3823&quot;&gt;status=success&lt;/code&gt; може прийти раніше за &lt;code data-start=&quot;3846&quot; data-end=&quot;3865&quot;&gt;status=processing&lt;/code&gt;. Тому &amp;ldquo;правильна істина&amp;rdquo; &amp;mdash; це подія з більшим &lt;code data-start=&quot;3912&quot; data-end=&quot;3926&quot;&gt;modifiedDate&lt;/code&gt;.&lt;/p&gt;<br />
&lt;p data-start=&quot;3689&quot; data-end=&quot;3965&quot;&gt;Також врахуй повтори: бекенд еквайрингу робить &lt;strong data-start=&quot;4014&quot; data-end=&quot;4033&quot;&gt;до 3 спроб POST&lt;/strong&gt; вебхуку, доки не отримає &lt;code data-start=&quot;4059&quot; data-end=&quot;4067&quot;&gt;200 OK&lt;/code&gt;. Це означає: твій webhook-handler має бути &lt;strong data-start=&quot;4111&quot; data-end=&quot;4128&quot;&gt;ідемпотентним&lt;/strong&gt; (повторне отримання того ж стану не повинно ламати систему).&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4236&quot; data-end=&quot;4313&quot;&gt;Створення рахунку (invoice/create): ключові параметри та приклад запиту&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;4315&quot; data-end=&quot;4327&quot;&gt;Ендпоінт&lt;/h3&gt;<br />
&lt;p data-start=&quot;4328&quot; data-end=&quot;4362&quot;&gt;Офіційний метод створення рахунку:&lt;/p&gt;<br />
&lt;p data-start=&quot;4366&quot; data-end=&quot;4464&quot;&gt;&lt;code data-start=&quot;4366&quot; data-end=&quot;4424&quot;&gt;POST &lt;a href=&quot;https://api.monobank.ua/api/merchant/invoice/create&quot;&gt;https://api.monobank.ua/api/merchant/invoice/create&lt;/a&gt;&lt;/code&gt;&lt;/p&gt;<br />
&lt;h3 data-start=&quot;4466&quot; data-end=&quot;4479&quot;&gt;Заголовки&lt;/h3&gt;<br />
&lt;ul data-start=&quot;4480&quot; data-end=&quot;4667&quot;&gt;<br />
&lt;li data-start=&quot;4480&quot; data-end=&quot;4511&quot;&gt;<br />
&lt;p data-start=&quot;4482&quot; data-end=&quot;4511&quot;&gt;&lt;code data-start=&quot;4482&quot; data-end=&quot;4511&quot;&gt;X-Token: &amp;lt;токен з кабінету&amp;gt;&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4512&quot; data-end=&quot;4667&quot;&gt;<br />
&lt;p data-start=&quot;4514&quot; data-end=&quot;4667&quot;&gt;опційно: &lt;code data-start=&quot;4523&quot; data-end=&quot;4530&quot;&gt;X-Cms&lt;/code&gt; / &lt;code data-start=&quot;4533&quot; data-end=&quot;4548&quot;&gt;X-Cms-Version&lt;/code&gt; &amp;mdash; якщо ти робиш модуль для CMS (корисно, якщо інтеграція пакується як плагін).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;4669&quot; data-end=&quot;4708&quot;&gt;Тіло запиту: що мінімально потрібно&lt;/h3&gt;<br />
&lt;p data-start=&quot;4709&quot; data-end=&quot;4744&quot;&gt;Мінімально зазвичай використовують:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4746&quot; data-end=&quot;5351&quot;&gt;<br />
&lt;li data-start=&quot;4746&quot; data-end=&quot;4809&quot;&gt;<br />
&lt;p data-start=&quot;4748&quot; data-end=&quot;4809&quot;&gt;&lt;code data-start=&quot;4748&quot; data-end=&quot;4756&quot;&gt;amount&lt;/code&gt; &amp;mdash; сума у мінімальних одиницях (для гривні &amp;mdash; копійки)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4810&quot; data-end=&quot;4840&quot;&gt;<br />
&lt;p data-start=&quot;4812&quot; data-end=&quot;4840&quot;&gt;&lt;code data-start=&quot;4812&quot; data-end=&quot;4817&quot;&gt;ccy&lt;/code&gt; &amp;mdash; 980 за замовчуванням&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4841&quot; data-end=&quot;4991&quot;&gt;<br />
&lt;p data-start=&quot;4843&quot; data-end=&quot;4991&quot;&gt;&lt;code data-start=&quot;4843&quot; data-end=&quot;4861&quot;&gt;merchantPaymInfo&lt;/code&gt; &amp;mdash; &amp;ldquo;людська&amp;rdquo; інформація про платіж: &lt;code data-start=&quot;4897&quot; data-end=&quot;4908&quot;&gt;reference&lt;/code&gt;, &lt;code data-start=&quot;4910&quot; data-end=&quot;4923&quot;&gt;destination&lt;/code&gt;, &lt;code data-start=&quot;4925&quot; data-end=&quot;4934&quot;&gt;comment&lt;/code&gt;, кошик &lt;code data-start=&quot;4942&quot; data-end=&quot;4955&quot;&gt;basketOrder&lt;/code&gt; (особливо актуально для e-commerce)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4992&quot; data-end=&quot;5076&quot;&gt;<br />
&lt;p data-start=&quot;4994&quot; data-end=&quot;5076&quot;&gt;&lt;code data-start=&quot;4994&quot; data-end=&quot;5007&quot;&gt;redirectUrl&lt;/code&gt; &amp;mdash; куди повернути клієнта після завершення оплати (успіх або помилка)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5077&quot; data-end=&quot;5153&quot;&gt;<br />
&lt;p data-start=&quot;5079&quot; data-end=&quot;5153&quot;&gt;&lt;code data-start=&quot;5079&quot; data-end=&quot;5091&quot;&gt;webHookUrl&lt;/code&gt; &amp;mdash; куди monobank надсилатиме статус при зміні (крім &lt;code data-start=&quot;5143&quot; data-end=&quot;5152&quot;&gt;expired&lt;/code&gt;)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5154&quot; data-end=&quot;5228&quot;&gt;<br />
&lt;p data-start=&quot;5156&quot; data-end=&quot;5228&quot;&gt;&lt;code data-start=&quot;5156&quot; data-end=&quot;5166&quot;&gt;validity&lt;/code&gt; &amp;mdash; строк життя рахунку в секундах (за замовчуванням 24 години)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5229&quot; data-end=&quot;5351&quot;&gt;<br />
&lt;p data-start=&quot;5231&quot; data-end=&quot;5351&quot;&gt;&lt;code data-start=&quot;5231&quot; data-end=&quot;5244&quot;&gt;paymentType&lt;/code&gt; &amp;mdash; &lt;code data-start=&quot;5247&quot; data-end=&quot;5254&quot;&gt;debit&lt;/code&gt; або &lt;code data-start=&quot;5259&quot; data-end=&quot;5265&quot;&gt;hold&lt;/code&gt; (якщо потрібен холд з подальшою фіналізацією)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;5353&quot; data-end=&quot;5377&quot;&gt;У відповідь ти отримуєш:&lt;/p&gt;<br />
&lt;ul data-start=&quot;5378&quot; data-end=&quot;5465&quot;&gt;<br />
&lt;li data-start=&quot;5378&quot; data-end=&quot;5391&quot;&gt;<br />
&lt;p data-start=&quot;5380&quot; data-end=&quot;5391&quot;&gt;&lt;code data-start=&quot;5380&quot; data-end=&quot;5391&quot;&gt;invoiceId&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5392&quot; data-end=&quot;5465&quot;&gt;<br />
&lt;p data-start=&quot;5394&quot; data-end=&quot;5465&quot;&gt;&lt;code data-start=&quot;5394&quot; data-end=&quot;5403&quot;&gt;pageUrl&lt;/code&gt; (посилання на оплату)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;5467&quot; data-end=&quot;5496&quot;&gt;Приклад на PHP 8.x (cURL)&lt;/h3&gt;<br />
&lt;pre&gt;&lt;code&gt;<br />
$token = getenv(&#039;MONO_X_TOKEN&#039;);<br />
<br />
$payload = [<br />
&amp;nbsp; &amp;nbsp; &#039;amount&#039; =&amp;gt; 19900, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 199.00 UAH -&amp;gt; у копійках<br />
&amp;nbsp; &amp;nbsp; &#039;ccy&#039; &amp;nbsp; &amp;nbsp;=&amp;gt; 980,<br />
&amp;nbsp; &amp;nbsp; &#039;merchantPaymInfo&#039; =&amp;gt; [<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;reference&#039; &amp;nbsp; =&amp;gt; &#039;ORDER-100045&#039;, &amp;nbsp; &amp;nbsp; // твій унікальний референс<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;destination&#039; =&amp;gt; &#039;Оплата замовлення #100045&#039;,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;comment&#039; &amp;nbsp; &amp;nbsp; =&amp;gt; &#039;Дякуємо за покупку&#039;,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;basketOrder&#039; =&amp;gt; [<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;name&#039; &amp;nbsp;=&amp;gt; &#039;Підписка PRO, 1 місяць&#039;,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;qty&#039; &amp;nbsp; =&amp;gt; 1,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;sum&#039; &amp;nbsp; =&amp;gt; 19900,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;total&#039; =&amp;gt; 19900,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;unit&#039; &amp;nbsp;=&amp;gt; &#039;шт.&#039;,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;code&#039; &amp;nbsp;=&amp;gt; &#039;SUB-PRO-1M&#039;,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ],<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ],<br />
&amp;nbsp; &amp;nbsp; ],<br />
&amp;nbsp; &amp;nbsp; &#039;redirectUrl&#039; =&amp;gt; &#039;https://example.com/pay/return&#039;,<br />
&amp;nbsp; &amp;nbsp; &#039;webHookUrl&#039; &amp;nbsp;=&amp;gt; &#039;https://example.com/pay/mono/webhook&#039;,<br />
&amp;nbsp; &amp;nbsp; &#039;validity&#039; &amp;nbsp; &amp;nbsp;=&amp;gt; 3600,<br />
&amp;nbsp; &amp;nbsp; &#039;paymentType&#039; =&amp;gt; &#039;debit&#039;,<br />
];<br />
<br />
$ch = curl_init(&#039;https://api.monobank.ua/api/merchant/invoice/create&#039;);<br />
curl_setopt_array($ch, [<br />
&amp;nbsp; &amp;nbsp; CURLOPT_POST &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt; true,<br />
&amp;nbsp; &amp;nbsp; CURLOPT_RETURNTRANSFER =&amp;gt; true,<br />
&amp;nbsp; &amp;nbsp; CURLOPT_HTTPHEADER &amp;nbsp; &amp;nbsp; =&amp;gt; [<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;Content-Type: application/json&#039;,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#039;X-Token: &#039; . $token,<br />
&amp;nbsp; &amp;nbsp; ],<br />
&amp;nbsp; &amp;nbsp; CURLOPT_POSTFIELDS &amp;nbsp; &amp;nbsp; =&amp;gt; json_encode($payload, JSON_UNESCAPED_UNICODE),<br />
]);<br />
<br />
$response = curl_exec($ch);<br />
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);<br />
curl_close($ch);<br />
<br />
if ($httpCode !== 200) {<br />
&amp;nbsp; &amp;nbsp; throw new RuntimeException(&quot;Monobank create invoice failed: HTTP $httpCode; body=$response&quot;);<br />
}<br />
<br />
$data = json_decode($response, true);<br />
<br />
$invoiceId = $data[&#039;invoiceId&#039;];<br />
$pageUrl &amp;nbsp; = $data[&#039;pageUrl&#039;];<br />
<br />
// 1) зберігаєш invoiceId у БД разом із order_id<br />
// 2) редіректиш клієнта на $pageUrl<br />
header(&#039;Location: &#039; . $pageUrl, true, 302);<br />
exit;&lt;/code&gt;&lt;/pre&gt;<br />
&lt;p data-start=&quot;7146&quot; data-end=&quot;7346&quot;&gt;Семантика полів і сам ендпоінт відповідають документації: сума в мінімальних одиницях, &lt;code data-start=&quot;7233&quot; data-end=&quot;7246&quot;&gt;redirectUrl&lt;/code&gt;, &lt;code data-start=&quot;7248&quot; data-end=&quot;7260&quot;&gt;webHookUrl&lt;/code&gt;, а відповідь містить &lt;code data-start=&quot;7282&quot; data-end=&quot;7293&quot;&gt;invoiceId&lt;/code&gt; і &lt;code data-start=&quot;7296&quot; data-end=&quot;7305&quot;&gt;pageUrl&lt;/code&gt;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;7146&quot; data-end=&quot;7346&quot;&gt;Повернення користувача: redirectUrl&lt;/h2&gt;<br />
&lt;p data-start=&quot;7427&quot; data-end=&quot;7517&quot;&gt;Після оплати користувача перекине на твій &lt;code data-start=&quot;7469&quot; data-end=&quot;7482&quot;&gt;redirectUrl&lt;/code&gt; (GET). Тут часто роблять сторінки:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7519&quot; data-end=&quot;7603&quot;&gt;<br />
&lt;li data-start=&quot;7519&quot; data-end=&quot;7563&quot;&gt;<br />
&lt;p data-start=&quot;7521&quot; data-end=&quot;7563&quot;&gt;&amp;ldquo;Оплата успішна, ми обробляємо замовлення&amp;rdquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7564&quot; data-end=&quot;7603&quot;&gt;<br />
&lt;p data-start=&quot;7566&quot; data-end=&quot;7603&quot;&gt;&amp;ldquo;Оплата не пройшла, спробуйте ще раз&amp;rdquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;7605&quot; data-end=&quot;7817&quot;&gt;Але принципово важливо: &lt;strong data-start=&quot;7629&quot; data-end=&quot;7693&quot;&gt;не треба підтверджувати оплату лише на основі redirect-факту&lt;/strong&gt;.&lt;br data-start=&quot;7694&quot; data-end=&quot;7697&quot;&gt;Redirect &amp;mdash; це клієнтський UX, який можна перервати, підмінити, зафаєрволити, або користувач може просто закрити вкладку.&lt;/p&gt;<br />
&lt;p data-start=&quot;7605&quot; data-end=&quot;7817&quot;&gt;На стороні серверу треба оброблювати:&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li data-start=&quot;7843&quot; data-end=&quot;7894&quot;&gt;<br />
&lt;p data-start=&quot;7845&quot; data-end=&quot;7894&quot;&gt;webhook зі статусом (з верифікацією підпису), або&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7895&quot; data-end=&quot;7969&quot;&gt;<br />
&lt;p data-start=&quot;7897&quot; data-end=&quot;7969&quot;&gt;резервно: запит статуса інвойсу.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2&gt;Webhook: прийом подій і верифікація підпису (ECDSA, X-Sign)&lt;/h2&gt;<br />
&lt;h3 data-start=&quot;8043&quot; data-end=&quot;8067&quot;&gt;Як приходять вебхуки&lt;/h3&gt;<br />
&lt;p data-start=&quot;8068&quot; data-end=&quot;8315&quot;&gt;monobank надсилає POST на &lt;code data-start=&quot;8094&quot; data-end=&quot;8106&quot;&gt;webHookUrl&lt;/code&gt; при зміні статусу (крім &lt;code data-start=&quot;8131&quot; data-end=&quot;8140&quot;&gt;expired&lt;/code&gt;), тіло запиту &lt;strong data-start=&quot;8155&quot; data-end=&quot;8168&quot;&gt;ідентичне&lt;/strong&gt; відповіді методу &amp;ldquo;Статус рахунку&amp;rdquo;, а в заголовках є &lt;code data-start=&quot;8221&quot; data-end=&quot;8229&quot;&gt;X-Sign&lt;/code&gt; &amp;mdash; підпис тіла webhook по стандарту &lt;strong data-start=&quot;8265&quot; data-end=&quot;8274&quot;&gt;ECDSA&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;p data-start=&quot;8068&quot; data-end=&quot;8315&quot;&gt;Також важливі дві особливості:&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li data-start=&quot;8068&quot; data-end=&quot;8315&quot;&gt;&lt;strong data-start=&quot;8350&quot; data-end=&quot;8364&quot;&gt;до 3 спроб&lt;/strong&gt; доставки до &lt;code data-start=&quot;8377&quot; data-end=&quot;8385&quot;&gt;200 OK&lt;/code&gt;;&lt;/li&gt;<br />
&lt;li data-start=&quot;8068&quot; data-end=&quot;8315&quot;&gt;події можуть прийти &lt;strong data-start=&quot;8451&quot; data-end=&quot;8482&quot;&gt;не в хронологічному порядку&lt;/strong&gt;, орієнтуйся на &lt;code data-start=&quot;8498&quot; data-end=&quot;8512&quot;&gt;modifiedDate&lt;/code&gt;.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;8555&quot; data-end=&quot;8585&quot;&gt;Отримання публічного ключа&lt;/h3&gt;<br />
&lt;p data-start=&quot;8586&quot; data-end=&quot;8774&quot;&gt;У прикладі з документації вказано, що публічний ключ для верифікації потрібно отримати через ендпоінт &lt;code data-start=&quot;8688&quot; data-end=&quot;8733&quot;&gt;&lt;a href=&quot;https://api.monobank.ua/api/merchant/pubkey&quot;&gt;https://api.monobank.ua/api/merchant/pubkey&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;8776&quot; data-end=&quot;8814&quot;&gt;Практичний PHP-приклад верифікації&lt;/h3&gt;<br />
&lt;p data-start=&quot;8815&quot; data-end=&quot;8881&quot;&gt;Нижче &amp;mdash; приклад, адаптований під реальний webhook-handler. Логіка:&lt;/p&gt;<br />
&lt;ol data-start=&quot;8882&quot; data-end=&quot;9047&quot;&gt;<br />
&lt;li data-start=&quot;8882&quot; data-end=&quot;8904&quot;&gt;<br />
&lt;p data-start=&quot;8885&quot; data-end=&quot;8904&quot;&gt;читаємо raw body;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8905&quot; data-end=&quot;8926&quot;&gt;<br />
&lt;p data-start=&quot;8908&quot; data-end=&quot;8926&quot;&gt;беремо &lt;code data-start=&quot;8915&quot; data-end=&quot;8923&quot;&gt;X-Sign&lt;/code&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8927&quot; data-end=&quot;8967&quot;&gt;<br />
&lt;p data-start=&quot;8930&quot; data-end=&quot;8967&quot;&gt;верифікуємо через &lt;code data-start=&quot;8948&quot; data-end=&quot;8964&quot;&gt;openssl_verify&lt;/code&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8968&quot; data-end=&quot;9047&quot;&gt;<br />
&lt;p data-start=&quot;8971&quot; data-end=&quot;9047&quot;&gt;якщо ок &amp;mdash; парсимо JSON і оновлюємо статус у БД з урахуванням &lt;code data-start=&quot;9032&quot; data-end=&quot;9046&quot;&gt;modifiedDate&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;pre&gt;&lt;code&gt;function getMonoPubKeyPem(string $token): string<br />
{<br />
&amp;nbsp; &amp;nbsp; $ch = curl_init(&#039;https://api.monobank.ua/api/merchant/pubkey&#039;);<br />
&amp;nbsp; &amp;nbsp; curl_setopt_array($ch, [<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CURLOPT_RETURNTRANSFER =&amp;gt; true,<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CURLOPT_HTTPHEADER &amp;nbsp; &amp;nbsp; =&amp;gt; [&#039;X-Token: &#039; . $token],<br />
&amp;nbsp; &amp;nbsp; ]);<br />
&amp;nbsp; &amp;nbsp; $resp = curl_exec($ch);<br />
&amp;nbsp; &amp;nbsp; $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);<br />
&amp;nbsp; &amp;nbsp; curl_close($ch);<br />
<br />
&amp;nbsp; &amp;nbsp; if ($code !== 200) {<br />
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new RuntimeException(&quot;Cannot fetch monobank pubkey: HTTP $code; body=$resp&quot;);<br />
&amp;nbsp; &amp;nbsp; }<br />
<br />
&amp;nbsp; &amp;nbsp; // У документації приклади працюють з base64-представленням PEM.<br />
&amp;nbsp; &amp;nbsp; // Тут припустимо, що API повертає base64-рядок, який треба decode.<br />
&amp;nbsp; &amp;nbsp; return base64_decode(trim($resp));<br />
}<br />
<br />
$token = getenv(&#039;MONO_X_TOKEN&#039;);<br />
<br />
$rawBody = file_get_contents(&#039;php://input&#039;);<br />
$xSign &amp;nbsp; = $_SERVER[&#039;HTTP_X_SIGN&#039;] ?? &#039;&#039;;<br />
<br />
if ($xSign === &#039;&#039;) {<br />
&amp;nbsp; &amp;nbsp; http_response_code(400);<br />
&amp;nbsp; &amp;nbsp; echo &#039;Missing X-Sign&#039;;<br />
&amp;nbsp; &amp;nbsp; exit;<br />
}<br />
<br />
$signature = base64_decode($xSign);<br />
$pubKeyPem = getMonoPubKeyPem($token);<br />
<br />
$pubKey = openssl_get_publickey($pubKeyPem);<br />
if ($pubKey === false) {<br />
&amp;nbsp; &amp;nbsp; http_response_code(500);<br />
&amp;nbsp; &amp;nbsp; echo &#039;Invalid pubkey&#039;;<br />
&amp;nbsp; &amp;nbsp; exit;<br />
}<br />
<br />
// OPENSSL_ALGO_SHA256 &amp;mdash; як у прикладах документації<br />
$ok = openssl_verify($rawBody, $signature, $pubKey, OPENSSL_ALGO_SHA256);<br />
<br />
if ($ok !== 1) {<br />
&amp;nbsp; &amp;nbsp; http_response_code(401);<br />
&amp;nbsp; &amp;nbsp; echo &#039;Invalid signature&#039;;<br />
&amp;nbsp; &amp;nbsp; exit;<br />
}<br />
<br />
$payload = json_decode($rawBody, true);<br />
if (!is_array($payload) || empty($payload[&#039;invoiceId&#039;])) {<br />
&amp;nbsp; &amp;nbsp; http_response_code(400);<br />
&amp;nbsp; &amp;nbsp; echo &#039;Bad payload&#039;;<br />
&amp;nbsp; &amp;nbsp; exit;<br />
}<br />
<br />
$invoiceId &amp;nbsp; &amp;nbsp;= $payload[&#039;invoiceId&#039;];<br />
$status &amp;nbsp; &amp;nbsp; &amp;nbsp; = $payload[&#039;status&#039;] ?? &#039;unknown&#039;;<br />
$modifiedDate = $payload[&#039;modifiedDate&#039;] ?? null;<br />
<br />
// Далі &amp;mdash; твоя бізнес-логіка:<br />
// 1) знайти запис в БД за invoiceId<br />
// 2) порівняти modifiedDate (не оновлювати старішим payload)<br />
// 3) якщо status=success -&amp;gt; відмітити замовлення як оплачене<br />
// 4) повернути 200 OK, щоб monobank не ретраїв webhook<br />
http_response_code(200);<br />
echo &#039;OK&#039;;&lt;/code&gt;&lt;/pre&gt;<br />
&lt;p&gt;Важливі деталі (вони з документації):&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;code data-start=&quot;11001&quot; data-end=&quot;11009&quot;&gt;X-Sign&lt;/code&gt; &amp;mdash; ECDSA-підпис тіла webhook;&lt;/li&gt;<br />
&lt;li&gt;&lt;code data-start=&quot;11083&quot; data-end=&quot;11097&quot;&gt;modifiedDate&lt;/code&gt; &amp;mdash; головний критерій &amp;ldquo;який статус актуальний&amp;rdquo;;&lt;/li&gt;<br />
&lt;li&gt;тіло webhook відповідає структурі &amp;ldquo;статусу рахунку&amp;rdquo;, де є &lt;code data-start=&quot;11246&quot; data-end=&quot;11257&quot;&gt;invoiceId&lt;/code&gt;, &lt;code data-start=&quot;11259&quot; data-end=&quot;11267&quot;&gt;status&lt;/code&gt;, суми, причини помилки тощо.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2&gt;Статуси та поля відповіді: що реально використовувати в бізнес-логіці&lt;/h2&gt;<br />
&lt;p data-start=&quot;11420&quot; data-end=&quot;11484&quot;&gt;Метод статусу інвойсу повертає корисний набір полів, серед яких:&lt;/p&gt;<br />
&lt;ul data-start=&quot;11486&quot; data-end=&quot;11830&quot;&gt;<br />
&lt;li data-start=&quot;11486&quot; data-end=&quot;11499&quot;&gt;<br />
&lt;p data-start=&quot;11488&quot; data-end=&quot;11499&quot;&gt;&lt;code data-start=&quot;11488&quot; data-end=&quot;11499&quot;&gt;invoiceId&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;11500&quot; data-end=&quot;11532&quot;&gt;<br />
&lt;p data-start=&quot;11502&quot; data-end=&quot;11532&quot;&gt;&lt;code data-start=&quot;11502&quot; data-end=&quot;11510&quot;&gt;status&lt;/code&gt; (наприклад &lt;code data-start=&quot;11522&quot; data-end=&quot;11531&quot;&gt;created&lt;/code&gt;)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;11533&quot; data-end=&quot;11588&quot;&gt;<br />
&lt;p data-start=&quot;11535&quot; data-end=&quot;11588&quot;&gt;&lt;code data-start=&quot;11535&quot; data-end=&quot;11550&quot;&gt;failureReason&lt;/code&gt; та &lt;code data-start=&quot;11554&quot; data-end=&quot;11563&quot;&gt;errCode&lt;/code&gt; (коли платіж не пройшов)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;11589&quot; data-end=&quot;11621&quot;&gt;<br />
&lt;p data-start=&quot;11591&quot; data-end=&quot;11621&quot;&gt;&lt;code data-start=&quot;11591&quot; data-end=&quot;11599&quot;&gt;amount&lt;/code&gt;, &lt;code data-start=&quot;11601&quot; data-end=&quot;11606&quot;&gt;ccy&lt;/code&gt;, &lt;code data-start=&quot;11608&quot; data-end=&quot;11621&quot;&gt;finalAmount&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;11622&quot; data-end=&quot;11653&quot;&gt;<br />
&lt;p data-start=&quot;11624&quot; data-end=&quot;11653&quot;&gt;&lt;code data-start=&quot;11624&quot; data-end=&quot;11637&quot;&gt;createdDate&lt;/code&gt;, &lt;code data-start=&quot;11639&quot; data-end=&quot;11653&quot;&gt;modifiedDate&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;11654&quot; data-end=&quot;11682&quot;&gt;<br />
&lt;p data-start=&quot;11656&quot; data-end=&quot;11682&quot;&gt;&lt;code data-start=&quot;11656&quot; data-end=&quot;11667&quot;&gt;reference&lt;/code&gt;, &lt;code data-start=&quot;11669&quot; data-end=&quot;11682&quot;&gt;destination&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;11683&quot; data-end=&quot;11761&quot;&gt;<br />
&lt;p data-start=&quot;11685&quot; data-end=&quot;11761&quot;&gt;&lt;code data-start=&quot;11685&quot; data-end=&quot;11698&quot;&gt;paymentInfo&lt;/code&gt; (маскована картка, &lt;code data-start=&quot;11718&quot; data-end=&quot;11723&quot;&gt;rrn&lt;/code&gt;, &lt;code data-start=&quot;11725&quot; data-end=&quot;11733&quot;&gt;tranId&lt;/code&gt;, тощо &amp;mdash; корисно для звірок)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;11762&quot; data-end=&quot;11830&quot;&gt;<br />
&lt;p data-start=&quot;11764&quot; data-end=&quot;11830&quot;&gt;&lt;code data-start=&quot;11764&quot; data-end=&quot;11776&quot;&gt;cancelList&lt;/code&gt;, інші об&amp;rsquo;єкти&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;У прикладі з документації прямо видно ці поля у response sample.&lt;/p&gt;<br />
&lt;p data-start=&quot;11938&quot; data-end=&quot;12031&quot;&gt;&lt;strong data-start=&quot;11938&quot; data-end=&quot;11965&quot;&gt;Практична рекомендація:&lt;/strong&gt;&lt;br data-start=&quot;11965&quot; data-end=&quot;11968&quot;&gt;для більшості e-commerce сценаріїв ти використовуєш як мінімум:&lt;/p&gt;<br />
&lt;ul data-start=&quot;12032&quot; data-end=&quot;12143&quot;&gt;<br />
&lt;li data-start=&quot;12032&quot; data-end=&quot;12042&quot;&gt;<br />
&lt;p data-start=&quot;12034&quot; data-end=&quot;12042&quot;&gt;&lt;code data-start=&quot;12034&quot; data-end=&quot;12042&quot;&gt;status&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;12043&quot; data-end=&quot;12056&quot;&gt;<br />
&lt;p data-start=&quot;12045&quot; data-end=&quot;12056&quot;&gt;&lt;code data-start=&quot;12045&quot; data-end=&quot;12056&quot;&gt;invoiceId&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;12057&quot; data-end=&quot;12073&quot;&gt;<br />
&lt;p data-start=&quot;12059&quot; data-end=&quot;12073&quot;&gt;&lt;code data-start=&quot;12059&quot; data-end=&quot;12073&quot;&gt;modifiedDate&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;12074&quot; data-end=&quot;12143&quot;&gt;<br />
&lt;p data-start=&quot;12076&quot; data-end=&quot;12143&quot;&gt;&lt;code data-start=&quot;12076&quot; data-end=&quot;12089&quot;&gt;finalAmount&lt;/code&gt; (якщо в тебе можливі часткові списання/комісії/холди)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;12145&quot; data-end=&quot;12316&quot;&gt;А &lt;code data-start=&quot;12147&quot; data-end=&quot;12162&quot;&gt;failureReason&lt;/code&gt; / &lt;code data-start=&quot;12165&quot; data-end=&quot;12174&quot;&gt;errCode&lt;/code&gt; &amp;mdash; щоб показати людині адекватне повідомлення (&amp;ldquo;Недостатньо коштів&amp;rdquo;, &amp;ldquo;Невірний CVV&amp;rdquo;, тощо) і не перетворювати оплату на &amp;ldquo;магію, що не працює&amp;rdquo;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;12145&quot; data-end=&quot;12316&quot;&gt;Перевірка статусу платежу (invoice/status) як &amp;ldquo;страховка&amp;rdquo;&lt;/h2&gt;<br />
&lt;p data-start=&quot;12388&quot; data-end=&quot;12397&quot;&gt;Ендпоінт:&lt;/p&gt;<br />
&lt;ul data-start=&quot;12399&quot; data-end=&quot;12521&quot;&gt;<br />
&lt;li data-start=&quot;12399&quot; data-end=&quot;12521&quot;&gt;<br />
&lt;p data-start=&quot;12401&quot; data-end=&quot;12521&quot;&gt;&lt;code data-start=&quot;12401&quot; data-end=&quot;12457&quot;&gt;GET /api/merchant/invoice/status?invoiceId={invoiceId}&lt;/code&gt; з заголовком &lt;code data-start=&quot;12471&quot; data-end=&quot;12480&quot;&gt;X-Token&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;monobank прямо каже: &lt;strong data-start=&quot;12544&quot; data-end=&quot;12595&quot;&gt;не використовуй цей сервіс як основний механізм&lt;/strong&gt; після проведення операції; краще вебхуки. Але для кейсів &amp;ldquo;webhook не прийшов&amp;rdquo; або &amp;ldquo;на боці продавця був даунтайм&amp;rdquo; &amp;mdash; це правильний інструмент для відновлення консистентності.&lt;/p&gt;<br />
&lt;h3&gt;Приклад на PHP&lt;/h3&gt;<br />
&lt;pre&gt;&lt;code&gt;$token = getenv(&#039;MONO_X_TOKEN&#039;);<br />
$invoiceId = $_GET[&#039;invoiceId&#039;];<br />
<br />
$url = &#039;https://api.monobank.ua/api/merchant/invoice/status?invoiceId=&#039; . urlencode($invoiceId);<br />
<br />
$ch = curl_init($url);<br />
curl_setopt_array($ch, [<br />
&amp;nbsp; &amp;nbsp; CURLOPT_RETURNTRANSFER =&amp;gt; true,<br />
&amp;nbsp; &amp;nbsp; CURLOPT_HTTPHEADER &amp;nbsp; &amp;nbsp; =&amp;gt; [&#039;X-Token: &#039; . $token],<br />
]);<br />
<br />
$response = curl_exec($ch);<br />
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);<br />
curl_close($ch);<br />
<br />
if ($httpCode !== 200) {<br />
&amp;nbsp; &amp;nbsp; throw new RuntimeException(&quot;Monobank status failed: HTTP $httpCode; body=$response&quot;);<br />
}<br />
<br />
$data = json_decode($response, true);<br />
<br />
// Далі: звіряєш data[&#039;status&#039;], data[&#039;modifiedDate&#039;], data[&#039;finalAmount&#039;] і оновлюєш БД&lt;/code&gt;&lt;/pre&gt;<br />
&lt;h2 data-start=&quot;13505&quot; data-end=&quot;13573&quot;&gt;Готові модулі та інтеграції: коли краще &amp;ldquo;не писати код з нуля&amp;rdquo;&lt;/h2&gt;<br />
&lt;p data-start=&quot;13575&quot; data-end=&quot;13718&quot;&gt;Якщо твій сайт уже працює на популярній CMS/конструкторі, інколи найкраще рішення &amp;mdash; &lt;strong data-start=&quot;13659&quot; data-end=&quot;13686&quot;&gt;не винаходити велосипед&lt;/strong&gt;, а поставити готову інтеграцію.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;13720&quot; data-end=&quot;13760&quot;&gt;Офіційна сторінка готових інтеграцій&lt;/h3&gt;<br />
&lt;p data-start=&quot;13761&quot; data-end=&quot;13985&quot;&gt;monobank має централізовану сторінку, де зібрані &lt;a href=&quot;https://monobank.ua/plata-by-mono/integrations&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;strong data-start=&quot;13810&quot; data-end=&quot;13850&quot;&gt;готові інтеграції та платіжні модулі&lt;/strong&gt;&lt;/a&gt; для різних систем (&amp;ldquo;натиснувши на лого партнера, можна перейти на інструкцію з налаштування&amp;rdquo;).&lt;/p&gt;<br />
&lt;p data-start=&quot;13761&quot; data-end=&quot;13985&quot;&gt;Це варіант &amp;ldquo;мінімум кастому&amp;rdquo;: вставив токен у налаштування &amp;mdash; і працює.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;14059&quot; data-end=&quot;14095&quot;&gt;Приклад: WooCommerce / WordPress&lt;/h3&gt;<br />
&lt;p data-start=&quot;14096&quot; data-end=&quot;14291&quot;&gt;Є &lt;a href=&quot;https://wordpress.com/plugins/monopay&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;strong data-start=&quot;14098&quot; data-end=&quot;14118&quot;&gt;офіційний плагін&lt;/strong&gt;&lt;/a&gt; для WordPress/WooCommerce (Monobank WP Payment Plugin), який позиціонується як офіційний модуль для підключення інтернет-еквайрингу.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;14293&quot; data-end=&quot;14314&quot;&gt;Приклад: OpenCart&lt;/h3&gt;<br />
&lt;p data-start=&quot;14315&quot; data-end=&quot;14453&quot;&gt;В &lt;a href=&quot;https://opencartforum.com/ru/files/file/9211-monopay-oplata-dlya-opencart-modul-dlya-pidklyuchennya-ekvayringu-monobank-do-opencart/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;екосистемі OpenCart&lt;/a&gt; теж є модулі під MonoPay (включно з публічними каталогами/форумами модулів).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;14455&quot; data-end=&quot;14485&quot;&gt;Коли модуль &amp;mdash; кращий вибір&lt;/h3&gt;<br />
&lt;p data-start=&quot;14486&quot; data-end=&quot;14506&quot;&gt;Обирай модуль, якщо:&lt;/p&gt;<br />
&lt;ul data-start=&quot;14507&quot; data-end=&quot;14699&quot;&gt;<br />
&lt;li data-start=&quot;14507&quot; data-end=&quot;14570&quot;&gt;<br />
&lt;p data-start=&quot;14509&quot; data-end=&quot;14570&quot;&gt;тобі потрібно &amp;ldquo;швидко запустити оплату&amp;rdquo; без кастомної логіки;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;14571&quot; data-end=&quot;14653&quot;&gt;<br />
&lt;p data-start=&quot;14573&quot; data-end=&quot;14653&quot;&gt;ти не плануєш складні сценарії (холди, токенізація, спліт-платежі, свій білінг);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;14654&quot; data-end=&quot;14699&quot;&gt;<br />
&lt;p data-start=&quot;14656&quot; data-end=&quot;14699&quot;&gt;ти хочеш підтримку оновлень &amp;ldquo;у рамках CMS&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;14701&quot; data-end=&quot;14745&quot;&gt;Коли API-інтеграція потрібна обов&amp;rsquo;язково&lt;/h3&gt;<br />
&lt;p data-start=&quot;14746&quot; data-end=&quot;14783&quot;&gt;Пиши свою інтеграцію через API, якщо:&lt;/p&gt;<br />
&lt;ul data-start=&quot;14784&quot; data-end=&quot;15059&quot;&gt;<br />
&lt;li data-start=&quot;14784&quot; data-end=&quot;14868&quot;&gt;<br />
&lt;p data-start=&quot;14786&quot; data-end=&quot;14868&quot;&gt;у тебе кастомний бекенд (Laravel/CI/Symfony/Node/Go тощо) і нетипова логіка оплат;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;14869&quot; data-end=&quot;14978&quot;&gt;<br />
&lt;p data-start=&quot;14871&quot; data-end=&quot;14978&quot;&gt;потрібні складні сценарії (наприклад, холд/фіналізація, токенізація, мульти-продукти з власними правилами);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;14979&quot; data-end=&quot;15059&quot;&gt;<br />
&lt;p data-start=&quot;14981&quot; data-end=&quot;15059&quot;&gt;ти хочеш повний контроль: власні ретраї, звірки, аудит подій, антифрод-логіку.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;h2 data-start=&quot;15066&quot; data-end=&quot;15153&quot;&gt;Практичний чек-лист &amp;ldquo;зробив і забув&amp;rdquo;: як довести інтеграцію до production-якості&lt;/h2&gt;<br />
&lt;ol data-start=&quot;15155&quot; data-end=&quot;16242&quot;&gt;<br />
&lt;li data-start=&quot;15155&quot; data-end=&quot;15231&quot;&gt;<br />
&lt;p data-start=&quot;15158&quot; data-end=&quot;15231&quot;&gt;&lt;strong data-start=&quot;15158&quot; data-end=&quot;15167&quot;&gt;Токен&lt;/strong&gt; зберігай тільки в секретах/ENV (не в коді, не в репозиторії).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15232&quot; data-end=&quot;15339&quot;&gt;<br />
&lt;p data-start=&quot;15235&quot; data-end=&quot;15339&quot;&gt;&lt;code data-start=&quot;15235&quot; data-end=&quot;15246&quot;&gt;reference&lt;/code&gt; роби &lt;strong data-start=&quot;15252&quot; data-end=&quot;15266&quot;&gt;унікальним&lt;/strong&gt; на твоєму боці (наприклад, &lt;code data-start=&quot;15294&quot; data-end=&quot;15306&quot;&gt;ORDER-&lt;/code&gt;). Це дуже допомагає у звірках.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15340&quot; data-end=&quot;15510&quot;&gt;<br />
&lt;p data-start=&quot;15343&quot; data-end=&quot;15360&quot;&gt;Webhook-endpoint:&lt;/p&gt;<br />
&lt;ul data-start=&quot;15364&quot; data-end=&quot;15510&quot;&gt;<br />
&lt;li data-start=&quot;15364&quot; data-end=&quot;15402&quot;&gt;<br />
&lt;p data-start=&quot;15366&quot; data-end=&quot;15402&quot;&gt;повинен швидко відповідати &lt;code data-start=&quot;15393&quot; data-end=&quot;15401&quot;&gt;200 OK&lt;/code&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15406&quot; data-end=&quot;15431&quot;&gt;<br />
&lt;p data-start=&quot;15408&quot; data-end=&quot;15431&quot;&gt;має бути ідемпотентним;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15435&quot; data-end=&quot;15510&quot;&gt;<br />
&lt;p data-start=&quot;15437&quot; data-end=&quot;15510&quot;&gt;обов&amp;rsquo;язково верифікує &lt;code data-start=&quot;15459&quot; data-end=&quot;15467&quot;&gt;X-Sign&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15511&quot; data-end=&quot;15699&quot;&gt;<br />
&lt;p data-start=&quot;15514&quot; data-end=&quot;15540&quot;&gt;Логіка оновлення статусів:&lt;/p&gt;<br />
&lt;ul data-start=&quot;15544&quot; data-end=&quot;15699&quot;&gt;<br />
&lt;li data-start=&quot;15544&quot; data-end=&quot;15579&quot;&gt;<br />
&lt;p data-start=&quot;15546&quot; data-end=&quot;15579&quot;&gt;не довіряй порядку приходу подій;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15583&quot; data-end=&quot;15699&quot;&gt;<br />
&lt;p data-start=&quot;15585&quot; data-end=&quot;15699&quot;&gt;завжди порівнюй &lt;code data-start=&quot;15601&quot; data-end=&quot;15615&quot;&gt;modifiedDate&lt;/code&gt; і не перезаписуй &amp;ldquo;новий&amp;rdquo; статус &amp;ldquo;старим&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15700&quot; data-end=&quot;15963&quot;&gt;<br />
&lt;p data-start=&quot;15703&quot; data-end=&quot;15963&quot;&gt;Зроби &lt;strong data-start=&quot;15709&quot; data-end=&quot;15731&quot;&gt;reconciliation job&lt;/strong&gt; (крон/черга): раз на N хвилин перевіряй &amp;ldquo;завислі&amp;rdquo; інвойси через &lt;code data-start=&quot;15796&quot; data-end=&quot;15812&quot;&gt;invoice/status&lt;/code&gt; (тільки для тих, у кого давно не було webhook). Це узгоджується з призначенням методу статусу як резервного.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;15964&quot; data-end=&quot;16242&quot;&gt;<br />
&lt;p data-start=&quot;15967&quot; data-end=&quot;15989&quot;&gt;Перед запуском у прод:&lt;/p&gt;<br />
&lt;ul data-start=&quot;15993&quot; data-end=&quot;16242&quot;&gt;<br />
&lt;li data-start=&quot;15993&quot; data-end=&quot;16041&quot;&gt;<br />
&lt;p data-start=&quot;15995&quot; data-end=&quot;16041&quot;&gt;прогони тестове середовище з тестовим токеном;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;16045&quot; data-end=&quot;16120&quot;&gt;<br />
&lt;p data-start=&quot;16047&quot; data-end=&quot;16120&quot;&gt;перевір, що твої URL доступні з інтернету і не блокуються WAF/Cloudflare;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;16124&quot; data-end=&quot;16242&quot;&gt;<br />
&lt;p data-start=&quot;16126&quot; data-end=&quot;16242&quot;&gt;перевір, що &amp;ldquo;success&amp;rdquo; реально переводить замовлення в &amp;ldquo;paid&amp;rdquo; тільки на сервері (вебхук/статус), а не &amp;ldquo;по редіректу&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p data-start=&quot;16262&quot; data-end=&quot;16431&quot;&gt;Інтеграція MonoPay (plata by mono) добре лягає на сучасну архітектуру &amp;ldquo;інвойс &amp;rarr; платіжна сторінка &amp;rarr; вебхук &amp;rarr; підтвердження в БД&amp;rdquo;, але якість рішення визначають три речі:&lt;/p&gt;<br />
&lt;ul data-start=&quot;16433&quot; data-end=&quot;16789&quot;&gt;<br />
&lt;li data-start=&quot;16433&quot; data-end=&quot;16536&quot;&gt;<br />
&lt;p data-start=&quot;16435&quot; data-end=&quot;16536&quot;&gt;коректне підключення і керування токеном у бізнес-кабінеті;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;16537&quot; data-end=&quot;16652&quot;&gt;<br />
&lt;p data-start=&quot;16539&quot; data-end=&quot;16652&quot;&gt;правильна обробка вебхуків (підпис + &lt;code data-start=&quot;16576&quot; data-end=&quot;16590&quot;&gt;modifiedDate&lt;/code&gt; + ідемпотентність);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;16653&quot; data-end=&quot;16789&quot;&gt;<br />
&lt;p data-start=&quot;16655&quot; data-end=&quot;16789&quot;&gt;наявність резервного механізму звірки через &lt;code data-start=&quot;16699&quot; data-end=&quot;16715&quot;&gt;invoice/status&lt;/code&gt; для рідкісних розсинхронізацій.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
  <p><strong>Теги:</strong> 
 CMS, Monopay, Pay Integration </p>
  ]]></content:encoded>
 <pubDate>Tue, 13 Jan 2026 18:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>CMS та сайти</category>
  </item>
  <item>
 <title>Які бувають VPS-сервери та на яких технологіях вони працюють: хмарні VPS, ОС, локації та реальні сценарії використання</title>
 <link>https://uhost.online/blog/yak-buvayut-vps-serveri-ta-na-yakikh-tekhnologyakh-voni-pratsyuyut-khmarn-vps-os-lokats-ta-realn-stsenar-vikoristannya</link>
 <guid isPermaLink="true">https://uhost.online/blog/yak-buvayut-vps-serveri-ta-na-yakikh-tekhnologyakh-voni-pratsyuyut-khmarn-vps-os-lokats-ta-realn-stsenar-vikoristannya</guid>
 <description><![CDATA[Розбираємося, що таке VPS і чому хмарні VPS зручніші для більшості сайтів та сервісів: технології віртуалізації (KVM, LXC/OpenVZ, Xen, VMware), вибір ОС (AlmaLinux, CentOS Stream, Debian, Fedora, openSUSE, Rocky Linux, Ubuntu), локації (USA, Germany, Finland), vps для сайта, і порівняння з виділеними серверами]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/9e3162cd6f97ffab19d777d7212441a8-b4022623-9d4a-4440-b6ca-3c82404e8b5a_1768063059_4113.webp" alt="Які бувають VPS-сервери та на яких технологіях вони працюють: хмарні VPS, ОС, локації та реальні сценарії використання" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h1 data-start=&quot;506&quot; data-end=&quot;567&quot;&gt;Які бувають VPS-сервери: простими словами&lt;/h1&gt;<br />
&lt;p data-start=&quot;569&quot; data-end=&quot;885&quot;&gt;VPS (Virtual Private Server) часто описують як &amp;ldquo;щось середнє між хостингом і виділеним сервером&amp;rdquo;. І це правда, але дуже спрощена. Насправді VPS &amp;mdash; це цілий клас рішень, і під словом &amp;ldquo;VPS&amp;rdquo; на ринку можуть ховатися різні технології, рівні ізоляції, підходи до мережі та дисків, а інколи навіть різна філософія продукту.&lt;/p&gt;<br />
&lt;p data-start=&quot;887&quot; data-end=&quot;1218&quot;&gt;Якщо говорити &amp;ldquo;людською&amp;rdquo; мовою: VPS &amp;mdash; це коли ви отримуєте &lt;strong data-start=&quot;946&quot; data-end=&quot;984&quot;&gt;свій ізольований серверний простір&lt;/strong&gt; із root-доступом, власними налаштуваннями, пакетами та сервісами, але при цьому фізичне залізо ділиться між кількома клієнтами. Звідси й головна перевага: &lt;strong data-start=&quot;1140&quot; data-end=&quot;1171&quot;&gt;ціна нижча, ніж у dedicated&lt;/strong&gt;, а можливостей майже &amp;ldquo;як у дорослого сервера&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;1220&quot; data-end=&quot;1248&quot;&gt;Далі я розкладу по поличках:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1249&quot; data-end=&quot;1543&quot;&gt;<br />
&lt;li data-start=&quot;1249&quot; data-end=&quot;1289&quot;&gt;<br />
&lt;p data-start=&quot;1251&quot; data-end=&quot;1289&quot;&gt;які технології стоять під капотом VPS;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1290&quot; data-end=&quot;1363&quot;&gt;<br />
&lt;p data-start=&quot;1292&quot; data-end=&quot;1363&quot;&gt;чим відрізняються &amp;ldquo;класичні&amp;rdquo; VPS від &lt;strong data-start=&quot;1329&quot; data-end=&quot;1344&quot;&gt;хмарних VPS&lt;/strong&gt; (саме такі в нас);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1364&quot; data-end=&quot;1411&quot;&gt;<br />
&lt;p data-start=&quot;1366&quot; data-end=&quot;1411&quot;&gt;які ОС реально варто обирати під сайт/проєкт;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1412&quot; data-end=&quot;1462&quot;&gt;<br />
&lt;p data-start=&quot;1414&quot; data-end=&quot;1462&quot;&gt;які сайти та сервіси зазвичай запускають на VPS;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1463&quot; data-end=&quot;1543&quot;&gt;<br />
&lt;p data-start=&quot;1465&quot; data-end=&quot;1543&quot;&gt;і де VPS сильніший за shared-хостинг, а де все ж таки виграє виділений сервер.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;1550&quot; data-end=&quot;1600&quot;&gt;VPS &amp;ldquo;класичний&amp;rdquo; і VPS &amp;ldquo;хмарний&amp;rdquo;: у чому різниця&lt;/h2&gt;<br />
&lt;p data-start=&quot;1602&quot; data-end=&quot;1691&quot;&gt;Багато хто купує VPS і думає, що це завжди однаковий продукт. Насправді є важливий поділ:&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1693&quot; data-end=&quot;1730&quot;&gt;1) &amp;ldquo;Один вузол&amp;rdquo; (традиційний VPS)&lt;/h3&gt;<br />
&lt;p data-start=&quot;1731&quot; data-end=&quot;2005&quot;&gt;Це коли ваш VPS живе на конкретному фізичному сервері. Він може бути дуже швидким, але якщо з вузлом щось сталося (залізо, диски, оновлення гіпервізора), ваш VPS теж відчує наслідки. Такі рішення зазвичай дешевші в реалізації для провайдера, тому іноді дешевші &amp;ldquo;на ціннику&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2007&quot; data-end=&quot;2041&quot;&gt;2) &lt;strong data-start=&quot;2014&quot; data-end=&quot;2041&quot;&gt;Хмарний VPS (cloud VPS)&lt;/strong&gt;&lt;/h3&gt;<br />
&lt;p data-start=&quot;2042&quot; data-end=&quot;2275&quot;&gt;Це коли VPS створюється і працює &lt;strong data-start=&quot;2075&quot; data-end=&quot;2089&quot;&gt;в кластері&lt;/strong&gt;. Не обов&amp;rsquo;язково &amp;ldquo;хмара&amp;rdquo; має означати щось складне на кшталт AWS, але ідея така: віртуалки управляються платформою, а ресурси розподіляються по групі хостів. Практичні плюси для клієнта:&lt;/p&gt;<br />
&lt;ul data-start=&quot;2277&quot; data-end=&quot;2460&quot;&gt;<br />
&lt;li data-start=&quot;2277&quot; data-end=&quot;2340&quot;&gt;<br />
&lt;p data-start=&quot;2279&quot; data-end=&quot;2340&quot;&gt;простіше масштабувати ресурси (CPU/RAM/диск) без &amp;ldquo;переїздів&amp;rdquo;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2341&quot; data-end=&quot;2402&quot;&gt;<br />
&lt;p data-start=&quot;2343&quot; data-end=&quot;2402&quot;&gt;зручніше робити снапшоти/резервні копії на рівні платформи;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2403&quot; data-end=&quot;2460&quot;&gt;<br />
&lt;p data-start=&quot;2405&quot; data-end=&quot;2460&quot;&gt;легше обслуговувати інфраструктуру без довгих простоїв.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2462&quot; data-end=&quot;2598&quot;&gt;Саме тому я завжди раджу дивитися на &lt;strong data-start=&quot;2499&quot; data-end=&quot;2513&quot;&gt;хмарні VPS&lt;/strong&gt;, якщо задача &amp;mdash; &amp;ldquo;поставити сайт і забути про нього&amp;rdquo;, але з можливістю швидко вирости.&lt;/p&gt;<br />
&lt;p data-start=&quot;2600&quot; data-end=&quot;2841&quot;&gt;І так, якщо ти гуглиш &amp;ldquo;Купить vps дешего&amp;rdquo;, майже завжди тобі будуть показувати найдешевші варіанти саме з першої категорії. Вони можуть бути норм, але треба розуміти, що ти економиш не &amp;ldquo;в повітрі&amp;rdquo;, а на архітектурі та резервуванні платформи.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2848&quot; data-end=&quot;2911&quot;&gt;На яких технологіях працюють VPS: головні типи віртуалізації&lt;/h2&gt;<br />
&lt;p data-start=&quot;2913&quot; data-end=&quot;3096&quot;&gt;Ось тут починається найцікавіше. Є кілька &amp;ldquo;двигунів&amp;rdquo;, на яких запускають VPS. Вони сильно впливають на ізоляцію, продуктивність, гнучкість і навіть на те, які ОС ви можете встановити.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3098&quot; data-end=&quot;3169&quot;&gt;Повна віртуалізація (коли VPS максимально схожий на окремий сервер)&lt;/h3&gt;<br />
&lt;h4 data-start=&quot;3171&quot; data-end=&quot;3225&quot;&gt;KVM (QEMU/KVM) &amp;mdash; найпопулярніший стандарт для VPS&lt;/h4&gt;<br />
&lt;p data-start=&quot;3226&quot; data-end=&quot;3332&quot;&gt;KVM &amp;mdash; це коли у кожної віртуалки свій &amp;ldquo;віртуальний комп&amp;rsquo;ютер&amp;rdquo;: власне ядро, своя ОС, свої драйвери. Плюси:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3333&quot; data-end=&quot;3485&quot;&gt;<br />
&lt;li data-start=&quot;3333&quot; data-end=&quot;3406&quot;&gt;<br />
&lt;p data-start=&quot;3335&quot; data-end=&quot;3406&quot;&gt;добра ізоляція (сусідній VPS не &amp;ldquo;влізе&amp;rdquo; у ваш процес простим способом);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3407&quot; data-end=&quot;3447&quot;&gt;<br />
&lt;p data-start=&quot;3409&quot; data-end=&quot;3447&quot;&gt;можна ставити майже будь-яку Linux-ОС;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3448&quot; data-end=&quot;3485&quot;&gt;<br />
&lt;p data-start=&quot;3450&quot; data-end=&quot;3485&quot;&gt;прогнозована поведінка в продакшні.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3487&quot; data-end=&quot;3581&quot;&gt;Саме такі VPS найчастіше називають &amp;ldquo;швидкі VPS&amp;rdquo;, якщо провайдер не економить на CPU та дисках.&lt;/p&gt;<br />
&lt;h4 data-start=&quot;3583&quot; data-end=&quot;3591&quot;&gt;Xen&lt;/h4&gt;<br />
&lt;p data-start=&quot;3592&quot; data-end=&quot;3749&quot;&gt;Колись був дуже популярний у хостерів. Теж повна віртуалізація, але з власними нюансами. Сьогодні його менше в масовому сегменті, але він досі зустрічається.&lt;/p&gt;<br />
&lt;h4 data-start=&quot;3751&quot; data-end=&quot;3777&quot;&gt;VMware ESXi / Hyper-V&lt;/h4&gt;<br />
&lt;p data-start=&quot;3778&quot; data-end=&quot;3934&quot;&gt;Частіше у корпоративних середовищах. Для клієнта різниця зазвичай відчувається не &amp;ldquo;в назві&amp;rdquo;, а в тому, як провайдер налаштував ресурси і дискову підсистему.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3941&quot; data-end=&quot;4008&quot;&gt;Контейнерна віртуалізація (коли VPS швидкий, але ізоляція інша)&lt;/h3&gt;<br />
&lt;h4 data-start=&quot;4010&quot; data-end=&quot;4042&quot;&gt;OpenVZ / Virtuozzo, LXC/LXD&lt;/h4&gt;<br />
&lt;p data-start=&quot;4043&quot; data-end=&quot;4153&quot;&gt;Тут віртуалізація йде на рівні контейнерів: у контейнерів спільне ядро хоста, але різні user-space середовища.&lt;/p&gt;<br />
&lt;p data-start=&quot;4155&quot; data-end=&quot;4161&quot;&gt;Плюси:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4162&quot; data-end=&quot;4257&quot;&gt;<br />
&lt;li data-start=&quot;4162&quot; data-end=&quot;4193&quot;&gt;<br />
&lt;p data-start=&quot;4164&quot; data-end=&quot;4193&quot;&gt;дуже легкі, стартують швидко;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4194&quot; data-end=&quot;4240&quot;&gt;<br />
&lt;p data-start=&quot;4196&quot; data-end=&quot;4240&quot;&gt;добре підходять для типових Linux-сценаріїв;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4241&quot; data-end=&quot;4257&quot;&gt;<br />
&lt;p data-start=&quot;4243&quot; data-end=&quot;4257&quot;&gt;часто дешевші.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4259&quot; data-end=&quot;4276&quot;&gt;Мінуси (важливі):&lt;/p&gt;<br />
&lt;ul data-start=&quot;4277&quot; data-end=&quot;4447&quot;&gt;<br />
&lt;li data-start=&quot;4277&quot; data-end=&quot;4321&quot;&gt;<br />
&lt;p data-start=&quot;4279&quot; data-end=&quot;4321&quot;&gt;ізоляція інша, не &amp;ldquo;як у повної віртуалки&amp;rdquo;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4322&quot; data-end=&quot;4373&quot;&gt;<br />
&lt;p data-start=&quot;4324&quot; data-end=&quot;4373&quot;&gt;не всі специфічні речі з ядром/модулями доступні;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4374&quot; data-end=&quot;4447&quot;&gt;<br />
&lt;p data-start=&quot;4376&quot; data-end=&quot;4447&quot;&gt;інколи простіше &amp;ldquo;впіймати&amp;rdquo; ефект сусідів, якщо платформа перевантажена.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4449&quot; data-end=&quot;4640&quot;&gt;Контейнерні VPS можуть бути чудовими, але якщо вам важлива максимальна передбачуваність (особливо під бізнес-критичні сайти/платежі/високе навантаження), я зазвичай віддаю перевагу KVM-класу.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4647&quot; data-end=&quot;4704&quot;&gt;Хмарні VPS: що під капотом зазвичай робить їх зручними&lt;/h2&gt;<br />
&lt;p data-start=&quot;4706&quot; data-end=&quot;4798&quot;&gt;Коли кажуть &amp;ldquo;cloud VPS&amp;rdquo;, найчастіше це означає не один конкретний гіпервізор, а стек рішень:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4799&quot; data-end=&quot;5052&quot;&gt;<br />
&lt;li data-start=&quot;4799&quot; data-end=&quot;4824&quot;&gt;<br />
&lt;p data-start=&quot;4801&quot; data-end=&quot;4824&quot;&gt;гіпервізор (часто KVM);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4825&quot; data-end=&quot;4915&quot;&gt;<br />
&lt;p data-start=&quot;4827&quot; data-end=&quot;4915&quot;&gt;система керування кластером (OpenStack/CloudStack/Proxmox-кластер або власна платформа);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4916&quot; data-end=&quot;4979&quot;&gt;<br />
&lt;p data-start=&quot;4918&quot; data-end=&quot;4979&quot;&gt;мережевий шар (віртуальні мережі, плаваючі IP, балансування);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4980&quot; data-end=&quot;5052&quot;&gt;<br />
&lt;p data-start=&quot;4982&quot; data-end=&quot;5052&quot;&gt;дискова підсистема (часто розподілене сховище або швидкі NVMe-масиви).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;5054&quot; data-end=&quot;5237&quot;&gt;Для клієнта важливо не запам&amp;rsquo;ятати назви, а розуміти наслідки: хмарний підхід дає гнучкість у масштабуванні, що і робить його хорошим вибором для більшості веб-проєктів.&lt;/p&gt;<br />
&lt;h1 data-start=&quot;5244&quot; data-end=&quot;5298&quot;&gt;Яку ОС обрати для VPS: що реально ставлять під сайти&lt;/h1&gt;<br />
&lt;p data-start=&quot;5300&quot; data-end=&quot;5465&quot;&gt;ОС &amp;mdash; це не просто &amp;ldquo;що вам подобається&amp;rdquo;. Це про пакети, підтримку, екосистему, оновлення безпеки і навіть про те, наскільки легко знайти інструкції для типових задач.&lt;/p&gt;<br />
&lt;p data-start=&quot;5467&quot; data-end=&quot;5554&quot;&gt;На наших VPS доступні такі операційні системи (і це хороший набір під будь-які задачі):&lt;/p&gt;<br />
&lt;ul data-start=&quot;5556&quot; data-end=&quot;5686&quot;&gt;<br />
&lt;li data-start=&quot;5556&quot; data-end=&quot;5574&quot;&gt;<br />
&lt;p data-start=&quot;5558&quot; data-end=&quot;5574&quot;&gt;&lt;strong data-start=&quot;5558&quot; data-end=&quot;5574&quot;&gt;AlmaLinux 10&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5575&quot; data-end=&quot;5596&quot;&gt;<br />
&lt;p data-start=&quot;5577&quot; data-end=&quot;5596&quot;&gt;&lt;strong data-start=&quot;5577&quot; data-end=&quot;5596&quot;&gt;CentOS Stream 9&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5597&quot; data-end=&quot;5612&quot;&gt;<br />
&lt;p data-start=&quot;5599&quot; data-end=&quot;5612&quot;&gt;&lt;strong data-start=&quot;5599&quot; data-end=&quot;5612&quot;&gt;Debian 13&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5613&quot; data-end=&quot;5628&quot;&gt;<br />
&lt;p data-start=&quot;5615&quot; data-end=&quot;5628&quot;&gt;&lt;strong data-start=&quot;5615&quot; data-end=&quot;5628&quot;&gt;Fedora 43&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5629&quot; data-end=&quot;5646&quot;&gt;<br />
&lt;p data-start=&quot;5631&quot; data-end=&quot;5646&quot;&gt;&lt;strong data-start=&quot;5631&quot; data-end=&quot;5646&quot;&gt;openSUSE 16&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5647&quot; data-end=&quot;5667&quot;&gt;<br />
&lt;p data-start=&quot;5649&quot; data-end=&quot;5667&quot;&gt;&lt;strong data-start=&quot;5649&quot; data-end=&quot;5667&quot;&gt;Rocky Linux 10&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5668&quot; data-end=&quot;5686&quot;&gt;<br />
&lt;p data-start=&quot;5670&quot; data-end=&quot;5686&quot;&gt;&lt;strong data-start=&quot;5670&quot; data-end=&quot;5686&quot;&gt;Ubuntu 24.04&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;5688&quot; data-end=&quot;5722&quot;&gt;Короткий вибір &amp;ldquo;без філософії&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;5723&quot; data-end=&quot;5809&quot;&gt;Якщо ви ставите &lt;strong data-start=&quot;5739&quot; data-end=&quot;5756&quot;&gt;vps для сайту&lt;/strong&gt;&amp;nbsp;і хочете швидко, передбачувано та з тисячами гайдів:&lt;/p&gt;<br />
&lt;ul data-start=&quot;5810&quot; data-end=&quot;6026&quot;&gt;<br />
&lt;li data-start=&quot;5810&quot; data-end=&quot;5912&quot;&gt;<br />
&lt;p data-start=&quot;5812&quot; data-end=&quot;5912&quot;&gt;&lt;strong data-start=&quot;5812&quot; data-end=&quot;5828&quot;&gt;Ubuntu 24.04&lt;/strong&gt; &amp;mdash; дуже часто найпростіший вибір під Laravel/Node.js, сучасні пакети, швидкий старт.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5913&quot; data-end=&quot;6026&quot;&gt;<br />
&lt;p data-start=&quot;5915&quot; data-end=&quot;6026&quot;&gt;&lt;strong data-start=&quot;5915&quot; data-end=&quot;5928&quot;&gt;Debian 13&lt;/strong&gt; &amp;mdash; &amp;ldquo;менше шуму, більше стабільності&amp;rdquo;, часто беруть під класичні веб-сервіси, проксі, VPN, бекенди.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;6028&quot; data-end=&quot;6117&quot;&gt;Якщо ви з Linux-світу &amp;ldquo;RHEL-подібних&amp;rdquo; і вам потрібна екосистема під корпоративні підходи:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6118&quot; data-end=&quot;6197&quot;&gt;<br />
&lt;li data-start=&quot;6118&quot; data-end=&quot;6197&quot;&gt;<br />
&lt;p data-start=&quot;6120&quot; data-end=&quot;6197&quot;&gt;&lt;strong data-start=&quot;6120&quot; data-end=&quot;6147&quot;&gt;AlmaLinux / Rocky Linux&lt;/strong&gt; &amp;mdash; популярні заміни класичного CentOS у продакшні.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;6199&quot; data-end=&quot;6383&quot;&gt;Fedora/openSUSE &amp;mdash; зазвичай для ентузіастів, специфічних стеків або коли потрібні максимально свіжі пакети, але для типового продакшн-сайту я б ставив їх лише з розумінням, навіщо саме.&lt;/p&gt;<br />
&lt;h1 data-start=&quot;6390&quot; data-end=&quot;6439&quot;&gt;Локації VPS: що означають і як обрати правильно&lt;/h1&gt;<br />
&lt;p data-start=&quot;6441&quot; data-end=&quot;6502&quot;&gt;Наприклад наші VPS доступні у наступних локаціях:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6504&quot; data-end=&quot;6595&quot;&gt;<br />
&lt;li data-start=&quot;6504&quot; data-end=&quot;6519&quot;&gt;<br />
&lt;p data-start=&quot;6506&quot; data-end=&quot;6519&quot;&gt;&lt;strong data-start=&quot;6506&quot; data-end=&quot;6519&quot;&gt;USA (ASH)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6520&quot; data-end=&quot;6535&quot;&gt;<br />
&lt;p data-start=&quot;6522&quot; data-end=&quot;6535&quot;&gt;&lt;strong data-start=&quot;6522&quot; data-end=&quot;6535&quot;&gt;USA (HIL)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6536&quot; data-end=&quot;6555&quot;&gt;<br />
&lt;p data-start=&quot;6538&quot; data-end=&quot;6555&quot;&gt;&lt;strong data-start=&quot;6538&quot; data-end=&quot;6555&quot;&gt;Germany (FSN)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6556&quot; data-end=&quot;6575&quot;&gt;<br />
&lt;p data-start=&quot;6558&quot; data-end=&quot;6575&quot;&gt;&lt;strong data-start=&quot;6558&quot; data-end=&quot;6575&quot;&gt;Germany (NBG)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6576&quot; data-end=&quot;6595&quot;&gt;<br />
&lt;p data-start=&quot;6578&quot; data-end=&quot;6595&quot;&gt;&lt;strong data-start=&quot;6578&quot; data-end=&quot;6595&quot;&gt;Finland (HEL)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;6597&quot; data-end=&quot;6653&quot;&gt;Це не просто &amp;ldquo;країна на прапорці&amp;rdquo;. Від локації залежить:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6654&quot; data-end=&quot;6789&quot;&gt;<br />
&lt;li data-start=&quot;6654&quot; data-end=&quot;6694&quot;&gt;<br />
&lt;p data-start=&quot;6656&quot; data-end=&quot;6694&quot;&gt;затримка (latency) до вашої аудиторії;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6695&quot; data-end=&quot;6720&quot;&gt;<br />
&lt;p data-start=&quot;6697&quot; data-end=&quot;6720&quot;&gt;стабільність маршрутів;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6721&quot; data-end=&quot;6789&quot;&gt;<br />
&lt;p data-start=&quot;6723&quot; data-end=&quot;6789&quot;&gt;інколи &amp;mdash; юридичні та комплаєнс-нюанси (де саме зберігаються дані).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;6791&quot; data-end=&quot;6819&quot;&gt;Практичне правило вибору&lt;/h3&gt;<br />
&lt;ul data-start=&quot;6820&quot; data-end=&quot;6966&quot;&gt;<br />
&lt;li data-start=&quot;6820&quot; data-end=&quot;6910&quot;&gt;<br />
&lt;p data-start=&quot;6822&quot; data-end=&quot;6910&quot;&gt;Аудиторія в Україні/Європі &amp;mdash; частіше беруть &lt;strong data-start=&quot;6866&quot; data-end=&quot;6887&quot;&gt;&lt;a href=&quot;/vps/in-germany&quot;&gt;Germany&lt;/a&gt; (FSN/NBG)&lt;/strong&gt; або &lt;strong data-start=&quot;6892&quot; data-end=&quot;6909&quot;&gt;&lt;a href=&quot;/vps/in-finland&quot;&gt;Finland&lt;/a&gt; (HEL)&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6911&quot; data-end=&quot;6966&quot;&gt;<br />
&lt;p data-start=&quot;6913&quot; data-end=&quot;6966&quot;&gt;Аудиторія в США/Канаді &amp;mdash; логічніше &lt;strong data-start=&quot;6948&quot; data-end=&quot;6965&quot;&gt;&lt;a href=&quot;/vps/in-usa&quot;&gt;USA&lt;/a&gt; (ASH/HIL)&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;6968&quot; data-end=&quot;7148&quot;&gt;Якщо у вас міжнародний проєкт &amp;mdash; часто роблять так: основний VPS у Європі, а для глобального прискорення підключають CDN (або навіть кілька VPS у різних локаціях під георознесення).&lt;/p&gt;<br />
&lt;h1 data-start=&quot;7155&quot; data-end=&quot;7200&quot;&gt;Які сайти та сервіси можна запускати на VPS&lt;/h1&gt;<br />
&lt;p data-start=&quot;7202&quot; data-end=&quot;7351&quot;&gt;Ось тут VPS реально розкривається. На shared-хостингу ви обмежені правилами панелі та оточенням. На VPS ви керуєте стеком як хочете. Типові сценарії:&lt;/p&gt;<br />
&lt;h3 data-start=&quot;7353&quot; data-end=&quot;7383&quot;&gt;1) Звичайні сайти та блоги&lt;/h3&gt;<br />
&lt;ul data-start=&quot;7384&quot; data-end=&quot;7583&quot;&gt;<br />
&lt;li data-start=&quot;7384&quot; data-end=&quot;7477&quot;&gt;<br />
&lt;p data-start=&quot;7386&quot; data-end=&quot;7477&quot;&gt;WordPress (особливо якщо це не &amp;ldquo;одна сторінка&amp;rdquo;, а реальний сайт із плагінами та кешуванням)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7478&quot; data-end=&quot;7517&quot;&gt;<br />
&lt;p data-start=&quot;7480&quot; data-end=&quot;7517&quot;&gt;корпоративні сайти на Laravel/Symfony&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7518&quot; data-end=&quot;7583&quot;&gt;<br />
&lt;p data-start=&quot;7520&quot; data-end=&quot;7583&quot;&gt;статичні сайти (Hugo/Next.js static export) з Nginx як віддачею&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;7585&quot; data-end=&quot;7609&quot;&gt;2) Інтернет-магазини&lt;/h3&gt;<br />
&lt;ul data-start=&quot;7610&quot; data-end=&quot;7734&quot;&gt;<br />
&lt;li data-start=&quot;7610&quot; data-end=&quot;7645&quot;&gt;<br />
&lt;p data-start=&quot;7612&quot; data-end=&quot;7645&quot;&gt;WooCommerce, OpenCart, PrestaShop&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7646&quot; data-end=&quot;7734&quot;&gt;<br />
&lt;p data-start=&quot;7648&quot; data-end=&quot;7734&quot;&gt;Magento &amp;mdash; так, але з адекватним запасом по RAM/CPU і нормальним кешем (Redis, OPcache)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;7736&quot; data-end=&quot;7784&quot;&gt;3) Проєкти, яким потрібні черги/воркери/крон&lt;/h3&gt;<br />
&lt;p data-start=&quot;7785&quot; data-end=&quot;7812&quot;&gt;На VPS ви спокійно ставите:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7813&quot; data-end=&quot;7922&quot;&gt;<br />
&lt;li data-start=&quot;7813&quot; data-end=&quot;7830&quot;&gt;<br />
&lt;p data-start=&quot;7815&quot; data-end=&quot;7830&quot;&gt;Redis, RabbitMQ&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7831&quot; data-end=&quot;7859&quot;&gt;<br />
&lt;p data-start=&quot;7833&quot; data-end=&quot;7859&quot;&gt;Supervisor/Systemd-сервіси&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7860&quot; data-end=&quot;7872&quot;&gt;<br />
&lt;p data-start=&quot;7862&quot; data-end=&quot;7872&quot;&gt;Cron-джоби&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7873&quot; data-end=&quot;7922&quot;&gt;<br />
&lt;p data-start=&quot;7875&quot; data-end=&quot;7922&quot;&gt;окремі воркери під черги (Laravel Horizon тощо)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;7924&quot; data-end=&quot;7949&quot;&gt;4) API, бекенди, боти&lt;/h3&gt;<br />
&lt;ul data-start=&quot;7950&quot; data-end=&quot;8015&quot;&gt;<br />
&lt;li data-start=&quot;7950&quot; data-end=&quot;7968&quot;&gt;<br />
&lt;p data-start=&quot;7952&quot; data-end=&quot;7968&quot;&gt;REST/GraphQL API&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7969&quot; data-end=&quot;7984&quot;&gt;<br />
&lt;p data-start=&quot;7971&quot; data-end=&quot;7984&quot;&gt;Telegram-боти&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7985&quot; data-end=&quot;7999&quot;&gt;<br />
&lt;p data-start=&quot;7987&quot; data-end=&quot;7999&quot;&gt;мікросервіси&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8000&quot; data-end=&quot;8015&quot;&gt;<br />
&lt;p data-start=&quot;8002&quot; data-end=&quot;8015&quot;&gt;webhooks-хаби&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;8017&quot; data-end=&quot;8070&quot;&gt;5) Технічні задачі, не пов&amp;rsquo;язані напряму з сайтом&lt;/h3&gt;<br />
&lt;ul data-start=&quot;8071&quot; data-end=&quot;8180&quot;&gt;<br />
&lt;li data-start=&quot;8071&quot; data-end=&quot;8088&quot;&gt;<br />
&lt;p data-start=&quot;8073&quot; data-end=&quot;8088&quot;&gt;VPN (WireGuard)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8089&quot; data-end=&quot;8115&quot;&gt;<br />
&lt;p data-start=&quot;8091&quot; data-end=&quot;8115&quot;&gt;Bastion-host для адмінки&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8116&quot; data-end=&quot;8165&quot;&gt;<br />
&lt;p data-start=&quot;8118&quot; data-end=&quot;8165&quot;&gt;логування/моніторинг (Prometheus/Grafana, Loki)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8166&quot; data-end=&quot;8180&quot;&gt;<br />
&lt;p data-start=&quot;8168&quot; data-end=&quot;8180&quot;&gt;CI/CD агенти&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;8182&quot; data-end=&quot;8446&quot;&gt;Якщо сказати максимально чесно: &lt;strong data-start=&quot;8214&quot; data-end=&quot;8238&quot;&gt;майже будь-який сайт&lt;/strong&gt;, який переріс &amp;ldquo;візитку&amp;rdquo;, на VPS почувається органічніше. Саме тому запити типу&amp;nbsp;&lt;strong&gt;швидкі vps&lt;/strong&gt; найчастіше йдуть від людей, які вже обпеклися на лімітах shared-хостингу (або хочуть одразу нормальне середовище).&lt;/p&gt;<br />
&lt;h1 data-start=&quot;8453&quot; data-end=&quot;8508&quot;&gt;VPS проти shared-хостингу: коли VPS точно виправданий&lt;/h1&gt;<br />
&lt;p data-start=&quot;8510&quot; data-end=&quot;8570&quot;&gt;Є кілька сигналів, після яких я майже автоматично раджу VPS:&lt;/p&gt;<br />
&lt;p data-start=&quot;8572&quot; data-end=&quot;8753&quot;&gt;&lt;strong data-start=&quot;8572&quot; data-end=&quot;8614&quot;&gt;Вам потрібні нестандартні налаштування&lt;/strong&gt;&lt;br&gt;Наприклад: особливі модулі PHP, специфічна версія Node.js, кастомні заголовки безпеки, тонка конфігурація Nginx, власні правила кешування.&lt;/p&gt;<br />
&lt;p data-start=&quot;8755&quot; data-end=&quot;8911&quot;&gt;&lt;strong data-start=&quot;8755&quot; data-end=&quot;8795&quot;&gt;Вам потрібні фонова робота і процеси&lt;/strong&gt;&lt;br&gt;Черги, воркери, крон-скрипти, планувальники, headless-браузери &amp;mdash; усе це на shared або заборонено, або &amp;ldquo;через біль&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;8913&quot; data-end=&quot;9032&quot;&gt;&lt;strong data-start=&quot;8913&quot; data-end=&quot;8955&quot;&gt;Ви хочете передбачувану продуктивність&lt;/strong&gt;&lt;br&gt;&lt;a href=&quot;https://uhost.online/hosting&quot;&gt;Shared&lt;/a&gt; &amp;mdash; це завжди компроміс. VPS (особливо хмарний) дає більше керованості.&lt;/p&gt;<br />
&lt;p data-start=&quot;9034&quot; data-end=&quot;9091&quot;&gt;&lt;strong data-start=&quot;9034&quot; data-end=&quot;9065&quot;&gt;Безпека і контроль доступів&lt;/strong&gt;&lt;br&gt;На VPS ви самі вирішуєте:&lt;/p&gt;<br />
&lt;ul data-start=&quot;9092&quot; data-end=&quot;9191&quot;&gt;<br />
&lt;li data-start=&quot;9092&quot; data-end=&quot;9117&quot;&gt;<br />
&lt;p data-start=&quot;9094&quot; data-end=&quot;9117&quot;&gt;як налаштувати фаєрвол;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9118&quot; data-end=&quot;9139&quot;&gt;<br />
&lt;p data-start=&quot;9120&quot; data-end=&quot;9139&quot;&gt;які порти відкриті;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9140&quot; data-end=&quot;9170&quot;&gt;<br />
&lt;p data-start=&quot;9142&quot; data-end=&quot;9170&quot;&gt;як організований SSH-доступ;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9171&quot; data-end=&quot;9191&quot;&gt;<br />
&lt;p data-start=&quot;9173&quot; data-end=&quot;9191&quot;&gt;як робиться бекап.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;hr data-start=&quot;9193&quot; data-end=&quot;9196&quot;&gt;<br />
&lt;h1 data-start=&quot;9198&quot; data-end=&quot;9246&quot;&gt;VPS проти виділеного сервера: порівняння&lt;/h1&gt;<br />
&lt;p data-start=&quot;9248&quot; data-end=&quot;9420&quot;&gt;Виділений сервер (dedicated) &amp;mdash; це коли весь фізичний ресурс ваш. Він дійсно &lt;strong data-start=&quot;9324&quot; data-end=&quot;9357&quot;&gt;потужніший і передбачуваніший&lt;/strong&gt; у піках, якщо проєкт великий. Але у VPS є свої сильні сторони.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;9422&quot; data-end=&quot;9476&quot;&gt;Переваги VPS (особливо хмарного)&lt;/h3&gt;<br />
&lt;ul data-start=&quot;9477&quot; data-end=&quot;9827&quot;&gt;<br />
&lt;li data-start=&quot;9477&quot; data-end=&quot;9525&quot;&gt;<br />
&lt;p data-start=&quot;9479&quot; data-end=&quot;9525&quot;&gt;&lt;strong data-start=&quot;9479&quot; data-end=&quot;9496&quot;&gt;Швидший старт&lt;/strong&gt;: підняв інстанс &amp;mdash; і працюєш.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9526&quot; data-end=&quot;9639&quot;&gt;<br />
&lt;p data-start=&quot;9528&quot; data-end=&quot;9639&quot;&gt;&lt;strong data-start=&quot;9528&quot; data-end=&quot;9552&quot;&gt;Гнучке масштабування&lt;/strong&gt;: треба більше RAM або CPU &amp;mdash; збільшив тариф/ресурс без міграцій (у багатьох сценаріях).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9640&quot; data-end=&quot;9722&quot;&gt;<br />
&lt;p data-start=&quot;9642&quot; data-end=&quot;9722&quot;&gt;&lt;strong data-start=&quot;9642&quot; data-end=&quot;9678&quot;&gt;Менше &amp;ldquo;залізного&amp;rdquo; головного болю&lt;/strong&gt;: не думаєш про фізичні диски, заміни, тощо.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9723&quot; data-end=&quot;9827&quot;&gt;<br />
&lt;p data-start=&quot;9725&quot; data-end=&quot;9827&quot;&gt;&lt;strong data-start=&quot;9725&quot; data-end=&quot;9745&quot;&gt;Ціна входу нижча&lt;/strong&gt;: щоб отримати нормальний продакшн-сервер під сайт, dedicated часто буде overkill.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;9829&quot; data-end=&quot;9872&quot;&gt;Коли краще одразу дивитися на &lt;a href=&quot;https://uhost.online/dedicated&quot;&gt;dedicated&lt;/a&gt;&lt;/h3&gt;<br />
&lt;ul data-start=&quot;9873&quot; data-end=&quot;10089&quot;&gt;<br />
&lt;li data-start=&quot;9873&quot; data-end=&quot;9945&quot;&gt;<br />
&lt;p data-start=&quot;9875&quot; data-end=&quot;9945&quot;&gt;стабільно велике навантаження (висока база трафіку, важкі обчислення);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;9946&quot; data-end=&quot;10015&quot;&gt;<br />
&lt;p data-start=&quot;9948&quot; data-end=&quot;10015&quot;&gt;дуже &amp;ldquo;важкі&amp;rdquo; бази даних або особливі вимоги до дискової підсистеми;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10016&quot; data-end=&quot;10089&quot;&gt;<br />
&lt;p data-start=&quot;10018&quot; data-end=&quot;10089&quot;&gt;потрібно максимум ізоляції &amp;ldquo;залізом&amp;rdquo; (або специфічні комплаєнс-вимоги).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;10091&quot; data-end=&quot;10202&quot;&gt;Але для більшості сайтів, магазинів та сервісів &lt;strong data-start=&quot;10139&quot; data-end=&quot;10168&quot;&gt;VPS &amp;mdash; це найкращий баланс&lt;/strong&gt; між ціною, свободою й потужністю.&lt;/p&gt;<br />
&lt;hr data-start=&quot;10204&quot; data-end=&quot;10207&quot;&gt;<br />
&lt;h1 data-start=&quot;10209&quot; data-end=&quot;10277&quot;&gt;Як зрозуміти, який VPS вам потрібен: кілька орієнтирів з досвіду&lt;/h1&gt;<br />
&lt;p data-start=&quot;10279&quot; data-end=&quot;10383&quot;&gt;Я не люблю обіцяти магічні цифри, бо продуктивність залежить від коду і кешування. Але є робочі правила:&lt;/p&gt;<br />
&lt;ul data-start=&quot;10385&quot; data-end=&quot;10760&quot;&gt;<br />
&lt;li data-start=&quot;10385&quot; data-end=&quot;10462&quot;&gt;<br />
&lt;p data-start=&quot;10387&quot; data-end=&quot;10462&quot;&gt;&lt;strong data-start=&quot;10387&quot; data-end=&quot;10415&quot;&gt;Лендінг / невеликий сайт&lt;/strong&gt;: мінімальний VPS + Nginx + кеш, якщо потрібно.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10463&quot; data-end=&quot;10576&quot;&gt;<br />
&lt;p data-start=&quot;10465&quot; data-end=&quot;10576&quot;&gt;&lt;strong data-start=&quot;10465&quot; data-end=&quot;10491&quot;&gt;&lt;a href=&quot;/blog/tag/wordpress&quot;&gt;WordPress&lt;/a&gt; із плагінами&lt;/strong&gt;: краще мати запас по RAM, плюс обов&amp;rsquo;язково OPcache і якийсь кеш (хоча б page cache).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10577&quot; data-end=&quot;10649&quot;&gt;<br />
&lt;p data-start=&quot;10579&quot; data-end=&quot;10649&quot;&gt;&lt;strong data-start=&quot;10579&quot; data-end=&quot;10605&quot;&gt;&lt;a href=&quot;/blog/tag/laravel&quot;&gt;Laravel&lt;/a&gt;/Node з чергами&lt;/strong&gt;: окремий воркер або хоча б ресурси під фон.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;10650&quot; data-end=&quot;10760&quot;&gt;<br />
&lt;p data-start=&quot;10652&quot; data-end=&quot;10760&quot;&gt;&lt;strong data-start=&quot;10652&quot; data-end=&quot;10672&quot;&gt;Інтернет-магазин&lt;/strong&gt;: RAM і диск мають значення; база даних та кеш &amp;mdash; вирішують більше, ніж &amp;ldquo;красивий тариф&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;10762&quot; data-end=&quot;11025&quot;&gt;Якщо мета &amp;mdash; &lt;strong&gt;купити vps дешево&lt;/strong&gt;, чесна порада така: економте, але не на критичному. Краще взяти трохи менший диск, але адекватну RAM, або навпаки &amp;mdash; залежно від вашого типу проєкту. Найдорожче в продакшні &amp;mdash; це не +5&amp;euro; на місяць, а день простою або втрачений продаж.&lt;/p&gt;<br />
&lt;p data-start=&quot;11079&quot; data-end=&quot;11259&quot;&gt;Якщо вам потрібен &lt;a href=&quot;https://uhost.online/vps&quot;&gt;&lt;strong data-start=&quot;11097&quot; data-end=&quot;11114&quot;&gt;vps для сайта&lt;/strong&gt;&lt;/a&gt;, щоб поставити WordPress, Laravel, магазин або API &amp;mdash; VPS закриває 90% задач: дає root-доступ, нормальну масштабованість і контроль над безпекою.&lt;/p&gt;<br />
&lt;p data-start=&quot;11261&quot; data-end=&quot;11428&quot;&gt;Якщо ви шукаєте &lt;strong data-start=&quot;11277&quot; data-end=&quot;11292&quot;&gt;швидкі vps&lt;/strong&gt;, звертайте увагу не лише на &amp;ldquo;гігагерци&amp;rdquo;, а на стек: тип віртуалізації (краще повна), диски, мережу та реальні можливості масштабування.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;11592&quot; data-end=&quot;11603&quot;&gt;Підсумок&lt;/h2&gt;<br />
&lt;p data-start=&quot;11605&quot; data-end=&quot;11910&quot;&gt;VPS сьогодні &amp;mdash; це не &amp;ldquo;компроміс&amp;rdquo;. Для більшості сайтів та онлайн-проєктів це &lt;strong data-start=&quot;11682&quot; data-end=&quot;11728&quot;&gt;нормальний формат інфраструктури&lt;/strong&gt;, який дає свободу розробнику та стабільність бізнесу. А &lt;strong data-start=&quot;11785&quot; data-end=&quot;11799&quot;&gt;хмарні VPS&lt;/strong&gt; додають ще один важливий плюс: гнучкість і керованість, коли проєкт росте, а часу на &amp;ldquo;серверні пригоди&amp;rdquo; немає.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  ]]></content:encoded>
 <pubDate>Sat, 10 Jan 2026 16:10:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>VPS</category>
  </item>
  <item>
 <title>Порівняння shared-хостингу та VPS: коли “шареду” достатньо, а коли краще переходити на VPS</title>
 <link>https://uhost.online/blog/porvnyannya-shared-khostingu-ta-vps-koli-sharedu-dostatno-a-koli-krashche-perekhoditi-na-vps</link>
 <guid isPermaLink="true">https://uhost.online/blog/porvnyannya-shared-khostingu-ta-vps-koli-sharedu-dostatno-a-koli-krashche-perekhoditi-na-vps</guid>
 <description><![CDATA[Чим реально відрізняється shared-хостинг від VPS, які проєкти комфортно живуть на &ldquo;шареді&rdquo;, коли VPS дає відчутний приріст швидкості та стабільності, як не переплатити за &ldquo;потужність&rdquo;, і які сигнали підкажуть, що час мігрувати]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/19_56_54_1767808649_6426.webp" alt="Порівняння shared-хостингу та VPS: коли &ldquo;шареду&rdquo; достатньо, а коли краще переходити на VPS" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p class=&quot;p1&quot;&gt;&lt;strong&gt;Порівняння shared-хостингу та VPS: коли shared достатньо, а коли краще VPS&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Є дві крайнощі, які я бачу постійно. Перша &amp;mdash; людина бере VPS &amp;ldquo;бо так надійніше&amp;rdquo;, а потім з&amp;rsquo;ясовує, що підтримувати сервер, оновлювати стек, слідкувати за безпекою і резервними копіями нікому, та й проєкт по факту не потребує цих ресурсів. Друга &amp;mdash; власник бізнес-сайту роками сидить на найдешевшому shared-хостингу, терпить падіння, &amp;ldquo;502&amp;rdquo;, повільний адмін-розділ і нестабільні піки, а потім дивується, чому SEO просідає і реклама дорожчає.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Правда, як завжди, посередині: &lt;strong&gt;shared-хостинг може бути ідеальним&lt;/strong&gt;, якщо він підібраний правильно і проєкт відповідає його можливостям. А &lt;strong&gt;VPS може бути найкращою інвестицією&lt;/strong&gt; у стабільність та швидкість, якщо ви дійсно вперлись у межі &amp;ldquo;шареду&amp;rdquo; або хочете контроль і масштабування.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Я пишу це як людина, яка і розробляла, і переносила, і &amp;ldquo;лікувала&amp;rdquo; десятки проєктів: від блогів на WordPress до Laravel-магазинів, і яка паралельно дивиться на все очима SEO (Core Web Vitals, TTFB, стабільність, індексація, краулінг, конверсії). Давайте спокійно й практично розкладемо: &lt;strong&gt;коли shared достатньо, а коли краще VPS&lt;/strong&gt;. В кінці дам зрозумілий чек-лист, по якому можна прийняти рішення без &amp;ldquo;віри в потужність&amp;rdquo;.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Що таке shared-хостинг простими словами&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Shared-хостинг (віртуальний хостинг) &amp;mdash; це коли &lt;strong&gt;на одному фізичному сервері живе багато сайтів різних клієнтів&lt;/strong&gt;, а доступ до системи і ресурсів організований через панель та політики обмежень. Ви отримуєте готове середовище: вебсервер, PHP, базу даних, пошту, резервні копії (інколи), SSL, панель керування. Вам не потрібно думати про &amp;ldquo;залізо&amp;rdquo; і ОС &amp;mdash; ви працюєте як з послугою.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Ключове: &lt;strong&gt;ви ділите ресурси з сусідами&lt;/strong&gt;. Провайдер може робити ізоляцію добре (ліміти CPU/RAM, cagefs/контейнери, обмеження по процесах, I/O), а може робити &amp;ldquo;аби було&amp;rdquo;. Саме тут народжується різниця між якісним shared і &amp;ldquo;дешево й сердито&amp;rdquo;.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Що таке VPS без міфів&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;VPS (Virtual Private Server) &amp;mdash; це &lt;strong&gt;віртуальна машина&lt;/strong&gt; з виділеними (або гарантованими) ресурсами в рамках фізичного сервера. У вас є своя ОС, свій стек, свої налаштування. Ви не ділите PHP-процеси з іншими клієнтами. Із сусідами ви все одно ділите фізичне залізо, але рівень ізоляції та передбачуваності значно вищий.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Ключове: &lt;strong&gt;ви отримуєте контроль, але й відповідальність&lt;/strong&gt;. Якщо вам ніхто не адмініструє сервер, то &amp;ldquo;VPS = свобода&amp;rdquo; легко перетворюється на &amp;ldquo;VPS = нескінченні дрібні задачі&amp;rdquo;.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Головна різниця: не &amp;ldquo;потужність&amp;rdquo;, а передбачуваність&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Люди часто уявляють, що shared &amp;mdash; &amp;ldquo;слабкий&amp;rdquo;, VPS &amp;mdash; &amp;ldquo;сильний&amp;rdquo;. Насправді важливіше інше:&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Shared&lt;/strong&gt;: середовище &amp;ldquo;як сервіс&amp;rdquo;, але ресурси можуть &amp;ldquo;плавати&amp;rdquo; через сусідів і політики провайдера.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;a href=&quot;https://uhost.online/vps&quot;&gt;&lt;strong&gt;VPS&lt;/strong&gt;&lt;/a&gt;: ви маєте більш прогнозовані ресурси, контроль конфігів, логів, кешів, правил безпеки, але мусите керувати цим.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Звідси випливає головне питання: &lt;strong&gt;вам потрібна простота чи контроль?&lt;/strong&gt; І що важливіше саме для вашого сайту: &amp;ldquo;щоб працювало без зайвих думок&amp;rdquo; чи &amp;ldquo;щоб я міг налаштувати все під себе й стабільно витримувати навантаження&amp;rdquo;.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;p&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Коли shared-хостингу реально достатньо&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Я не люблю, коли &lt;a href=&quot;https://uhost.online/hosting&quot;&gt;shared-хостинг&lt;/a&gt; подають як &amp;ldquo;для новачків&amp;rdquo; або &amp;ldquo;для дрібних сайтів&amp;rdquo;. Це не так. Я бачив shared, який працює відмінно, і бачив VPS, який був налаштований так криво, що сайт на ньому був повільніший, ніж на нормальному &amp;ldquo;шареді&amp;rdquo;.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Ось ситуації, де &lt;strong&gt;shared &amp;mdash; нормальний і раціональний вибір&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;1) Сайт-візитка, лендінг, портфоліо, невеликий корпоративний сайт&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо у вас 5&amp;ndash;30 сторінок, форма заявки, карта, кілька фото &amp;mdash; shared закриває потреби. Найчастіше вузьке місце тут не сервер, а важкі картинки, шрифти, криві скрипти і відсутність кешування.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;2) Блог на WordPress із помірним трафіком&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;WordPress може бути легким або важким &amp;mdash; залежно від теми, плагінів і того, чи є кеш. Якщо у вас адекватна тема, мінімум плагінів, увімкнено сторінковий кеш, оптимізовані зображення &amp;mdash; shared може тягнути доволі пристойні обсяги.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;3) Сайт на CMS, яка &amp;ldquo;не лізе&amp;rdquo; в системні налаштування&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Багато CMS не потребують екзотики: стандартний PHP, MySQL, нормальні ліміти &amp;mdash; і поїхали. Shared тут працює як &amp;ldquo;побутова техніка&amp;rdquo;: увімкнув і користуєшся.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;4) Проєкт без різких піків і без складних фоновых задач&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо у вас немає імпорту на 200 тисяч позицій, черг, важких cron-задач, генерації PDF тисячами, обробки відео, парсингу &amp;mdash; shared зручний і дешевший.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;5) Коли вам важливі &amp;ldquo;готові штуки&amp;rdquo; від провайдера&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Пошта, SSL, резервні копії, панель, швидкі оновлення PHP, автоінсталятори, захист від базових атак, підтримка &amp;mdash; це те, що на shared зазвичай &amp;ldquo;в комплекті&amp;rdquo;. На VPS це теж можна зробити, але це час, увага й гроші.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Коли VPS дає відчутну перевагу&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Тепер &amp;mdash; про моменти, коли VPS перестає бути &amp;ldquo;хотілкою&amp;rdquo; і стає логічним кроком.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;1) Ви впираєтесь у ліміти shared (CPU, RAM, процеси, I/O)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;На shared ліміти часто проявляються не як &amp;ldquo;помилка&amp;rdquo;, а як дивні симптоми: сайт то швидкий, то повільний; адмінка &amp;ldquo;думає&amp;rdquo;; імпорт падає; cron не встигає. На VPS ви можете виділити достатньо ресурсів і керувати ними.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Особливо важливий I/O (диск) і &amp;ldquo;сосіди&amp;rdquo;: якщо на тому ж сервері хтось робить важкі операції, ваш сайт може &amp;ldquo;пливти&amp;rdquo;, навіть якщо у вас невеликий трафік.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;2) Вам потрібні специфічні налаштування: Nginx, кеші, PHP-FPM, Redis, черги&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;На shared зазвичай є обмеження: ви не поставите Redis &amp;ldquo;як вам треба&amp;rdquo;, не налаштуєте Nginx під конкретні патерни, не введете тонкий контроль кешів і rate limiting. На VPS це &amp;mdash; ваш простір.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Для Laravel, наприклад, VPS часто відкриває нормальне життя з чергами (Redis/RabbitMQ), з supervisor/systemd, з окремими воркерами.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;3) Проєкт росте і вам потрібна стабільність під піки&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Акції, розсилки, рекламні кампанії, сезонність &amp;mdash; shared може витримувати, але інколи лотерея. VPS дає змогу підготуватися: кеш, правильні таймаути, воркери, баланс ресурсів.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;4) Питання безпеки й ізоляції&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;На якісному shared ізоляція зазвичай нормальна, але якщо у вас бізнес з чутливими даними, власні інтеграції, API, особисті кабінети, важливі SLA &amp;mdash; VPS часто виглядає спокійніше. Ви контролюєте оновлення, firewall, доступи, журналювання, політики.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;5) Вам потрібна &amp;ldquo;своя&amp;rdquo; архітектура деплою&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;CI/CD, staging, кілька середовищ, blue/green, окремі сервіси &amp;mdash; на shared це або неможливо, або незручно. VPS дозволяє організувати процеси &amp;ldquo;по-дорослому&amp;rdquo;.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Швидкість і SEO: де shared може бути норм, а де VPS виручає&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;З точки зору SEO мене цікавлять не &amp;ldquo;гігагерци&amp;rdquo;, а конкретні показники:&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;TTFB&lt;/strong&gt; (час до першого байта)&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;стабільність відповіді (без 5xx і &amp;ldquo;провалів&amp;rdquo;)&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Core Web Vitals&lt;/strong&gt; (LCP/INP/CLS) &amp;mdash; частково це фронт, але сервер теж впливає&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;швидкість краулінгу і відсутність &amp;ldquo;задушених&amp;rdquo; ботів&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;предсказуваність під піками&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Коли shared не заважає SEO&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо сайт кешується (сторінковий кеш), якщо у вас оптимізована база, немає важких запитів, нормальні картинки і CDN для статики &amp;mdash; shared може давати дуже пристойні метрики. Чесно кажучи, для багатьох сайтів &amp;ldquo;вузьке місце&amp;rdquo; &amp;mdash; це фронт, а не сервер.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Коли VPS піднімає SEO не &amp;ldquo;теоретично&amp;rdquo;, а практично&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;коли ви стабілізуєте TTFB (менше &amp;ldquo;плавання&amp;rdquo; від сусідів),&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;коли можете тонко налаштувати кешування (Nginx fastcgi_cache, Redis object cache, кеш заголовків),&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;коли можете ставити rate limiting для ботів/спаму і не &amp;ldquo;вбивати&amp;rdquo; сервер,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;коли можете винести важкі задачі в черги, а не виконувати в запиті,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;коли на shared вас обмежують таймаути/процеси і сайт інколи віддає 500/502.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Для SEO дуже важливий психологічний момент: &lt;strong&gt;стабільність&lt;/strong&gt;. Якщо сайт рідко, але регулярно відвалюється &amp;mdash; це удар і по індексації, і по конверсії.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Адміністрування: головна прихована ціна VPS&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Ось де багато хто &amp;ldquo;прогоряє&amp;rdquo;. VPS сам по собі &amp;mdash; не чарівна пігулка. Потрібно:&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;оновлювати ОС і пакети,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;налаштовувати firewall,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;слідкувати за логами,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;робити бекапи (і перевіряти відновлення),&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;налаштовувати моніторинг,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;слідкувати за диском, базою, чергами,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;налаштовувати пошту (або виносити на сторонні сервіси),&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;думати про атаки.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо у вас немає адміністратора і ви не хочете ним бути, тоді або:&lt;/p&gt;<br />
&lt;ol class=&quot;ol1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;беріть VPS з адмін-підтримкою (managed), або&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;залишайтесь на якісному shared, або&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;використовуйте панель керування на VPS (але все одно лишаються оновлення й безпека).&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Типові сценарії: що вибрати в реальних кейсах&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Кейc 1: Невеликий сайт послуг + реклама&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо реклама веде на 1&amp;ndash;5 сторінок, трафік рівний, форма проста &amp;mdash; shared достатньо. Я б інвестував у швидкі картинки, нормальну тему, кеш, CDN. VPS має сенс, якщо під час кампаній сайт просідає або з&amp;rsquo;являються 5xx.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Кейc 2: Інтернет-магазин на CMS (WooCommerce / OpenCart / PrestaShop)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо товарів мало, відвідуваність невисока, адекватні плагіни &amp;mdash; якісний shared може жити. Але магазини часто ростуть у ширину: фільтри, інтеграції, імпорти, пошук, персональні ціни. Тут VPS стає дуже логічним кроком, бо ви можете керувати кешем, базою, воркерами, cron.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Кейc 3: Laravel-проєкт із чергами та cron&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Тут я майже завжди дивлюсь у бік VPS. Laravel на shared може працювати, але як тільки з&amp;rsquo;являються черги, воркери, horizon, supervisor, Redis, планувальник &amp;mdash; VPS стає природним середовищем.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Кейc 4: Медіа-сайт/новини з піками&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Піки &amp;mdash; це про передбачуваність. Якщо на shared &amp;ldquo;лотерея&amp;rdquo;, VPS дозволяє підготуватися: агресивне кешування, правильний Nginx, стиснення, оптимальний PHP-FPM, розумна політика ботів.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Кейc 5: Кілька сайтів одного бізнесу&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо вам зручно все тримати в одному місці, на VPS можна розмістити кілька сайтів з нормальними ресурсами й політиками. Але тоді питання безпеки та ізоляції стає ще важливішим.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Трохи про виділені сервери&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;&lt;a href=&quot;https://uhost.online/dedicated&quot;&gt;Виділений сервер&lt;/a&gt; &amp;mdash; це вже інша ліга: повне залізо ваше. Він потрібен, коли:&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;VPS став замалий,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;потрібна максимальна стабільність без &amp;ldquo;спільного заліза&amp;rdquo;,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;специфічні вимоги по дискам, мережі, RAID, продуктивності бази,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;дуже високий трафік або важкі обчислення.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Але чесно: &lt;strong&gt;90% проєктів не потребують &amp;ldquo;дедика&amp;rdquo; на старті&lt;/strong&gt;. Частіше правильний шлях &amp;mdash; нормальний shared &amp;rarr; VPS &amp;rarr; (за потреби) dedicated або кластер.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;<br />
&lt;p&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Як зрозуміти, що час переходити з shared на VPS: сигнали &amp;ldquo;з практики&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Ось ознаки, які я сприймаю як &amp;ldquo;дзвіночки&amp;rdquo;:&lt;/p&gt;<br />
&lt;ol class=&quot;ol1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Сайт час від часу віддає 502/504&lt;/strong&gt;, особливо у піки або під час cron/імпорту.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Адмінка повільна&lt;/strong&gt;, а провайдер каже &amp;ldquo;у вас скрипти важкі&amp;rdquo; (і це може бути правдою, але на VPS ви зможете лікувати це системно).&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Потрібні черги, Redis, supervisor, systemd&lt;/strong&gt;, або хоча б нормальні воркери.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Ви впираєтесь у ліміти процесів/часу виконання&lt;/strong&gt; і це блокує розвиток (імпорт, генерація, розсилки).&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;TTFB &amp;ldquo;плаває&amp;rdquo;&lt;/strong&gt;: інколи 100&amp;ndash;200 мс, інколи 1&amp;ndash;2 секунди без видимих причин.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Безпека та контроль&lt;/strong&gt; стають важливішими: доступи, логування, політики, firewall.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&lt;strong&gt;Потрібні нестандартні конфіги&lt;/strong&gt; Nginx/Apache або специфічні модулі.&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Часті помилки при виборі VPS (і як їх уникнути)&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Помилка 1: купити занадто маленький VPS &amp;ldquo;на пробу&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Потім людина розчаровується: &amp;ldquo;VPS повільний&amp;rdquo;. А він не повільний &amp;mdash; просто 1 ядро і 1 ГБ RAM для важкого магазину або Laravel із чергами &amp;mdash; це мало. Для VPS важливо адекватно оцінити ресурси.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Помилка 2: перенести сайт на VPS і нічого не налаштувати&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Якщо ви перенесли WordPress на VPS, але не налаштували кеш, не оптимізували PHP-FPM, не ввімкнули правильні заголовки кешу, не поставили нормальний swap/limits &amp;mdash; ви не відчуєте &amp;ldquo;вау&amp;rdquo;. VPS розкривається через конфігурацію.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Помилка 3: забути про бекапи&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;На shared часто хоч якісь бекапи є &amp;ldquo;з коробки&amp;rdquo;. На VPS це ваша зона відповідальності. І найчастіша трагедія &amp;mdash; бекап є, але відновлення ніхто не перевіряв.&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Помилка 4: пошта на VPS &amp;ldquo;як-небудь&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Поштові історії &amp;mdash; складні. Для бізнесу я майже завжди раджу виносити пошту на спеціалізовані сервіси або використовувати рішення провайдера, а VPS лишати для сайту/аплікейшна.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Практичний підхід: як прийняти рішення без зайвих емоцій&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Я використовую просту логіку:&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Крок 1: Оцініть складність проєкту&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;Статичний/простий CMS &amp;mdash; shared ок.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;Магазин/кабінет/інтеграції/cron/черги &amp;mdash; дивимось у бік VPS.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Крок 2: Оцініть трафік і піки&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;Рівний трафік &amp;mdash; shared може бути достатнім.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;Піки/акції/сезонність &amp;mdash; VPS часто дає стабільність.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Крок 3: Оцініть вашу готовність адмініструвати&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;Немає адміна &amp;mdash; або managed VPS, або сильний shared.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;Є адмін/ви самі готові &amp;mdash; VPS дає більше контролю.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Крок 4: Перевірте реальні метрики&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Не &amp;ldquo;відчуття&amp;rdquo;, а цифри: TTFB, помилки 5xx, час відповіді адмінки, навантаження при імпорті. Якщо shared стабільний і швидкий &amp;mdash; немає сенсу тікати просто &amp;ldquo;бо VPS крутіше&amp;rdquo;.&lt;/p&gt;<br />
&lt;p class=&quot;p3&quot;&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Невеликий чек-лист: shared чи VPS саме для вашого сайту&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;&lt;strong&gt;Shared вам підходить, якщо:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;сайт простий (візитка/блог/невеликий корпоративний),&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;немає важких cron/черг/обробки великих даних,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;трафік помірний і без різких піків,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;вам важлива простота та підтримка &amp;ldquo;з коробки&amp;rdquo;,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;швидкість упирається більше у фронт, ніж у сервер.&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p class=&quot;p2&quot;&gt;&lt;strong&gt;VPS краще, якщо:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul class=&quot;ul1&quot;&gt;<br />
&lt;li class=&quot;li2&quot;&gt;з&amp;rsquo;являються черги, воркери, Redis, складні фонові задачі,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;ви впираєтесь у ліміти shared і це стримує розвиток,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;потрібні кастомні налаштування та контроль (Nginx, кеші, firewall),&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;є піки навантаження або важливий SLA,&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;ви готові адмініструвати або берете managed VPS.&lt;/li&gt;<br />
&lt;li class=&quot;li2&quot;&gt;&amp;nbsp;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;[[UHOST_BANNER:hosting]]&lt;/p&gt;<br />
&lt;p&gt;&amp;nbsp;&lt;/p&gt;<br />
&lt;p class=&quot;p4&quot;&gt;&lt;strong&gt;Висновок&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;&lt;a href=&quot;https://uhost.online/hosting&quot;&gt;Shared-хостинг&lt;/a&gt; &amp;mdash; це не &amp;ldquo;погано&amp;rdquo; і не &amp;ldquo;дешево для новачків&amp;rdquo;. Це &lt;strong&gt;раціональне рішення&lt;/strong&gt;, коли вам потрібна простота, готове середовище і проєкт не вимагає особливих налаштувань та ресурсу. VPS &amp;mdash; це не &amp;ldquo;просто потужніше&amp;rdquo;. Це &lt;strong&gt;контроль, передбачуваність і можливість будувати власну архітектуру&lt;/strong&gt;, але з відповідальністю за підтримку.&lt;/p&gt;<br />
&lt;p class=&quot;p2&quot;&gt;Тож як підсумок, я б сформулював так:&lt;br&gt;&lt;strong&gt;shared беріть тоді, коли хочете думати про сайт, а не про сервер; &lt;a href=&quot;https://uhost.online/vps&quot;&gt;VPS&lt;/a&gt; беріть тоді, коли сервер починає впливати на бізнес, швидкість і стабільність, або коли вам потрібні інструменти рівня &amp;ldquo;свій стек&amp;rdquo;.&lt;/strong&gt;&lt;/p&gt;
  <p><strong>Теги:</strong> 
 vps, hosting, dedicated </p>
  ]]></content:encoded>
 <pubDate>Wed, 07 Jan 2026 17:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Shared-хостинг</category>
  </item>
  <item>
 <title>Як правильно писати промпт для AI: щоб він допомагав</title>
 <link>https://uhost.online/blog/yak-pravilno-pisati-prompti-dlya-ai-shchob-vn-dopomagav</link>
 <guid isPermaLink="true">https://uhost.online/blog/yak-pravilno-pisati-prompti-dlya-ai-shchob-vn-dopomagav</guid>
 <description><![CDATA[Гайд про те, як формулювати запити до ChatGPT та інших AI: що писати в промпті, як задавати контекст і формат, чому &ldquo;зроби круто&rdquo; не працює, як отримувати тексти, код та плани, і що робити, якщо відповідь вийшла слабкою]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/20_27_24_1_1767641582_5722.webp" alt="Як правильно писати промпт для AI: щоб він допомагав" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h2 data-start=&quot;0&quot; data-end=&quot;57&quot;&gt;Як писати промпти для AI так, щоб це приносило користь&lt;/h2&gt;<br />
&lt;p data-start=&quot;59&quot; data-end=&quot;308&quot;&gt;Якщо чесно, більшість розчарувань в AI стаються не тому, що він &amp;laquo;поганий&amp;raquo; або &amp;laquo;дурний&amp;raquo;. А тому, що ми спілкуємося з ним так, ніби він має зрозуміти нас із півслова. На кшталт: &amp;laquo;Напиши статтю про SEO&amp;raquo;, &amp;laquo;Зроби стратегію продажів&amp;raquo;, &amp;laquo;Поясни Kubernetes&amp;raquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;310&quot; data-end=&quot;556&quot;&gt;Іноді він справді вгадує. Але частіше виходить рівно те, що й мало вийти з таким запитом: загальний текст, наче з методички. Не тому, що AI вередує, а тому, що ви відчинили йому надто широкі двері. Він зайшов &amp;mdash; і приніс найуніверсальніше, що міг.&lt;/p&gt;<br />
&lt;p data-start=&quot;558&quot; data-end=&quot;776&quot;&gt;Промпт &amp;mdash; це не магічна фраза. По суті, це постановка задачі. Як для співробітника, підрядника чи колеги. Чим точніше ви поясните, що саме потрібно, тим менше буде &amp;laquo;порожніх&amp;raquo; абзаців і тим більше &amp;mdash; реального результату.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;h2 data-start=&quot;783&quot; data-end=&quot;829&quot;&gt;Чому &amp;laquo;зроби красиво&amp;raquo; майже ніколи не працює&lt;/h2&gt;<br />
&lt;p data-start=&quot;831&quot; data-end=&quot;1057&quot;&gt;Уявіть, що ви пишете дизайнеру: &amp;laquo;Зроби банер красивий&amp;raquo;. Він, звісно, щось зробить. Але красивий для кого? Для якого бренду? Для якої аудиторії? Який стиль подобається &amp;mdash; мінімалізм чи &amp;laquo;дорого-багато&amp;raquo;? Якою мовою має бути текст?&lt;/p&gt;<br />
&lt;p data-start=&quot;1059&quot; data-end=&quot;1261&quot;&gt;З AI рівно та сама історія. Коли ви пишете &amp;laquo;зроби круто&amp;raquo;, він обирає найбезпечніший стиль &amp;mdash; нейтральний, узагальнений, без ризику. А ви потім дивитеся й думаєте: &amp;laquo;Ну так, ніби правильно&amp;hellip; але не чіпляє&amp;raquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;1263&quot; data-end=&quot;1433&quot;&gt;Щоб AI потрапив у ваші очікування, йому потрібні орієнтири: для кого, навіщо, який тон, який формат, які заборони. Це не ускладнення &amp;mdash; це економія часу. І вашого, і його.&lt;/p&gt;<br />
&lt;hr data-start=&quot;1435&quot; data-end=&quot;1438&quot;&gt;<br />
&lt;p data-start=&quot;1440&quot; data-end=&quot;1865&quot;&gt;Перед тим як розбирати поради щодо написання промптів, корисно навести лад у голові: &lt;strong data-start=&quot;1525&quot; data-end=&quot;1564&quot;&gt;які взагалі бувають підказки для AI&lt;/strong&gt; і чим вони відрізняються. Одні запити потрібні, щоб швидко отримати зрозумілу відповідь на питання. Інші допомагають &amp;laquo;докрутити&amp;raquo; думку, яку ви не встигли нормально сформулювати. Треті &amp;mdash; чудово підходять, коли потрібно порівняти сервіси, обрати тариф або розібратися, що краще саме для вашого проєкту.&lt;/p&gt;<br />
&lt;p data-start=&quot;1867&quot; data-end=&quot;1947&quot;&gt;Нижче &amp;mdash; найпрактичніші типи промптів, які найчастіше реально виручають у роботі.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;1954&quot; data-end=&quot;1969&quot;&gt;Інформаційні&lt;/h2&gt;<br />
&lt;p data-start=&quot;1970&quot; data-end=&quot;2182&quot;&gt;Це класичні запити &amp;laquo;поясни/розкажи/що таке&amp;hellip;&amp;raquo;. Вони підходять, коли вам потрібно швидко отримати визначення, пояснення простими словами або більш розгорнуту відповідь &amp;mdash; без занурення в документацію й довгі статті.&lt;/p&gt;<br />
&lt;p data-start=&quot;2184&quot; data-end=&quot;2396&quot;&gt;Приклади:&lt;br data-start=&quot;2193&quot; data-end=&quot;2196&quot;&gt;&amp;laquo;Поясни, що таке хостинг простими словами для людини, яка вперше робить сайт&amp;raquo;&lt;br data-start=&quot;2273&quot; data-end=&quot;2276&quot;&gt;або&lt;br data-start=&quot;2279&quot; data-end=&quot;2282&quot;&gt;&amp;laquo;Я хочу створити свій сайт, але взагалі нічого не розумію. Чув про CMS. Розкажи коротко, що це і навіщо потрібно&amp;raquo;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2403&quot; data-end=&quot;2432&quot;&gt;Аналітичні або порівняльні&lt;/h2&gt;<br />
&lt;p data-start=&quot;2433&quot; data-end=&quot;2758&quot;&gt;Ці промпти потрібні, коли ви обираєте між варіантами й хочете зрозуміти різницю за конкретними критеріями: ціна, швидкість, безпека, зручність, масштабованість. Тут важливо не обмежуватися фразою &amp;laquo;порівняй A і B&amp;raquo;, а одразу уточнити: &lt;strong data-start=&quot;2666&quot; data-end=&quot;2687&quot;&gt;за чим порівнюємо&lt;/strong&gt; і &lt;strong data-start=&quot;2690&quot; data-end=&quot;2729&quot;&gt;в якому вигляді ви хочете відповідь&lt;/strong&gt; &amp;mdash; таблиця, список, висновок.&lt;/p&gt;<br />
&lt;p data-start=&quot;2760&quot; data-end=&quot;3120&quot;&gt;Приклад:&lt;br data-start=&quot;2768&quot; data-end=&quot;2771&quot;&gt;&amp;laquo;Планую створити великий маркетплейс онлайн-курсів. Знайшов хостинг-провайдера, але не розумію, що обрати. Порівняй віртуальний хостинг і VPS для маркетплейсу. Зроби таблицю з плюсами й мінусами за критеріями: ціна, масштабованість, безпека, простота адміністрування. Наприкінці &amp;mdash; коротка рекомендація, що взяти на старті і що обрати під час росту&amp;raquo;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;3127&quot; data-end=&quot;3136&quot;&gt;Творчі&lt;/h2&gt;<br />
&lt;p data-start=&quot;3137&quot; data-end=&quot;3451&quot;&gt;Коли потрібна не &amp;laquo;правильна&amp;raquo; відповідь, а &lt;strong data-start=&quot;3179&quot; data-end=&quot;3187&quot;&gt;ідеї&lt;/strong&gt; &amp;mdash; цей тип промптів працює найкраще. Він допомагає придумати назви, слогани, теми для контенту, концепції, тексти для &amp;laquo;Про нас&amp;raquo;, сценарії реклами. Головне &amp;mdash; дати AI орієнтири: мета, аудиторія, стиль і обмеження (мова, довжина, слова, які не можна використовувати).&lt;/p&gt;<br />
&lt;p data-start=&quot;3453&quot; data-end=&quot;3705&quot;&gt;Приклад:&lt;br data-start=&quot;3461&quot; data-end=&quot;3464&quot;&gt;&amp;laquo;Придумай 5 креативних назв для українського інтернет-магазину, який продає фермерські сири з Карпат. Аудиторія &amp;mdash; мешканці міст, які цінують локальні продукти. Стиль &amp;mdash; теплий, атмосферний, з ноткою української ідентичності, без англіцизмів&amp;raquo;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;3712&quot; data-end=&quot;3724&quot;&gt;Покрокові&lt;/h2&gt;<br />
&lt;p data-start=&quot;3725&quot; data-end=&quot;4105&quot;&gt;Потрібні, коли ви хочете отримати не &amp;laquo;загальне пояснення&amp;raquo;, а чітку інструкцію: що робити спочатку, що потім, що важливо не забути. Такі промпти чудово підходять для налаштування сервісів, запусків проєктів, технічних задач. Щоб результат був корисним, уточнюйте: для кого інструкція (новачок/досвідчений), формат (абзацами чи нумерованим списком) і наскільки детально розписувати.&lt;/p&gt;<br />
&lt;p data-start=&quot;4107&quot; data-end=&quot;4327&quot;&gt;Приклад:&lt;br data-start=&quot;4115&quot; data-end=&quot;4118&quot;&gt;&amp;laquo;Опиши покроково, як створити простий сайт-візитку на WordPress для фрилансера. Орієнтуйся на новачка. Формат &amp;mdash; нумерований список до 8 кроків, без зайвої теорії. Наприкінці &amp;mdash; що перевірити перед публікацією&amp;raquo;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4334&quot; data-end=&quot;4347&quot;&gt;Підсумкові&lt;/h2&gt;<br />
&lt;p data-start=&quot;4348&quot; data-end=&quot;4626&quot;&gt;Один із найкорисніших типів промптів, бо він економить час. Він допомагає стиснути великий текст, виділити головне, зібрати висновки, підготувати короткий звіт або тези для презентації. Особливо зручно, коли ви знайшли статтю чи документ, але хочете зрозуміти &amp;laquo;суть&amp;raquo; за хвилину.&lt;/p&gt;<br />
&lt;p data-start=&quot;4628&quot; data-end=&quot;4768&quot;&gt;Приклад:&lt;br data-start=&quot;4636&quot; data-end=&quot;4639&quot;&gt;&amp;laquo;Скороти цей текст до 3 тез для внутрішнього звіту. Висновки мають бути короткими, по суті, без емоцій. Текст: [вставити текст]&amp;raquo;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4775&quot; data-end=&quot;4785&quot;&gt;Рольові&lt;/h2&gt;<br />
&lt;p data-start=&quot;4786&quot; data-end=&quot;5157&quot;&gt;Рольові промпти вмикають режим &amp;laquo;ніби ви спілкуєтеся з конкретним спеціалістом&amp;raquo;: маркетологом, юристом, викладачем, SEO-спеціалістом, редактором, тімлідом. Це допомагає AI підбирати правильну термінологію, тон і логіку відповіді. Такі запити особливо популярні для навчання (наприклад, англійської), але в роботі вони теж дуже сильні &amp;mdash; якщо ви чітко задаєте роль і задачу.&lt;/p&gt;<br />
&lt;p data-start=&quot;5159&quot; data-end=&quot;5424&quot;&gt;Приклад:&lt;br data-start=&quot;5167&quot; data-end=&quot;5170&quot;&gt;&amp;laquo;Уяви, що ти маркетолог українського інтернет-магазину одягу в стилі modern casual. Напиши SEO-текст для категорії &amp;ldquo;Чоловіче літнє взуття&amp;rdquo;. Мета &amp;mdash; залучити чоловіків 25&amp;ndash;35 років. Тон &amp;mdash; легкий і енергійний, з відчуттям свободи руху та стилю. До 120 слів&amp;raquo;.&lt;/p&gt;<br />
&lt;hr data-start=&quot;5426&quot; data-end=&quot;5429&quot;&gt;<br />
&lt;p data-start=&quot;5431&quot; data-end=&quot;5750&quot;&gt;Кожен із цих типів промптів можна використовувати для найрізноманітніших задач &amp;mdash; і при цьому зовсім не обов&amp;rsquo;язково мати доступ до найдорожчих AI-сервісів. Навіть безкоштовні версії інструментів часто чудово справляються з генерацією ідей, чернетками текстів, поясненнями, аналізом, навчанням і базовими задачами з коду.&lt;/p&gt;<br />
&lt;p data-start=&quot;5752&quot; data-end=&quot;6083&quot;&gt;І важливий момент: типи промптів не потрібно сприймати як &amp;laquo;строгі категорії&amp;raquo;. На практиці їх зручно змішувати. Наприклад, почати з інформаційного запиту, потім попросити порівняльний аналіз, а в кінці &amp;mdash; підсумковий висновок або чек-лист. Так ви отримуєте результат швидше й якісніше, ніж якщо намагатися &amp;laquo;впхнути все&amp;raquo; в одну фразу.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;6090&quot; data-end=&quot;6133&quot;&gt;AI краще працює, коли ви даєте йому роль&lt;/h2&gt;<br />
&lt;p data-start=&quot;6134&quot; data-end=&quot;6277&quot;&gt;Є популярний прийом: &amp;laquo;Ти &amp;mdash; експерт&amp;raquo;, &amp;laquo;Ти &amp;mdash; маркетолог&amp;raquo;, &amp;laquo;Ти &amp;mdash; юрист&amp;raquo;. Він справді допомагає, але лише якщо далі ви не пускаєте все на самоплив.&lt;/p&gt;<br />
&lt;p data-start=&quot;6279&quot; data-end=&quot;6412&quot;&gt;Наприклад: &amp;laquo;Ти &amp;mdash; SEO-спеціаліст. Напиши статтю&amp;raquo;. Це вже краще, ніж просто &amp;laquo;напиши статтю&amp;raquo;, але все одно замало. Нормально працює так:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6413&quot; data-end=&quot;6605&quot;&gt;<br />
&lt;li data-start=&quot;6413&quot; data-end=&quot;6470&quot;&gt;<br />
&lt;p data-start=&quot;6415&quot; data-end=&quot;6470&quot;&gt;хто цільова аудиторія (новачки/профі/власники бізнесу),&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6471&quot; data-end=&quot;6515&quot;&gt;<br />
&lt;p data-start=&quot;6473&quot; data-end=&quot;6515&quot;&gt;яка мета тексту (трафік/продажі/навчання),&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6516&quot; data-end=&quot;6564&quot;&gt;<br />
&lt;p data-start=&quot;6518&quot; data-end=&quot;6564&quot;&gt;який стиль потрібен (живий/строгий/розмовний),&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6565&quot; data-end=&quot;6605&quot;&gt;<br />
&lt;p data-start=&quot;6567&quot; data-end=&quot;6605&quot;&gt;що обов&amp;rsquo;язково згадати і чого уникати.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;6607&quot; data-end=&quot;6683&quot;&gt;І ось це вже дає відповідь, яку можна публікувати, а не переписувати з нуля.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;6690&quot; data-end=&quot;6713&quot;&gt;Контекст &amp;mdash; це паливо&lt;/h2&gt;<br />
&lt;p data-start=&quot;6714&quot; data-end=&quot;6937&quot;&gt;Є дві крайнощі. Перша &amp;mdash; контексту немає взагалі. Друга &amp;mdash; ви копіюєте AI все підряд: уривки статей, думки, посилання, скріншоти, &amp;laquo;розберись&amp;raquo;. У підсумку він відповідає довго, але не туди &amp;mdash; бо не зрозумів, що для вас головне.&lt;/p&gt;<br />
&lt;p data-start=&quot;6939&quot; data-end=&quot;7096&quot;&gt;Найкраще працює простий принцип: спочатку коротко пояснити, що ви робите і що хочете отримати, а потім додати 2&amp;ndash;3 деталі, які реально впливають на результат.&lt;/p&gt;<br />
&lt;p data-start=&quot;7098&quot; data-end=&quot;7334&quot;&gt;Наприклад, якщо вам потрібен текст для блогу хостингу, це сильно змінює подачу: важливі приклади, сценарії &amp;laquo;кому що обрати&amp;raquo;, трохи більше впевненого тону й акуратний заклик до дії. Якщо це стаття для особистого блогу &amp;mdash; стиль буде інший.&lt;/p&gt;<br />
&lt;p data-start=&quot;7336&quot; data-end=&quot;7586&quot;&gt;Якщо це SEO-матеріал &amp;mdash; важливо одразу сказати: чи потрібні Title/Description, чи потрібні H2/H3, чи потрібен FAQ, чи потрібні внутрішні посилання і які. І обов&amp;rsquo;язково &amp;mdash; що не можна робити (наприклад, не вставляти посилання на джерела, як ви просили).&lt;/p&gt;<br />
&lt;h2 data-start=&quot;7593&quot; data-end=&quot;7633&quot;&gt;Формат відповіді &amp;mdash; це половина успіху&lt;/h2&gt;<br />
&lt;p data-start=&quot;7634&quot; data-end=&quot;7831&quot;&gt;Дуже поширена ситуація: AI написав ніби нормальний текст, але він &amp;laquo;не влазить&amp;raquo; у вашу задачу. Ви просили статтю &amp;mdash; він дав набір тез. Ви хотіли людський стиль &amp;mdash; він видав &amp;laquo;пункти по одному реченню&amp;raquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;7833&quot; data-end=&quot;7877&quot;&gt;Тому формат краще задавати прямо. Наприклад:&lt;/p&gt;<br />
&lt;ul data-start=&quot;7878&quot; data-end=&quot;8139&quot;&gt;<br />
&lt;li data-start=&quot;7878&quot; data-end=&quot;7913&quot;&gt;<br />
&lt;p data-start=&quot;7880&quot; data-end=&quot;7913&quot;&gt;&amp;laquo;Зроби як статтю, а не як список&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7914&quot; data-end=&quot;7959&quot;&gt;<br />
&lt;p data-start=&quot;7916&quot; data-end=&quot;7959&quot;&gt;&amp;laquo;Менше нумерації, більше зв&amp;rsquo;язного викладу&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7960&quot; data-end=&quot;8031&quot;&gt;<br />
&lt;p data-start=&quot;7962&quot; data-end=&quot;8031&quot;&gt;&amp;laquo;Додай таблицю порівняння, але не перетворюй текст на табличний звіт&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8032&quot; data-end=&quot;8074&quot;&gt;<br />
&lt;p data-start=&quot;8034&quot; data-end=&quot;8074&quot;&gt;&amp;laquo;Наприкінці зроби висновок і м&amp;rsquo;який CTA&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8075&quot; data-end=&quot;8139&quot;&gt;<br />
&lt;p data-start=&quot;8077&quot; data-end=&quot;8139&quot;&gt;&amp;laquo;Стиль: як пише людина, з прикладами, без канцеляриту й кліше&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;8141&quot; data-end=&quot;8224&quot;&gt;Так, це звучить як ТЗ. І це нормально. Саме так AI починає потрапляти в очікування.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;8231&quot; data-end=&quot;8304&quot;&gt;Найкорисніше &amp;mdash; просити не &amp;laquo;ідеальний текст&amp;raquo;, а чернетку + допрацювання&lt;/h2&gt;<br />
&lt;p data-start=&quot;8305&quot; data-end=&quot;8510&quot;&gt;Якщо чесно: чекати, що з першого повідомлення вийде ідеально &amp;mdash; не найкраща стратегія. Набагато швидше працювати ітераціями. Але не так, як роблять багато хто (&amp;laquo;перероби, мені не подобається&amp;raquo;), а конкретно.&lt;/p&gt;<br />
&lt;p data-start=&quot;8512&quot; data-end=&quot;8527&quot;&gt;Хороший підхід:&lt;/p&gt;<br />
&lt;ol data-start=&quot;8528&quot; data-end=&quot;8692&quot;&gt;<br />
&lt;li data-start=&quot;8528&quot; data-end=&quot;8566&quot;&gt;<br />
&lt;p data-start=&quot;8531&quot; data-end=&quot;8566&quot;&gt;попросити структуру і короткі тези,&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8567&quot; data-end=&quot;8586&quot;&gt;<br />
&lt;p data-start=&quot;8570&quot; data-end=&quot;8586&quot;&gt;обрати напрямок,&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8587&quot; data-end=&quot;8630&quot;&gt;<br />
&lt;p data-start=&quot;8590&quot; data-end=&quot;8630&quot;&gt;попросити розгорнути в потрібному стилі,&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8631&quot; data-end=&quot;8692&quot;&gt;<br />
&lt;p data-start=&quot;8634&quot; data-end=&quot;8692&quot;&gt;потім &amp;laquo;докрутити&amp;raquo; кілька місць: вступ, висновок, приклади.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p data-start=&quot;8694&quot; data-end=&quot;8782&quot;&gt;AI добре справляється, якщо ви даєте конкретні інструкції: що саме виправити. Наприклад:&lt;/p&gt;<br />
&lt;ul data-start=&quot;8783&quot; data-end=&quot;9015&quot;&gt;<br />
&lt;li data-start=&quot;8783&quot; data-end=&quot;8836&quot;&gt;<br />
&lt;p data-start=&quot;8785&quot; data-end=&quot;8836&quot;&gt;&amp;laquo;Вступ занадто офіційний &amp;mdash; зроби простіше й живіше&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8837&quot; data-end=&quot;8894&quot;&gt;<br />
&lt;p data-start=&quot;8839&quot; data-end=&quot;8894&quot;&gt;&amp;laquo;Прибери шкільні визначення, додай практику й приклади&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8895&quot; data-end=&quot;8965&quot;&gt;<br />
&lt;p data-start=&quot;8897&quot; data-end=&quot;8965&quot;&gt;&amp;laquo;Забагато загальних слів &amp;mdash; дай більше конкретики для власника сайту&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;8966&quot; data-end=&quot;9015&quot;&gt;<br />
&lt;p data-start=&quot;8968&quot; data-end=&quot;9015&quot;&gt;&amp;laquo;Не роблю пункти по 1 рядку &amp;mdash; нехай текст тече&amp;raquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;9022&quot; data-end=&quot;9086&quot;&gt;Кілька прикладів: як одне й те саме можна запитати по-різному&lt;/h2&gt;<br />
&lt;p data-start=&quot;9087&quot; data-end=&quot;9130&quot;&gt;Поганий промпт:&lt;br data-start=&quot;9102&quot; data-end=&quot;9105&quot;&gt;&amp;laquo;Напиши статтю про QUIC&amp;raquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;9132&quot; data-end=&quot;9557&quot;&gt;Нормальний промпт:&lt;br data-start=&quot;9150&quot; data-end=&quot;9153&quot;&gt;&amp;laquo;Напиши статтю для блогу хостинг-провайдера про QUIC/HTTP3 у 2025 році. Мова українська. Обсяг 9&amp;ndash;12 тис. знаків. Стиль &amp;mdash; живий, як пише людина, без сухих пунктів і канцеляриту. Структура: Title, Description, короткий зміст, далі текст з H2/H3. Поясни, де QUIC реально дає вигоду (мобільні мережі, втрати пакетів), а де TCP ще довго буде потрібен. Наприкінці &amp;mdash; м&amp;rsquo;який CTA і перелінковка на VPS/DEDICATED&amp;raquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;9559&quot; data-end=&quot;9631&quot;&gt;Різниця в результаті зазвичай величезна, хоча запит &amp;laquo;по суті&amp;raquo; той самий.&lt;/p&gt;<br />
&lt;p data-start=&quot;9633&quot; data-end=&quot;9656&quot;&gt;Ще приклад із практики:&lt;/p&gt;<br />
&lt;p data-start=&quot;9658&quot; data-end=&quot;9711&quot;&gt;Поганий промпт:&lt;br data-start=&quot;9673&quot; data-end=&quot;9676&quot;&gt;&amp;laquo;Зроби мені план просування сайту&amp;raquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;9713&quot; data-end=&quot;9984&quot;&gt;Краще:&lt;br data-start=&quot;9719&quot; data-end=&quot;9722&quot;&gt;&amp;laquo;Склади план просування нового хостингу на 3 місяці. Мета &amp;mdash; органіка і перші ліди. Дай: структуру сайту, рубрики блогу, 20 тем статей, пріоритети, приклад внутрішньої перелінковки і 10 швидких покращень на сайті. Тон &amp;mdash; діловий. Не йди в теорію, пиши як практик&amp;raquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;9986&quot; data-end=&quot;10072&quot;&gt;AI одразу розуміє, що ви хочете. Не &amp;laquo;план взагалі&amp;raquo;, а план, який можна брати й робити.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;10079&quot; data-end=&quot;10136&quot;&gt;Кілька готових &amp;laquo;скелетів&amp;raquo; промптів, які економлять час&lt;/h2&gt;<br />
&lt;p data-start=&quot;10137&quot; data-end=&quot;10199&quot;&gt;Щоб не вигадувати щоразу з нуля, зручно тримати 2&amp;ndash;3 заготовки.&lt;/p&gt;<br />
&lt;p data-start=&quot;10201&quot; data-end=&quot;10552&quot;&gt;Для статті в блог (живий стиль):&lt;br data-start=&quot;10233&quot; data-end=&quot;10236&quot;&gt;&amp;laquo;Ти &amp;mdash; техрайтер. Напиши статтю для блогу на тему: ____. Мова: українська. Обсяг: __ знаків. Стиль: живий, як пише людина, без сухих пунктів. Структура: Title, Description, зміст, далі H2/H3, висновок. Обов&amp;rsquo;язково: ____. Заборонено: посилання на джерела, канцелярит, пункти по одному реченню. Додай перелінковку: __.&amp;raquo;&lt;/p&gt;<br />
&lt;p data-start=&quot;10554&quot; data-end=&quot;10748&quot;&gt;Для гайда:&lt;br data-start=&quot;10564&quot; data-end=&quot;10567&quot;&gt;&amp;laquo;Напиши практичний гайд: ____. Аудиторія: __. Поясни простими словами й наведи приклади. Додай блок &amp;ldquo;часті помилки&amp;rdquo; і &amp;ldquo;як перевірити, що все працює&amp;rdquo;. Не перетворюй текст на список.&amp;raquo;&lt;/p&gt;<br />
&lt;p data-start=&quot;10750&quot; data-end=&quot;10909&quot;&gt;Для коду:&lt;br data-start=&quot;10759&quot; data-end=&quot;10762&quot;&gt;&amp;laquo;Подивись код нижче. Потрібен рефакторинг без зміни логіки. Версія: ____. Дай: проблеми, покращення, фінальний код, короткі коментарі англійською.&amp;raquo;&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  <p><strong>Теги:</strong> 
 AI, ChatGPT, Promts </p>
  ]]></content:encoded>
 <pubDate>Mon, 05 Jan 2026 19:30:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Різне</category>
  </item>
  <item>
 <title>QUIC замість TCP у 2025: як змінюються інтернет-протоколи та чому HTTP/3 робить сайти швидшими</title>
 <link>https://uhost.online/blog/quic-zamst-tcp-u-2025-yak-zmnyuyutsya-nternet-protokoli-ta-chomu-http3-robit-sayti-shvidshimi</link>
 <guid isPermaLink="true">https://uhost.online/blog/quic-zamst-tcp-u-2025-yak-zmnyuyutsya-nternet-protokoli-ta-chomu-http3-robit-sayti-shvidshimi</guid>
 <description><![CDATA[Детально й по-людськи пояснюємо, що таке QUIC і HTTP/3, чим вони відрізняються від TCP/HTTP/2, чому сучасний інтернет &ldquo;втомився&rdquo; від старих підходів, і як увімкнути HTTP/3 на сервері або через CDN, щоб прискорити сайт та покращити користувацький досвід.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage2202602_26_52_1767313644_8415.webp" alt="QUIC замість TCP у 2025: як змінюються інтернет-протоколи та чому HTTP/3 робить сайти швидшими" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;704&quot; data-end=&quot;1195&quot;&gt;&amp;mdash; Чому інтернету стало &amp;ldquo;тісно&amp;rdquo; в рамках TCP&lt;br data-start=&quot;773&quot; data-end=&quot;776&quot;&gt;&amp;mdash; Як TCP дає надійність і де саме гальмує&lt;br data-start=&quot;817&quot; data-end=&quot;820&quot;&gt;&amp;mdash; QUIC: ідея, яка виросла з мобільного інтернету&lt;br data-start=&quot;868&quot; data-end=&quot;871&quot;&gt;&amp;mdash; HTTP/3: що спільного з QUIC і чому це важливо власнику сайту&lt;br data-start=&quot;933&quot; data-end=&quot;936&quot;&gt;&amp;mdash; Як QUIC поводиться при втраті пакетів і зміні мережі&lt;br data-start=&quot;990&quot; data-end=&quot;993&quot;&gt;&amp;mdash; Безпека &amp;ldquo;за замовчуванням&amp;rdquo; і чому це не завжди плюс для всіх&lt;br data-start=&quot;1055&quot; data-end=&quot;1058&quot;&gt;&amp;mdash; Як перейти на HTTP/3: сервер або CDN&lt;br data-start=&quot;1096&quot; data-end=&quot;1099&quot;&gt;&amp;mdash; Як перевірити, що сайт реально працює на HTTP/3&lt;br data-start=&quot;1148&quot; data-end=&quot;1151&quot;&gt;&amp;mdash; Чому TCP не зникне завтра (і це нормально)&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1197&quot; data-end=&quot;1242&quot;&gt;Чому інтернету стало &amp;ldquo;тісно&amp;rdquo; в рамках TCP&lt;/h3&gt;<br />
&lt;p data-start=&quot;1243&quot; data-end=&quot;1596&quot;&gt;Є дивна річ: ми звикли вимірювати швидкість інтернету мегабітами, але в реальному житті часто програємо не через &amp;ldquo;ширину каналу&amp;rdquo;, а через затримки й поведінку протоколів. Сайт може бути легким, сервер &amp;mdash; потужним, а відчуття все одно таке, ніби сторінка &amp;ldquo;думає&amp;rdquo;. Особливо на мобільному інтернеті, у поїзді, в метро, під час перемикань між Wi-Fi і LTE/5G.&lt;/p&gt;<br />
&lt;p data-start=&quot;1598&quot; data-end=&quot;1964&quot;&gt;Причина проста: сучасна вебсторінка &amp;mdash; це не один файл, як у 2005-му. Це десятки й сотні дрібних запитів: стилі, шрифти, скрипти, картинки, аналітика, віджети, відео, API. І кожен зайвий крок у встановленні з&amp;rsquo;єднання, кожна пауза при повторних спробах &amp;mdash; множиться на кількість ресурсів. У якийсь момент &amp;ldquo;старий добрий&amp;rdquo; TCP починає заважати там, де потрібна плавність.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1966&quot; data-end=&quot;2010&quot;&gt;TCP: чому він надійний і де саме гальмує&lt;/h3&gt;<br />
&lt;p data-start=&quot;2011&quot; data-end=&quot;2297&quot;&gt;TCP заслужив свою репутацію. Він робить те, що бізнес любить найбільше: гарантує доставку. Дані йдуть пакетами, пакети нумеруються, і якщо щось загубилось &amp;mdash; воно буде доставлене повторно. Завдяки цьому TCP роками залишався фундаментом вебу, банківських сервісів, пошти, передачі файлів.&lt;/p&gt;<br />
&lt;p data-start=&quot;2299&quot; data-end=&quot;2394&quot;&gt;Але &amp;ldquo;надійність&amp;rdquo; у TCP має ціну. Є два моменти, які в сучасному інтернеті відчуваються болісно:&lt;/p&gt;<br />
&lt;p data-start=&quot;2396&quot; data-end=&quot;2568&quot;&gt;По-перше, встановлення з&amp;rsquo;єднання вимагає кількох кроків обміну сигналами. Для людини це мілісекунди, але для сторінки з багатьма ресурсами &amp;mdash; це десятки шансів втратити час.&lt;/p&gt;<br />
&lt;p data-start=&quot;2570&quot; data-end=&quot;2846&quot;&gt;По-друге, TCP має &amp;ldquo;вроджену&amp;rdquo; поведінку: якщо втратився один пакет, протокол може притримати інші потоки даних, доки той пакет не буде доставлено повторно. На папері це звучить правильно, а на практиці &amp;mdash; створює підгальмовування, навіть якщо більша частина сторінки вже готова.&lt;/p&gt;<br />
&lt;p data-start=&quot;2848&quot; data-end=&quot;3104&quot;&gt;А тепер додай третє: люди часто змінюють мережу. З TCP перемикання між Wi-Fi і мобільним інтернетом легко перериває з&amp;rsquo;єднання й змушує починати &amp;ldquo;з нуля&amp;rdquo;. Так виникають підвисання відео, обриви завантажень і перезавантаження сторінок у найневдаліший момент.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]`&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3106&quot; data-end=&quot;3159&quot;&gt;QUIC: протокол, який виріс з мобільного інтернету&lt;/h3&gt;<br />
&lt;p data-start=&quot;3160&quot; data-end=&quot;3531&quot;&gt;QUIC з&amp;rsquo;явився не &amp;ldquo;заради моди&amp;rdquo;. Його ідея народилась там, де TCP болить найбільше: мобільні мережі, нестабільний зв&amp;rsquo;язок, постійні перемикання. QUIC взяв за основу UDP &amp;mdash; дуже швидкий і простий транспорт, який історично вважали &amp;ldquo;ненадійним&amp;rdquo;. Але замість того, щоб миритися з цим, у QUIC додали те, чого UDP не мав: контроль помилок, мультиплексування потоків і шифрування.&lt;/p&gt;<br />
&lt;p data-start=&quot;3533&quot; data-end=&quot;3672&quot;&gt;Виходить цікава комбінація: QUIC намагається бути настільки ж швидким, як UDP, але достатньо керованим і безпечним, щоб підходити для вебу.&lt;/p&gt;<br />
&lt;p data-start=&quot;3674&quot; data-end=&quot;3925&quot;&gt;Ключова різниця в тому, що QUIC скорочує &amp;ldquo;ритуали знайомства&amp;rdquo; між клієнтом і сервером. Де TCP проходить більше кроків, QUIC прагне зробити їх менше. А якщо користувач уже підключався до цього сервера, повторні підключення можуть відбуватися ще швидше.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3927&quot; data-end=&quot;3978&quot;&gt;HTTP/3: чому це не &amp;ldquo;просто ще одна версія HTTP&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;3979&quot; data-end=&quot;4194&quot;&gt;Багато хто чує &amp;ldquo;HTTP/3&amp;rdquo; і думає: &amp;ldquo;Ну ок, буде як HTTP/2, тільки трішки швидше&amp;rdquo;. Насправді важливо інше: HTTP/1.1 та HTTP/2 працюють поверх TCP, а HTTP/3 &amp;mdash; поверх QUIC. Тобто це не косметичне оновлення, а зміна бази.&lt;/p&gt;<br />
&lt;p data-start=&quot;4196&quot; data-end=&quot;4502&quot;&gt;Для власника сайту це означає просту річ: якщо твоя інфраструктура підтримує HTTP/3, користувачі можуть отримати більш плавне завантаження, особливо в умовах нестабільного зв&amp;rsquo;язку. Це не чарівна кнопка &amp;ldquo;мінус 70% часу&amp;rdquo;, але це реальне поліпшення того, що часто псує досвід: затримок, обривів і &amp;ldquo;підвисань&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;4504&quot; data-end=&quot;4546&quot;&gt;Що QUIC робить краще у реальному житті&lt;/h3&gt;<br />
&lt;p data-start=&quot;4547&quot; data-end=&quot;4609&quot;&gt;Є два сценарії, де QUIC відчувається максимально &amp;ldquo;по-людськи&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;4611&quot; data-end=&quot;4882&quot;&gt;Перший &amp;mdash; втрата пакетів. У сучасному вебі у тебе одночасно йдуть різні потоки: щось завантажується, щось рендериться, щось підтягує дані. QUIC організований так, щоб проблема в одному потоці менше блокувала інші. В результаті сторінка частіше &amp;ldquo;живе&amp;rdquo;, а не стоїть і чекає.&lt;/p&gt;<br />
&lt;p data-start=&quot;4884&quot; data-end=&quot;5132&quot;&gt;Другий &amp;mdash; зміна мережі. QUIC може зберігати логіку з&amp;rsquo;єднання так, щоб перемикання між мережами проходило м&amp;rsquo;якіше. Для користувача це виглядає як &amp;ldquo;нічого не сталося&amp;rdquo;: відео не обірвалося, сторінка не перезавантажилася, форма не втратила введені дані.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;5134&quot; data-end=&quot;5201&quot;&gt;Безпека &amp;ldquo;за замовчуванням&amp;rdquo; і чому це не завжди всім подобається&lt;/h3&gt;<br />
&lt;p data-start=&quot;5202&quot; data-end=&quot;5362&quot;&gt;HTTP/3 поверх QUIC передбачає шифрування як базову норму. Для більшості сайтів це очевидний плюс: дані захищені, приватність краща, а ризики перехоплення нижчі.&lt;/p&gt;<br />
&lt;p data-start=&quot;5364&quot; data-end=&quot;5671&quot;&gt;Але є нюанс: корпоративні мережі та системи аналізу трафіку люблять &amp;ldquo;прозорість&amp;rdquo;. Там, де раніше безпека й моніторинг будувалися навколо TCP-підходів, нова модель інколи сприймається як занадто &amp;ldquo;закрита&amp;rdquo;. Через це частина інфраструктур досі ставиться до QUIC обережно або блокує UDP-трафік на певних рівнях.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;5673&quot; data-end=&quot;5713&quot;&gt;Як перейти на HTTP/3: сервер або CDN&lt;/h3&gt;<br />
&lt;p data-start=&quot;5714&quot; data-end=&quot;5748&quot;&gt;На практиці є два нормальні шляхи.&lt;/p&gt;<br />
&lt;p data-start=&quot;5750&quot; data-end=&quot;6030&quot;&gt;Перший &amp;mdash; увімкнути підтримку HTTP/3 на хостингу/сервері, якщо вона доступна на рівні панелі або конфігурації. Тут важлива інфраструктура: не кожне середовище готове &amp;ldquo;з коробки&amp;rdquo;, але якщо провайдер уже підтримує HTTP/3, для власника сайту це часто зводиться до простого перемикача.&lt;/p&gt;<br />
&lt;p data-start=&quot;6032&quot; data-end=&quot;6233&quot;&gt;Другий &amp;mdash; використати CDN, який термінує HTTP/3 на своїй стороні. Це зручно, коли ти не хочеш лізти в налаштування сервера або коли у тебе кілька серверів/локацій, і потрібен єдиний &amp;ldquo;вхід&amp;rdquo; для клієнтів.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;6235&quot; data-end=&quot;6278&quot;&gt;Як перевірити, що HTTP/3 реально працює&lt;/h3&gt;<br />
&lt;p data-start=&quot;6279&quot; data-end=&quot;6630&quot;&gt;Важливо не плутати &amp;ldquo;у нас увімкнено&amp;rdquo; і &amp;ldquo;у користувачів працює&amp;rdquo;. Перевірка зазвичай зводиться до того, щоб подивитися, який протокол використовується при з&amp;rsquo;єднанні, і чи є оголошення підтримки HTTP/3. Якщо у твоєму випадку корпоративні мережі блокують UDP, частина клієнтів може автоматично падати назад на HTTP/2 &amp;mdash; і це нормальний сценарій сумісності.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;6632&quot; data-end=&quot;6661&quot;&gt;Чому TCP не зникне завтра&lt;/h3&gt;<br />
&lt;p data-start=&quot;6662&quot; data-end=&quot;6928&quot;&gt;І це, чесно кажучи, навіть добре. Інтернет &amp;mdash; дуже консервативна система. Повна заміна протоколів &amp;ldquo;одним махом&amp;rdquo; &amp;mdash; рецепт для масштабних проблем. TCP ще довго буде потрібен там, де критична сумісність, прозорість мережевого контролю або специфічні сценарії надійності.&lt;/p&gt;<br />
&lt;p data-start=&quot;6930&quot; data-end=&quot;7115&quot;&gt;Реалістична картина на найближчі роки така: QUIC/HTTP/3 зростатимуть там, де важливі швидкість, мобільність і плавність, а TCP продовжить працювати паралельно, як перевірений фундамент.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  <p><strong>Теги:</strong> 
 HTTP/3, HTTP/2, QUIC, TCP </p>
  ]]></content:encoded>
 <pubDate>Thu, 01 Jan 2026 20:20:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>CMS та сайти</category>
  </item>
  <item>
 <title>S3-сховище простими словами: що це таке, чим відрізняється від диска і коли потрібне бізнесу</title>
 <link>https://uhost.online/blog/s3-skhovishche-prostimi-slovami-shcho-tse-take-chim-vdrznyatsya-vd-diska-koli-potrbne-bznesu</link>
 <guid isPermaLink="true">https://uhost.online/blog/s3-skhovishche-prostimi-slovami-shcho-tse-take-chim-vdrznyatsya-vd-diska-koli-potrbne-bznesu</guid>
 <description><![CDATA[Гайд про S3-сумісне сховище: як працює object storage, чим він відрізняється від file та block storage, коли S3 краще за FTP/Google Drive/NAS і як побудувати надійне зберігання та бекапи без зайвих витрат.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage31202523_01_49_1767215016_8366.webp" alt="S3-сховище простими словами: що це таке, чим відрізняється від диска і коли потрібне бізнесу" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;813&quot; data-end=&quot;1125&quot;&gt;&lt;strong data-start=&quot;813&quot; data-end=&quot;836&quot;&gt;Коротке оглавлення:&lt;/strong&gt;&lt;br data-start=&quot;836&quot; data-end=&quot;839&quot;&gt;&amp;mdash; Чому &amp;ldquo;файли на сервері&amp;rdquo; перестають бути зручними&lt;br data-start=&quot;889&quot; data-end=&quot;892&quot;&gt;&amp;mdash; Object storage (S3): логіка та ключові поняття&lt;br data-start=&quot;940&quot; data-end=&quot;943&quot;&gt;&amp;mdash; Object vs file vs block: різниця без &amp;ldquo;академізму&amp;rdquo;&lt;br data-start=&quot;994&quot; data-end=&quot;997&quot;&gt;&amp;mdash; Коли S3 виграє у FTP/WebDAV, Drive/Dropbox і NAS&lt;br data-start=&quot;1047&quot; data-end=&quot;1050&quot;&gt;&amp;mdash; S3 для бекапів: як мислити правильно&lt;br data-start=&quot;1088&quot; data-end=&quot;1091&quot;&gt;&amp;mdash; Типові помилки та як їх уникнути&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1127&quot; data-end=&quot;1187&quot;&gt;Чому &amp;ldquo;просто зберігати файли на сервері&amp;rdquo; вже не вистачає&lt;/h3&gt;<br />
&lt;p data-start=&quot;1188&quot; data-end=&quot;1715&quot;&gt;На старті проєкту все здається простим: є сайт, є сервер, є папка &lt;code data-start=&quot;1254&quot; data-end=&quot;1263&quot;&gt;uploads&lt;/code&gt;. Працює &amp;mdash; не чіпай. Але з часом починаються типові бізнесові болі. Файлів стає багато, вони важкі, їх треба віддавати клієнтам швидко, а сервер &amp;mdash; не гумовий. Паралельно з&amp;rsquo;являються бекапи, міграції, кілька середовищ (prod/stage), підрядники, яким треба доступ &amp;ldquo;тільки до частини&amp;rdquo;. І ось &amp;ldquo;одна папка на сервері&amp;rdquo; перетворюється на хаос: щось випадково стерли, щось перезаписали, посилання зламалися, а найгірше &amp;mdash; бекап є, але відновлення займає пів дня.&lt;/p&gt;<br />
&lt;p data-start=&quot;1717&quot; data-end=&quot;1914&quot;&gt;S3-сховище закриває ці проблеми не магією, а іншим підходом. Воно не &amp;ldquo;як диск&amp;rdquo;, воно працює як сервіс зберігання об&amp;rsquo;єктів, де кожен файл &amp;mdash; окремий об&amp;rsquo;єкт із ключем, метаданими та правилами доступу.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1916&quot; data-end=&quot;1966&quot;&gt;Що таке S3-сумісне сховище і як воно &amp;ldquo;мислить&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;1967&quot; data-end=&quot;2431&quot;&gt;S3 часто називають &amp;ldquo;хмарним диском&amp;rdquo;, але це вводить в оману. У класичному диску ти мислиш папками і шляхами, операційна система працює з файлами як із блоками на носії. У S3 ти мислиш інакше: є &lt;strong data-start=&quot;2161&quot; data-end=&quot;2171&quot;&gt;bucket&lt;/strong&gt; (умовно &amp;ldquo;контейнер&amp;rdquo;), а всередині &amp;mdash; &lt;strong data-start=&quot;2208&quot; data-end=&quot;2219&quot;&gt;objects&lt;/strong&gt; (об&amp;rsquo;єкти). Об&amp;rsquo;єкт має &lt;strong data-start=&quot;2242&quot; data-end=&quot;2249&quot;&gt;key&lt;/strong&gt; &amp;mdash; рядок, який виглядає як шлях (&lt;code data-start=&quot;2282&quot; data-end=&quot;2310&quot;&gt;photos/2025/aug/img001.jpg&lt;/code&gt;), але насправді це просто ідентифікатор. &amp;ldquo;Папки&amp;rdquo; &amp;mdash; це зручність для людини, а не обов&amp;rsquo;язкова структура файлової системи.&lt;/p&gt;<br />
&lt;p data-start=&quot;2433&quot; data-end=&quot;2666&quot;&gt;Чому це корисно? Бо з точки зору сервісу об&amp;rsquo;єкти можна зберігати масштабовано і надійно, а доступ до них контролювати дуже гнучко: політиками, ключами доступу, тимчасовими посиланнями, окремими &amp;ldquo;субакаунтами&amp;rdquo; для команди чи клієнтів.&lt;/p&gt;<br />
&lt;p data-start=&quot;2668&quot; data-end=&quot;2932&quot;&gt;Ще один важливий момент &amp;mdash; S3 добре дружить з автоматизацією. Якщо у тебе є скрипти, CI/CD, резервне копіювання, то S3 стає &amp;ldquo;стандартним місцем призначення&amp;rdquo;: залив дамп БД, залив архів проєкту, залив медіа &amp;mdash; і все це живе окремо від сервера, не забиваючи його диск.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2934&quot; data-end=&quot;2992&quot;&gt;Object vs File vs Block &amp;mdash; різниця, яку реально відчуєш&lt;/h3&gt;<br />
&lt;p data-start=&quot;2993&quot; data-end=&quot;3062&quot;&gt;Цю трійцю часто пояснюють занадто академічно, тому поясню по-людськи.&lt;/p&gt;<br />
&lt;p data-start=&quot;3064&quot; data-end=&quot;3424&quot;&gt;&lt;strong data-start=&quot;3064&quot; data-end=&quot;3081&quot;&gt;Block storage&lt;/strong&gt; &amp;mdash; це коли тобі дають &amp;ldquo;сирий диск&amp;rdquo;, який підключається до сервера як окремий том. Ти сам робиш файлову систему, сам керуєш структурою, сам відповідаєш за те, як дані лежать. Плюс &amp;mdash; швидко, добре для баз даних і систем, які хочуть стабільну низьку затримку. Мінус &amp;mdash; це по суті частина сервера, і масштабування/роздача/доступи вирішуються тобою.&lt;/p&gt;<br />
&lt;p data-start=&quot;3426&quot; data-end=&quot;3767&quot;&gt;&lt;strong data-start=&quot;3426&quot; data-end=&quot;3442&quot;&gt;File storage&lt;/strong&gt; &amp;mdash; це &amp;ldquo;мережеві папки&amp;rdquo; (Samba/NFS/WebDAV у певних реалізаціях). Людям зручно, бо виглядає як звичайний файловий сервер: папки, права доступу, провідник. Плюс &amp;mdash; зрозуміло. Мінус &amp;mdash; у великих масштабах або при багатьох паралельних доступах може ставати складно і дорого, а інтеграція з додатками не завжди така гладка, як із S3.&lt;/p&gt;<br />
&lt;p data-start=&quot;3769&quot; data-end=&quot;4142&quot;&gt;&lt;strong data-start=&quot;3769&quot; data-end=&quot;3792&quot;&gt;Object storage (S3)&lt;/strong&gt; &amp;mdash; це сервіс, який найкраще почувається, коли треба зберігати &amp;ldquo;маси файлів&amp;rdquo;: медіа, архіви, бекапи, артефакти збірок, логи, експорт/імпорт. Він не про &amp;ldquo;монтування диска&amp;rdquo;, а про API: завантажити/отримати/видалити/дати доступ. Плюс &amp;mdash; масштабованість і контроль доступу. Мінус &amp;mdash; якщо ти хочеш, щоб БД працювала &amp;ldquo;як на локальному диску&amp;rdquo;, S3 не для цього.&lt;/p&gt;<br />
&lt;p data-start=&quot;4144&quot; data-end=&quot;4303&quot;&gt;Правильна стратегія часто гібридна: база даних живе на block storage (або локальному NVMe), сайт віддає код з сервера, а все важке &amp;mdash; медіа і бекапи &amp;mdash; їде в S3.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;4305&quot; data-end=&quot;4354&quot;&gt;Коли S3 краще за FTP/WebDAV та &amp;ldquo;звичні файли&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;4355&quot; data-end=&quot;4553&quot;&gt;FTP/SFTP &amp;mdash; класика, але вона про ручні процеси: залив/скачав, &amp;ldquo;ось логін-пароль&amp;rdquo;. Коли в тебе з&amp;rsquo;являється команда, багато проєктів, потрібна автоматизація та історія змін, FTP починає тягнути назад.&lt;/p&gt;<br />
&lt;p data-start=&quot;4555&quot; data-end=&quot;4571&quot;&gt;S3 виграє, коли:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4572&quot; data-end=&quot;4848&quot;&gt;<br />
&lt;li data-start=&quot;4572&quot; data-end=&quot;4668&quot;&gt;<br />
&lt;p data-start=&quot;4574&quot; data-end=&quot;4668&quot;&gt;файли треба віддавати клієнтам або сервісам контрольовано (тимчасові лінки, read-only доступ);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4669&quot; data-end=&quot;4727&quot;&gt;<br />
&lt;p data-start=&quot;4671&quot; data-end=&quot;4727&quot;&gt;потрібні інтеграції (бекап-софт, rclone, restic, CI/CD);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4728&quot; data-end=&quot;4810&quot;&gt;<br />
&lt;p data-start=&quot;4730&quot; data-end=&quot;4810&quot;&gt;даних багато і вони ростуть, а ти не хочеш без кінця апгрейдити диск на сервері;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4811&quot; data-end=&quot;4848&quot;&gt;<br />
&lt;p data-start=&quot;4813&quot; data-end=&quot;4848&quot;&gt;важлива безпека доступу &amp;ldquo;по ролях&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4850&quot; data-end=&quot;5015&quot;&gt;WebDAV і &amp;ldquo;мережевий диск&amp;rdquo; зручні як UX-інструмент, але в бізнес-сценаріях зазвичай перемагає комбінація: для людей &amp;mdash; зручний доступ, для систем &amp;mdash; S3-API як стандарт.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;5017&quot; data-end=&quot;5071&quot;&gt;S3 проти Google Drive/Dropbox: де різниця відчутна&lt;/h3&gt;<br />
&lt;p data-start=&quot;5072&quot; data-end=&quot;5348&quot;&gt;Drive/Dropbox чудові для документів і спільної роботи, але у них часто інша модель: вони &amp;ldquo;про користувача&amp;rdquo;, а не &amp;ldquo;про систему&amp;rdquo;. Для бекапів, великих архівів і інтеграцій вони не завжди зручні: обмеження, нюанси з посиланнями, правилами зберігання, швидкістю та автоматизацією.&lt;/p&gt;<br />
&lt;p data-start=&quot;5350&quot; data-end=&quot;5546&quot;&gt;S3 &amp;mdash; це про контроль і передбачуваність: є бакет, є політики, є правила життєвого циклу, є інтеграції з інструментами резервного копіювання. Для бізнесу це часто важливіше, ніж &amp;ldquo;гарний інтерфейс&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;5548&quot; data-end=&quot;5610&quot;&gt;S3 проти NAS: чому &amp;ldquo;вдома дешевше&amp;rdquo; інколи виходить дорожче&lt;/h3&gt;<br />
&lt;p data-start=&quot;5611&quot; data-end=&quot;5876&quot;&gt;NAS &amp;mdash; класний, поки ти чітко розумієш, навіщо він. Якщо це локальний архів і є дисципліна бекапів &amp;mdash; супер. Але коли NAS стає &amp;ldquo;єдиним місцем&amp;rdquo;, бізнес отримує ризики: електрика, диски, фізичний доступ, аварії, і головне &amp;mdash; відповідальність за надійність лягає на тебе.&lt;/p&gt;<br />
&lt;p data-start=&quot;5878&quot; data-end=&quot;6079&quot;&gt;S3 знімає з тебе частину цієї операційної рутини: ти не думаєш про RAID і заміну дисків &amp;mdash; ти думаєш про політики доступу, шифрування і процес відновлення. Для компаній це зазвичай більш здоровий фокус.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;6081&quot; data-end=&quot;6133&quot;&gt;S3 для бекапів: як мислити, щоб потім не плакати&lt;/h3&gt;<br />
&lt;p data-start=&quot;6134&quot; data-end=&quot;6257&quot;&gt;Найпоширеніша помилка &amp;mdash; робити бекап &amp;ldquo;для галочки&amp;rdquo;. Правильний бекап &amp;mdash; це той, який ти вмієш відновити. Тому логіка проста:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6258&quot; data-end=&quot;6460&quot;&gt;<br />
&lt;li data-start=&quot;6258&quot; data-end=&quot;6325&quot;&gt;<br />
&lt;p data-start=&quot;6260&quot; data-end=&quot;6325&quot;&gt;бекап має бути &lt;strong data-start=&quot;6275&quot; data-end=&quot;6289&quot;&gt;регулярним&lt;/strong&gt;, &lt;strong data-start=&quot;6291&quot; data-end=&quot;6307&quot;&gt;автоматичним&lt;/strong&gt; і &lt;strong data-start=&quot;6310&quot; data-end=&quot;6324&quot;&gt;з ротацією&lt;/strong&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6326&quot; data-end=&quot;6404&quot;&gt;<br />
&lt;p data-start=&quot;6328&quot; data-end=&quot;6404&quot;&gt;бажано мати кілька рівнів (наприклад, щоденні інкременти + щотижневі повні);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6405&quot; data-end=&quot;6460&quot;&gt;<br />
&lt;p data-start=&quot;6407&quot; data-end=&quot;6460&quot;&gt;треба інколи тестувати відновлення хоча б на staging.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;6462&quot; data-end=&quot;6632&quot;&gt;S3 тут ідеальний як &amp;ldquo;приймальний склад&amp;rdquo;: він не забиває твої сервери, не залежить від одного диска і добре працює з інструментами, які роблять дедуплікацію та інкременти.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;6634&quot; data-end=&quot;6652&quot;&gt;Типові помилки&lt;/h3&gt;<br />
&lt;p data-start=&quot;6653&quot; data-end=&quot;6694&quot;&gt;Є кілька речей, які часто псують картину:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6695&quot; data-end=&quot;6996&quot;&gt;<br />
&lt;li data-start=&quot;6695&quot; data-end=&quot;6744&quot;&gt;<br />
&lt;p data-start=&quot;6697&quot; data-end=&quot;6744&quot;&gt;&amp;ldquo;відкритий бакет&amp;rdquo; або випадково публічні файли;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6745&quot; data-end=&quot;6795&quot;&gt;<br />
&lt;p data-start=&quot;6747&quot; data-end=&quot;6795&quot;&gt;ключі доступу без обмежень, які гуляють у чатах;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6796&quot; data-end=&quot;6846&quot;&gt;<br />
&lt;p data-start=&quot;6798&quot; data-end=&quot;6846&quot;&gt;відсутність ротації (бекапи ростуть безкінечно);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6847&quot; data-end=&quot;6909&quot;&gt;<br />
&lt;p data-start=&quot;6849&quot; data-end=&quot;6909&quot;&gt;версії файлів, які накопичуються і непомітно з&amp;rsquo;їдають обсяг;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6910&quot; data-end=&quot;6996&quot;&gt;<br />
&lt;p data-start=&quot;6912&quot; data-end=&quot;6996&quot;&gt;відсутність плану відновлення (&amp;ldquo;де лежить дамп, як його розгорнути, хто це робить&amp;rdquo;).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;6998&quot; data-end=&quot;7101&quot;&gt;Якщо це врахувати на старті, S3 стає не просто &amp;ldquo;ще одним сховищем&amp;rdquo;, а нормальним фундаментом для росту.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  <p><strong>Теги:</strong> 
 S3, FTP, NAS, File storage, Object storage </p>
  ]]></content:encoded>
 <pubDate>Wed, 31 Dec 2025 19:45:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Сховища та бекапи</category>
  </item>
  <item>
 <title>Бекапи в S3 без болю: WordPress, Laravel, статичні сайти, MySQL/PostgreSQL, 3-2-1, rclone, Borg/Restic і версіонування</title>
 <link>https://uhost.online/blog/bekapi-v-s3-bez-bolyu-wordpress-laravel-statichn-sayti-mysqlpostgresql-3-2-1-rclone-borgrestic-versonuvannya</link>
 <guid isPermaLink="true">https://uhost.online/blog/bekapi-v-s3-bez-bolyu-wordpress-laravel-statichn-sayti-mysqlpostgresql-3-2-1-rclone-borgrestic-versonuvannya</guid>
 <description><![CDATA[Практичний гайд: як налаштувати резервні копії сайту та бази даних у S3, додати шифрування і ротацію, зібрати схему 3-2-1 без оверкілу, підключити rclone як &ldquo;диск&rdquo;, використовувати Borg/Restic для дедуплікації та швидких інкрементів, і як вмикати версіонування в S3 так, щоб не переплачувати.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage31202523_29_15_1767216572_4490.webp" alt="Бекапи в S3 без болю: WordPress, Laravel, статичні сайти, MySQL/PostgreSQL, 3-2-1, rclone, Borg/Restic і версіонування" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h3 data-start=&quot;1364&quot; data-end=&quot;1410&quot;&gt;Чому S3 &amp;mdash; це &amp;ldquo;правильне місце&amp;rdquo; для бекапів&lt;/h3&gt;<br />
&lt;p data-start=&quot;1411&quot; data-end=&quot;1770&quot;&gt;Найгірший бекап &amp;mdash; це бекап, який лежить поруч із тим, що він має рятувати. Якщо сервер упав, диск заповнився або хтось видалив дані &amp;mdash; &amp;ldquo;локальна копія&amp;rdquo; часто зникає разом з проблемою. S3-сховище логічно вирішує цю пастку: бекапи живуть окремо від сервера, їх легко автоматизувати, а доступ можна жорстко обмежити під задачу &amp;ldquo;тільки запис&amp;rdquo; або &amp;ldquo;тільки читання&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1772&quot; data-end=&quot;1820&quot;&gt;3-2-1 без оверкілу: як зібрати здорову схему&lt;/h3&gt;<br />
&lt;p data-start=&quot;1821&quot; data-end=&quot;1967&quot;&gt;Сенс 3-2-1 простий: &lt;strong data-start=&quot;1841&quot; data-end=&quot;1852&quot;&gt;3 копії&lt;/strong&gt;, &lt;strong data-start=&quot;1854&quot; data-end=&quot;1871&quot;&gt;2 різні носії&lt;/strong&gt;, &lt;strong data-start=&quot;1873&quot; data-end=&quot;1907&quot;&gt;1 копія поза основною локацією&lt;/strong&gt;. Для більшості сайтів це можна зробити без складних систем:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1968&quot; data-end=&quot;2219&quot;&gt;<br />
&lt;li data-start=&quot;1968&quot; data-end=&quot;2009&quot;&gt;<br />
&lt;p data-start=&quot;1970&quot; data-end=&quot;2009&quot;&gt;перша копія &amp;mdash; &amp;ldquo;робочі дані&amp;rdquo; на сервері;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2010&quot; data-end=&quot;2112&quot;&gt;<br />
&lt;p data-start=&quot;2012&quot; data-end=&quot;2112&quot;&gt;друга &amp;mdash; локальний бекап на цьому ж сервері або на іншій машині (короткий термін, наприклад 1&amp;ndash;3 дні);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2113&quot; data-end=&quot;2219&quot;&gt;<br />
&lt;p data-start=&quot;2115&quot; data-end=&quot;2219&quot;&gt;третя &amp;mdash; S3 як віддалене сховище з ротацією за періодами (наприклад: 7 щоденних, 4 тижневих, 6 місячних).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2221&quot; data-end=&quot;2322&quot;&gt;Фокус тут не в кількості &amp;ldquo;галочок&amp;rdquo;, а в тому, щоб ти реально міг відновитися за зрозумілим сценарієм.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2324&quot; data-end=&quot;2385&quot;&gt;Як бекапити сайт у S3: WordPress, Laravel, статичні сайти&lt;/h3&gt;<br />
&lt;p data-start=&quot;2386&quot; data-end=&quot;2488&quot;&gt;Є універсальна логіка: &lt;strong data-start=&quot;2409&quot; data-end=&quot;2425&quot;&gt;файли + база&lt;/strong&gt;. Файли &amp;mdash; це код/контент/завантаження, база &amp;mdash; це &amp;ldquo;життя&amp;rdquo; сайту.&lt;/p&gt;<br />
&lt;h4 data-start=&quot;2490&quot; data-end=&quot;2528&quot;&gt;WordPress: файлові дані + дамп БД&lt;/h4&gt;<br />
&lt;p data-start=&quot;2529&quot; data-end=&quot;2701&quot;&gt;Найчастіше достатньо архівувати &lt;code data-start=&quot;2561&quot; data-end=&quot;2573&quot;&gt;wp-content&lt;/code&gt; (теми, плагіни, uploads) і робити дамп БД. Сам core WordPress за потреби легко відновлюється з дистрибутива, а от контент &amp;mdash; ні.&lt;/p&gt;<br />
&lt;p data-start=&quot;2703&quot; data-end=&quot;2749&quot;&gt;Приклад під cron (ідея, яку легко адаптувати):&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;&lt;span class=&quot;hljs-comment&quot;&gt;# 1) Дамп БД&lt;/span&gt;<br />
mysqldump --single-transaction -uDBUSER -p&lt;span class=&quot;hljs-string&quot;&gt;&#039;DBPASS&#039;&lt;/span&gt; DBNAME | gzip &amp;gt; /backup/wp-db-$(&lt;span class=&quot;hljs-built_in&quot;&gt;date&lt;/span&gt; +%F).sql.gz<br />
<br />
&lt;span class=&quot;hljs-comment&quot;&gt;# 2) Архів wp-content&lt;/span&gt;<br />
tar -czf /backup/wp-content-$(&lt;span class=&quot;hljs-built_in&quot;&gt;date&lt;/span&gt; +%F).tar.gz /var/www/site/wp-content<br />
<br />
&lt;span class=&quot;hljs-comment&quot;&gt;# 3) Відправка в S3 через rclone (або aws cli)&lt;/span&gt;<br />
rclone copy /backup remote-s3:backups/site/wp/ --transfers=4<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;h4 data-start=&quot;3080&quot; data-end=&quot;3133&quot;&gt;Laravel: &amp;ldquo;важка&amp;rdquo; частина &amp;mdash; storage та env-логіка&lt;/h4&gt;<br />
&lt;p data-start=&quot;3134&quot; data-end=&quot;3465&quot;&gt;У Laravel зазвичай важливо не забути &lt;code data-start=&quot;3171&quot; data-end=&quot;3184&quot;&gt;storage/app&lt;/code&gt;, &lt;code data-start=&quot;3186&quot; data-end=&quot;3205&quot;&gt;storage/framework&lt;/code&gt; (не все треба), &lt;code data-start=&quot;3222&quot; data-end=&quot;3236&quot;&gt;storage/logs&lt;/code&gt; (зазвичай не треба в бекап), і користувацькі завантаження, якщо вони зберігаються локально. Далі &amp;mdash; дамп БД і відправка в S3. Якщо статичні файли/кеші генеруються автоматично &amp;mdash; їх у бекап краще не тягнути, щоб не роздувати обсяг.&lt;/p&gt;<br />
&lt;p data-start=&quot;3467&quot; data-end=&quot;3480&quot;&gt;Базова схема:&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;tar -czf /backup/laravel-files-$(&lt;span class=&quot;hljs-built_in&quot;&gt;date&lt;/span&gt; +%F).tar.gz \<br />
  /var/www/app/storage/app \<br />
  /var/www/app/public/uploads<br />
<br />
pg_dump -Fc -U DBUSER DBNAME &amp;gt; /backup/laravel-db-$(&lt;span class=&quot;hljs-built_in&quot;&gt;date&lt;/span&gt; +%F).dump<br />
<br />
rclone copy /backup remote-s3:backups/site/laravel/<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;h4 data-start=&quot;3726&quot; data-end=&quot;3764&quot;&gt;Статичні сайти: простіше не буває&lt;/h4&gt;<br />
&lt;p data-start=&quot;3765&quot; data-end=&quot;4028&quot;&gt;Статика &amp;mdash; ідеальний кандидат для швидких бекапів. Якщо сайт збирається з репозиторію, інколи достатньо бекапити тільки &amp;ldquo;вміст&amp;rdquo; (build) і конфіги, а &amp;ldquo;джерело&amp;rdquo; і так живе в Git. Але якщо статика редагується руками на сервері &amp;mdash; архівуй папку сайту і відправляй у S3.&lt;/p&gt;<br />
&lt;hr data-start=&quot;4030&quot; data-end=&quot;4033&quot;&gt;<br />
&lt;h3 data-start=&quot;4035&quot; data-end=&quot;4093&quot;&gt;Бекап БД у S3: MySQL/PostgreSQL + шифрування + ротація&lt;/h3&gt;<br />
&lt;p data-start=&quot;4094&quot; data-end=&quot;4220&quot;&gt;У базі даних зберігається найцінніше, тому до неї ставляться суворіше: дамп має бути консистентним, зашифрованим і з ротацією.&lt;/p&gt;<br />
&lt;p data-start=&quot;4222&quot; data-end=&quot;4268&quot;&gt;&lt;strong data-start=&quot;4222&quot; data-end=&quot;4241&quot;&gt;MySQL / MariaDB&lt;/strong&gt; (консистентно для InnoDB):&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;mysqldump --single-transaction --quick -uDBUSER -p&lt;span class=&quot;hljs-string&quot;&gt;&#039;DBPASS&#039;&lt;/span&gt; DBNAME | gzip &amp;gt; /backup/db-$(&lt;span class=&quot;hljs-built_in&quot;&gt;date&lt;/span&gt; +%F).sql.gz<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;p data-start=&quot;4387&quot; data-end=&quot;4428&quot;&gt;&lt;strong data-start=&quot;4387&quot; data-end=&quot;4401&quot;&gt;PostgreSQL&lt;/strong&gt; (зручно у форматі custom):&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;pg_dump -Fc -U DBUSER DBNAME &amp;gt; /backup/db-$(&lt;span class=&quot;hljs-built_in&quot;&gt;date&lt;/span&gt; +%F).dump<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;p data-start=&quot;4501&quot; data-end=&quot;4552&quot;&gt;&lt;strong data-start=&quot;4501&quot; data-end=&quot;4515&quot;&gt;Шифрування&lt;/strong&gt; (простий та надійний варіант &amp;mdash; GPG):&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;gpg --batch --&lt;span class=&quot;hljs-built_in&quot;&gt;yes&lt;/span&gt; --symmetric --cipher-algo AES256 \<br />
  --passphrase &lt;span class=&quot;hljs-string&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot;&gt;$BACKUP_PASSPHRASE&lt;/span&gt;&lt;/span&gt;&quot; \<br />
  /backup/db-$(&lt;span class=&quot;hljs-built_in&quot;&gt;date&lt;/span&gt; +%F).dump<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;p data-start=&quot;4687&quot; data-end=&quot;4832&quot;&gt;Після цього відправляєш у S3, а локально тримаєш коротку &amp;ldquo;гарячу&amp;rdquo; історію (наприклад 1&amp;ndash;3 дні), щоб швидко відновлюватися без скачування з мережі.&lt;/p&gt;<br />
&lt;p data-start=&quot;4834&quot; data-end=&quot;4875&quot;&gt;&lt;strong data-start=&quot;4834&quot; data-end=&quot;4845&quot;&gt;Ротація&lt;/strong&gt; краще робиться двома рівнями:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4876&quot; data-end=&quot;5055&quot;&gt;<br />
&lt;li data-start=&quot;4876&quot; data-end=&quot;4964&quot;&gt;<br />
&lt;p data-start=&quot;4878&quot; data-end=&quot;4964&quot;&gt;на сервері: видаляєш старі файли за N днів (&lt;code data-start=&quot;4922&quot; data-end=&quot;4962&quot;&gt;find /backup -type f -mtime +3 -delete&lt;/code&gt;);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4965&quot; data-end=&quot;5055&quot;&gt;<br />
&lt;p data-start=&quot;4967&quot; data-end=&quot;5055&quot;&gt;у S3: задаєш політики життєвого циклу (щоб старі точки відкату не накопичувались вічно).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;5057&quot; data-end=&quot;5105&quot;&gt;rclone + S3: &amp;ldquo;хмара як диск&amp;rdquo; і синхронізація&lt;/h3&gt;<br />
&lt;p data-start=&quot;5106&quot; data-end=&quot;5414&quot;&gt;rclone зручний тим, що з ним S3 починає виглядати як звичне сховище: копіювання, синхронізація, перевірки, ліміти швидкості. Для бекапів важливо не плутати &lt;code data-start=&quot;5262&quot; data-end=&quot;5268&quot;&gt;copy&lt;/code&gt; і &lt;code data-start=&quot;5271&quot; data-end=&quot;5277&quot;&gt;sync&lt;/code&gt;: &lt;strong data-start=&quot;5279&quot; data-end=&quot;5295&quot;&gt;sync видаляє&lt;/strong&gt; зайве на стороні призначення, тому для історії бекапів частіше використовують &lt;code data-start=&quot;5374&quot; data-end=&quot;5380&quot;&gt;copy&lt;/code&gt; (щоб нічого випадково не стерти).&lt;/p&gt;<br />
&lt;p data-start=&quot;5416&quot; data-end=&quot;5431&quot;&gt;Типовий шаблон:&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;rclone copy /backup remote-s3:backups/site/ --transfers=4 --checkers=8<br />
rclone lsf remote-s3:backups/site/<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;p data-start=&quot;5551&quot; data-end=&quot;5613&quot;&gt;А якщо треба &amp;ldquo;як диск&amp;rdquo; для робочих процесів &amp;mdash; можна монтувати:&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;rclone mount remote-s3:backups /mnt/s3 --vfs-cache-mode full<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;h3 data-start=&quot;5688&quot; data-end=&quot;5741&quot;&gt;Borg/Restic + S3: коли хочеться швидко і економно&lt;/h3&gt;<br />
&lt;p data-start=&quot;5742&quot; data-end=&quot;6036&quot;&gt;Borg і Restic цінні тим, що вони роблять &lt;strong data-start=&quot;5783&quot; data-end=&quot;5799&quot;&gt;дедуплікацію&lt;/strong&gt; та &lt;strong data-start=&quot;5803&quot; data-end=&quot;5817&quot;&gt;інкременти&lt;/strong&gt;: ти не заливаєш щодня повний архів на терабайт, а відправляєш тільки різницю. Це економить і час, і місце, і нерви. Плюс відновлення часто швидше, ніж із &amp;ldquo;купи архівів&amp;rdquo;, бо інструмент тримає структурований репозиторій.&lt;/p&gt;<br />
&lt;p data-start=&quot;6038&quot; data-end=&quot;6066&quot;&gt;&lt;strong data-start=&quot;6038&quot; data-end=&quot;6066&quot;&gt;Restic (приклад логіки):&lt;/strong&gt;&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;&lt;span class=&quot;hljs-built_in&quot;&gt;export&lt;/span&gt; RESTIC_REPOSITORY=&lt;span class=&quot;hljs-string&quot;&gt;&quot;s3:s3.example.com/backups/site&quot;&lt;/span&gt;<br />
&lt;span class=&quot;hljs-built_in&quot;&gt;export&lt;/span&gt; RESTIC_PASSWORD=&lt;span class=&quot;hljs-string&quot;&gt;&quot;&lt;span class=&quot;hljs-variable&quot;&gt;$RESTIC_PASS&lt;/span&gt;&lt;/span&gt;&quot;<br />
<br />
restic backup /var/www/site /etc/nginx<br />
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune<br />
restic snapshots<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;p data-start=&quot;6303&quot; data-end=&quot;6379&quot;&gt;Це виглядає як нормальний процес, а не як &amp;ldquo;архіви, які колись знадобляться&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;6381&quot; data-end=&quot;6434&quot;&gt;Версіонування в S3: як не переплачувати за сміття&lt;/h3&gt;<br />
&lt;p data-start=&quot;6435&quot; data-end=&quot;6694&quot;&gt;Версіонування &amp;mdash; корисне, але підступне. Воно може тихо подвоїти або потроїти споживання, якщо у тебе часто перезаписуються великі файли або ти активно використовуєш синхронізацію. Суть проста: кожне &amp;ldquo;оновлення&amp;rdquo; створює нову версію, а стара залишається лежати.&lt;/p&gt;<br />
&lt;p data-start=&quot;6696&quot; data-end=&quot;6728&quot;&gt;Щоб версіонування було вигідним:&lt;/p&gt;<br />
&lt;ul data-start=&quot;6729&quot; data-end=&quot;7124&quot;&gt;<br />
&lt;li data-start=&quot;6729&quot; data-end=&quot;6825&quot;&gt;<br />
&lt;p data-start=&quot;6731&quot; data-end=&quot;6825&quot;&gt;вмикай його там, де це реально потрібно (критичні файли/бекапи, а не будь-які тимчасові дані);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6826&quot; data-end=&quot;6928&quot;&gt;<br />
&lt;p data-start=&quot;6828&quot; data-end=&quot;6928&quot;&gt;налаштовуй &lt;strong data-start=&quot;6839&quot; data-end=&quot;6852&quot;&gt;lifecycle&lt;/strong&gt; на старі версії: наприклад, тримати попередні версії 14&amp;ndash;30 днів і видаляти;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;6929&quot; data-end=&quot;7026&quot;&gt;<br />
&lt;p data-start=&quot;6931&quot; data-end=&quot;7026&quot;&gt;слідкуй за &amp;ldquo;delete markers&amp;rdquo; і незавершеними multipart-upload &amp;mdash; це теж може накопичувати сміття;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7027&quot; data-end=&quot;7124&quot;&gt;<br />
&lt;p data-start=&quot;7029&quot; data-end=&quot;7124&quot;&gt;розділяй бакети або префікси: &amp;ldquo;backups/&amp;rdquo; окремо, &amp;ldquo;uploads/&amp;rdquo; окремо, щоб правила не змішувалися.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;<br />
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
  <p><strong>Теги:</strong> 
 S3, Backup, WordPress, Laravel, MySQL, PostgreSQL, rclone </p>
  ]]></content:encoded>
 <pubDate>Tue, 30 Dec 2025 18:30:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Сховища та бекапи</category>
  </item>
  <item>
 <title>Anti-DDoS захист для наших клієнтів: як ми “гасимо” атаки на мережі та як захистити сайт через Cloudflare і Nginx (L7)</title>
 <link>https://uhost.online/blog/anti-ddos-zakhist-dlya-nashikh-klntv-yak-mi-gasimo-ataki-na-merezh-ta-yak-posiliti-sayt-cherez-cloudflare-nginx-l7</link>
 <guid isPermaLink="true">https://uhost.online/blog/anti-ddos-zakhist-dlya-nashikh-klntv-yak-mi-gasimo-ataki-na-merezh-ta-yak-posiliti-sayt-cherez-cloudflare-nginx-l7</guid>
 <description><![CDATA[Великий гайд про DDoS-захист: яку базову мережну фільтрацію ми надаємо клієнтам, як працює очищення трафіку на L3/L4, чому L7-атаки потребують окремих рішень, як правильно підключити Cloudflare, увімкнути WAF та rate limiting, і як налаштувати Nginx]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/uhost_antiddos_banner_en_1766999517_4643.webp" alt="Anti-DDoS захист для наших клієнтів: як ми &ldquo;гасимо&rdquo; атаки на мережі та як захистити сайт через Cloudflare і Nginx (L7)" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;744&quot; data-end=&quot;1094&quot;&gt;&lt;strong data-start=&quot;744&quot; data-end=&quot;767&quot;&gt;Коротке оглавлення:&lt;/strong&gt;&lt;br data-start=&quot;767&quot; data-end=&quot;770&quot;&gt;&amp;mdash; DDoS без міфів: що ламають і чому &amp;ldquo;замок&amp;rdquo; не рятує&lt;br data-start=&quot;822&quot; data-end=&quot;825&quot;&gt;&amp;mdash; Наш базовий захист на мережі: що він робить і що відсікає&lt;br data-start=&quot;884&quot; data-end=&quot;887&quot;&gt;&amp;mdash; Чому L7 &amp;mdash; найпідступніший рівень і як його розпізнати&lt;br data-start=&quot;942&quot; data-end=&quot;945&quot;&gt;&amp;mdash; Cloudflare як щит: налаштування, які реально працюють&lt;br data-start=&quot;1000&quot; data-end=&quot;1003&quot;&gt;&amp;mdash; Nginx і бекенд: як пережити HTTP-флуд і не вбити UX&lt;br data-start=&quot;1056&quot; data-end=&quot;1059&quot;&gt;&amp;mdash; Практичний план дій під час атаки&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1096&quot; data-end=&quot;1141&quot;&gt;DDoS без міфів: що насправді відбувається&lt;/h3&gt;<br />
&lt;p data-start=&quot;1142&quot; data-end=&quot;1524&quot;&gt;Коли сайт &amp;ldquo;падає&amp;rdquo;, майже завжди є одна причина: десь закінчилися ресурси. Це може бути канал, може бути мережевий стек, може бути пул воркерів у PHP, може бути база даних, яка від великої кількості запитів починає задихатися. Саме тому DDoS сьогодні &amp;mdash; це не лише про &amp;ldquo;мільйони пакетів&amp;rdquo;, а й про дуже хитрі атаки, які виглядають як звичайні користувачі, але діють масово і методично.&lt;/p&gt;<br />
&lt;p data-start=&quot;1526&quot; data-end=&quot;1949&quot;&gt;Зазвичай атаки ділять на два великі типи. Перший &amp;mdash; мережевий (L3/L4): тут або забивають канал, або б&amp;rsquo;ють по транспортному рівню (SYN, UDP, amplification), змушуючи сервер витрачати сили на обробку сміття. Другий &amp;mdash; прикладний (L7): тут атакувальник робить вигляд, що він &amp;ldquo;клієнт&amp;rdquo;, тільки цей &amp;ldquo;клієнт&amp;rdquo; заходить на логін 10 000 разів на хвилину, викликає пошук, фільтри, API, і кожен запит запускає важкий код чи запити до БД.&lt;/p&gt;<br />
&lt;p data-start=&quot;1951&quot; data-end=&quot;2139&quot;&gt;Тому правильний захист завжди шаруватий. Немає одного &amp;ldquo;чарівного&amp;rdquo; перемикача. Є базова мережна фільтрація, є периметр на рівні CDN/WAF, і є грамотні налаштування веб-сервера та застосунку.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2141&quot; data-end=&quot;2189&quot;&gt;Який Anti-DDoS ми даємо клієнтам &amp;ldquo;з коробки&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;2190&quot; data-end=&quot;2482&quot;&gt;У нашій інфраструктурі базовий захист працює на мережному рівні датацентра. Для клієнта це виглядає просто: ти запускаєш VPS або виділений сервер &amp;mdash; і вже отримуєш мережний шар, який відстежує аномалії та автоматично відсікає типові DDoS-вектори ще до того, як вони &amp;ldquo;приляжуть&amp;rdquo; на твою машину.&lt;/p&gt;<br />
&lt;p data-start=&quot;2484&quot; data-end=&quot;2792&quot;&gt;Чому це важливо? Бо якщо почати відбивати volumetric-атаку &amp;ldquo;всередині&amp;rdquo; сервера, ти програєш ще до того, як відкриєш лог. Канал може забитися раніше, ніж nginx встигне сказати &amp;ldquo;404&amp;rdquo;. Саме тому мережний захист має бути не на рівні &amp;ldquo;давай поставимо iptables&amp;rdquo;, а на рівні &amp;ldquo;очистимо трафік до того, як він дійде&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;2794&quot; data-end=&quot;3178&quot;&gt;Як це працює в реальному житті: система бачить, що трафік став підозрілим &amp;mdash; наприклад, різко виросла кількість пакетів на секунду, або з&amp;rsquo;явився нетиповий профіль SYN/ACK, або пішов лавиноподібний UDP по конкретних портах. Далі вмикаються фільтри, які прибирають сміття, а нормальний трафік пропускають. Для більшості класичних L3/L4 атак цього достатньо, щоб сайт залишався доступним.&lt;/p&gt;<br />
&lt;p data-start=&quot;3180&quot; data-end=&quot;3361&quot;&gt;Але чесно: мережний шар &amp;mdash; це не панацея від усього. Він добре прибирає &amp;ldquo;шум&amp;rdquo; і &amp;ldquo;грубу силу&amp;rdquo;, але якщо атака дуже схожа на звичайний HTTPS-трафік, потрібно підключати наступні рівні.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3363&quot; data-end=&quot;3415&quot;&gt;L7-атаки: коли запити &amp;ldquo;легальні&amp;rdquo;, а сайт помирає&lt;/h3&gt;<br />
&lt;p data-start=&quot;3416&quot; data-end=&quot;3854&quot;&gt;Найнеприємніший сценарій &amp;mdash; коли графіки &amp;ldquo;ніби нормальні&amp;rdquo;: трафік не космічний, канал не забитий, але сайт то відкривається, то ні. В цей момент часто винна саме L7-атака. Уяви, що замість 200 людей на годину до тебе заходить 20 000 &amp;ldquo;людей&amp;rdquo; на хвилину, і кожен натискає &amp;ldquo;Пошук&amp;rdquo;, або &amp;ldquo;Увійти&amp;rdquo;, або &amp;ldquo;Додати в кошик&amp;rdquo;. Навіть якщо це по 1&amp;ndash;2 KB на запит, для бекенду це може бути кілотонна робота: авторизація, сесії, bcrypt, SQL, зовнішні API.&lt;/p&gt;<br />
&lt;p data-start=&quot;3856&quot; data-end=&quot;4090&quot;&gt;У L7-атаках є дві проблеми. Перша &amp;mdash; важко відрізнити бота від людини без поведінкових сигналів. Друга &amp;mdash; вони майже завжди б&amp;rsquo;ють у &amp;ldquo;дорогі&amp;rdquo; маршрути. Тому захист тут &amp;mdash; це комбінація Cloudflare, лімітів у Nginx і оптимізації застосунку.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;4092&quot; data-end=&quot;4168&quot;&gt;Cloudflare: як зробити так, щоб він реально захищав, а не &amp;ldquo;просто стояв&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;4169&quot; data-end=&quot;4390&quot;&gt;Cloudflare часто підключають &amp;ldquo;для SSL і кешу&amp;rdquo;, і забувають про головну річ: якщо ваш origin-сервер доступний напряму по IP, будь-який серйозний атакувальник Cloudflare обійде. Тому перше правило: &lt;strong data-start=&quot;4365&quot; data-end=&quot;4389&quot;&gt;origin треба сховати&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;p data-start=&quot;4392&quot; data-end=&quot;4418&quot;&gt;Що це означає на практиці:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4419&quot; data-end=&quot;4769&quot;&gt;<br />
&lt;li data-start=&quot;4419&quot; data-end=&quot;4520&quot;&gt;<br />
&lt;p data-start=&quot;4421&quot; data-end=&quot;4520&quot;&gt;DNS-записи сайту мають бути під проксі Cloudflare (щоб користувачі бачили IP Cloudflare, а не ваш).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4521&quot; data-end=&quot;4672&quot;&gt;<br />
&lt;p data-start=&quot;4523&quot; data-end=&quot;4672&quot;&gt;На сервері потрібно налаштувати firewall так, щоб 80/443 приймались &lt;strong data-start=&quot;4591&quot; data-end=&quot;4620&quot;&gt;тільки з мереж Cloudflare&lt;/strong&gt;. Тоді прямі запити на IP сервера не матимуть сенсу.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4673&quot; data-end=&quot;4769&quot;&gt;<br />
&lt;p data-start=&quot;4675&quot; data-end=&quot;4769&quot;&gt;В ідеалі &amp;mdash; окремо закрити адмінку, SSH і службові порти: доступ лише з ваших IP або через VPN.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4771&quot; data-end=&quot;4901&quot;&gt;Далі &amp;mdash; WAF і правила. Тут важливо не зробити &amp;ldquo;ядерну зиму&amp;rdquo; для нормальних людей. Найкраще працює підхід &amp;ldquo;захищаємо больові точки&amp;rdquo;:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4902&quot; data-end=&quot;5095&quot;&gt;<br />
&lt;li data-start=&quot;4902&quot; data-end=&quot;4945&quot;&gt;<br />
&lt;p data-start=&quot;4904&quot; data-end=&quot;4945&quot;&gt;логін і все, що пов&amp;rsquo;язано з авторизацією;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4946&quot; data-end=&quot;4970&quot;&gt;<br />
&lt;p data-start=&quot;4948&quot; data-end=&quot;4970&quot;&gt;дорогий пошук/фільтри;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4971&quot; data-end=&quot;5017&quot;&gt;<br />
&lt;p data-start=&quot;4973&quot; data-end=&quot;5017&quot;&gt;API, особливо якщо воно відкрите в інтернет;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5018&quot; data-end=&quot;5095&quot;&gt;<br />
&lt;p data-start=&quot;5020&quot; data-end=&quot;5095&quot;&gt;сторінки, які генерують складні відповіді (каталоги, персональні кабінети).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;5097&quot; data-end=&quot;5323&quot;&gt;На ці маршрути ставиться rate limiting: не &amp;ldquo;заборонити&amp;rdquo;, а акуратно обмежити частоту. Наприклад, звичайна людина не логіниться 50 разів за хвилину. А бот &amp;mdash; запросто. Тому правила з порогами й &amp;ldquo;бурстом&amp;rdquo; працюють дуже ефективно.&lt;/p&gt;<br />
&lt;p data-start=&quot;5325&quot; data-end=&quot;5524&quot;&gt;І ще один важливий інструмент &amp;mdash; challenge/підвищена перевірка на час інциденту. Це не режим &amp;ldquo;назавжди&amp;rdquo;, бо він впливає на UX, але як аварійний важіль &amp;mdash; часто рятує, поки ти налаштовуєш тонші правила.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;5526&quot; data-end=&quot;5575&quot;&gt;Nginx та бекенд: як не згоріти від HTTP-флуду&lt;/h3&gt;<br />
&lt;p data-start=&quot;5576&quot; data-end=&quot;5815&quot;&gt;Навіть ідеальний Cloudflare не гарантує, що до origin не долетить частина трафіку. Іноді атака йде &amp;ldquo;легально&amp;rdquo; через браузери, іноді це реальні користувачі з поганими мережами, іноді правила ще не допиляні. Тому сервер теж має бути готовий.&lt;/p&gt;<br />
&lt;p data-start=&quot;5817&quot; data-end=&quot;6106&quot;&gt;Є простий принцип: &lt;strong data-start=&quot;5836&quot; data-end=&quot;5904&quot;&gt;не давай одній адресі або одному клієнту з&amp;rsquo;їсти всі твої ресурси&lt;/strong&gt;. У Nginx це досягається двома речами: ліміт запитів і ліміт з&amp;rsquo;єднань. Вони не повинні бути агресивними &amp;ldquo;по всьому сайту&amp;rdquo;. Натомість став їх точково на дорогі URL: логін, API, пошук, сторінки з формами.&lt;/p&gt;<br />
&lt;p data-start=&quot;6108&quot; data-end=&quot;6389&quot;&gt;Далі &amp;mdash; таймаути. Під атаками часто вилітає &amp;ldquo;повільне читання&amp;rdquo; (slowloris-подібні ефекти), коли клієнти тримають конекти і висмоктують воркери. Адекватні &lt;code data-start=&quot;6261&quot; data-end=&quot;6284&quot;&gt;client_header_timeout&lt;/code&gt;, &lt;code data-start=&quot;6286&quot; data-end=&quot;6307&quot;&gt;client_body_timeout&lt;/code&gt;, коротший &lt;code data-start=&quot;6318&quot; data-end=&quot;6337&quot;&gt;keepalive_timeout&lt;/code&gt; для підозрілих шляхів &amp;mdash; дають дуже відчутний ефект.&lt;/p&gt;<br />
&lt;p data-start=&quot;6391&quot; data-end=&quot;6617&quot;&gt;Третій шар &amp;mdash; кеш. Якщо сторінка або відповідь може кешуватися хоча б 10&amp;ndash;30 секунд, це інколи рятує життя: запити перестають добігати до PHP/Node/DB і віддаються з пам&amp;rsquo;яті або диска. Для контентних сторінок це майже завжди win.&lt;/p&gt;<br />
&lt;p data-start=&quot;6619&quot; data-end=&quot;6904&quot;&gt;На рівні застосунку корисно мати &amp;ldquo;режим шторму&amp;rdquo;: коли ти тимчасово зменшуєш функціональність. Наприклад, вимикаєш важкі фільтри, показуєш спрощену сторінку каталогу, переносиш частину операцій у черги, вмикаєш додаткову перевірку на логін. Це неприємно, але краще, ніж повний даунтайм.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;6906&quot; data-end=&quot;6951&quot;&gt;Як діяти під час атаки, щоб не метушитися&lt;/h3&gt;<br />
&lt;p data-start=&quot;6952&quot; data-end=&quot;7042&quot;&gt;Коли атака вже йде, головне &amp;mdash; не починати &amp;ldquo;випадково крутити все&amp;rdquo;. Краще діяти послідовно:&lt;/p&gt;<br />
&lt;ol data-start=&quot;7043&quot; data-end=&quot;7494&quot;&gt;<br />
&lt;li data-start=&quot;7043&quot; data-end=&quot;7160&quot;&gt;<br />
&lt;p data-start=&quot;7046&quot; data-end=&quot;7160&quot;&gt;У Cloudflare швидко підняти рівень перевірок (challenge) і ввімкнути правила для найчастіших цілей (логін, API).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7161&quot; data-end=&quot;7243&quot;&gt;<br />
&lt;p data-start=&quot;7164&quot; data-end=&quot;7243&quot;&gt;Перевірити, що origin справді закритий і не приймає прямі 80/443 з інтернету.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7244&quot; data-end=&quot;7316&quot;&gt;<br />
&lt;p data-start=&quot;7247&quot; data-end=&quot;7316&quot;&gt;На Nginx поставити/посилити ліміти саме на ті URL, які зараз б&amp;rsquo;ють.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7317&quot; data-end=&quot;7423&quot;&gt;<br />
&lt;p data-start=&quot;7320&quot; data-end=&quot;7423&quot;&gt;В логах подивитися патерни: країни, ASN, user-agent, конкретні URI &amp;mdash; і під ці патерни додати правила.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;7424&quot; data-end=&quot;7494&quot;&gt;<br />
&lt;p data-start=&quot;7427&quot; data-end=&quot;7494&quot;&gt;Якщо бекенд/БД задихається &amp;mdash; тимчасово прибрати найдорожчі функції&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;<br />
&lt;h3 data-start=&quot;290&quot; data-end=&quot;357&quot;&gt;Як виглядають різні атаки в житті: симптоми, які легко сплутати&lt;/h3&gt;<br />
&lt;p data-start=&quot;358&quot; data-end=&quot;556&quot;&gt;Є типовий момент: клієнт каже &amp;ldquo;нас DDoS-ять&amp;rdquo;, а насправді це може бути що завгодно &amp;mdash; від повільної бази до 3rd-party API, який завис. Але є кілька ознак, які дуже характерні саме для DDoS-сценаріїв.&lt;/p&gt;<br />
&lt;p data-start=&quot;558&quot; data-end=&quot;988&quot;&gt;&lt;strong data-start=&quot;558&quot; data-end=&quot;571&quot;&gt;SYN flood&lt;/strong&gt; часто відчувається так, ніби &amp;ldquo;сайт періодично зникає&amp;rdquo;, хоча CPU може бути ще не в червоній зоні. У мережевих метриках зазвичай росте кількість нових TCP-з&amp;rsquo;єднань або спроб з&amp;rsquo;єднання, а у воркерах з&amp;rsquo;являється відчуття &amp;ldquo;вічної черги&amp;rdquo;: нормальним користувачам банально не вистачає слотів для встановлення конекту. На рівні веб-сервера це інколи виглядає як лавина таймаутів, коли відповіді ніби є, але дуже нестабільні.&lt;/p&gt;<br />
&lt;p data-start=&quot;990&quot; data-end=&quot;1399&quot;&gt;&lt;strong data-start=&quot;990&quot; data-end=&quot;1019&quot;&gt;UDP flood / amplification&lt;/strong&gt; зазвичай більш &amp;ldquo;грубий&amp;rdquo;. Якщо атака потужна, першим симптомом стає деградація мережі: зростає вхідний трафік, підвисає навіть SSH, моніторинг &amp;ldquo;не встигає&amp;rdquo;. Якщо ж мережне очищення спрацювало, то для клієнта це часто виглядає як короткий сплеск і повернення до норми. Саме тому мережний захист &amp;mdash; базова лінія оборони: він прибирає цей хаос до того, як він почне ламати вам сервіс.&lt;/p&gt;<br />
&lt;p data-start=&quot;1401&quot; data-end=&quot;1898&quot;&gt;&lt;strong data-start=&quot;1401&quot; data-end=&quot;1418&quot;&gt;L7 HTTP flood&lt;/strong&gt; &amp;mdash; найпідступніший. Канал може бути не забитий, але сайт вмирає &amp;ldquo;зсередини&amp;rdquo;: різко росте час відповіді, база отримує сотні/тисячі однотипних запитів, PHP-FPM/Node воркери забиваються, і в якийсь момент все починає повільно розвалюватися. Дуже характерна ознака &amp;mdash; атака б&amp;rsquo;є у конкретні URI: &lt;code data-start=&quot;1708&quot; data-end=&quot;1716&quot;&gt;/login&lt;/code&gt;, &lt;code data-start=&quot;1718&quot; data-end=&quot;1733&quot;&gt;/wp-login.php&lt;/code&gt;, &lt;code data-start=&quot;1735&quot; data-end=&quot;1748&quot;&gt;/xmlrpc.php&lt;/code&gt;, &lt;code data-start=&quot;1750&quot; data-end=&quot;1759&quot;&gt;/search&lt;/code&gt;, &lt;code data-start=&quot;1761&quot; data-end=&quot;1769&quot;&gt;/api/*&lt;/code&gt;, сторінки з фільтрами, кошик/чекаут. Якщо в логах видно, що 70&amp;ndash;90% трафіку йде в один-два маршрути &amp;mdash; це майже завжди L7 історія.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1900&quot; data-end=&quot;1976&quot;&gt;Cloudflare під різні сайти: не &amp;ldquo;включив і забув&amp;rdquo;, а як зробити правильно&lt;/h3&gt;<br />
&lt;p data-start=&quot;1978&quot; data-end=&quot;2697&quot;&gt;&lt;strong data-start=&quot;1978&quot; data-end=&quot;2004&quot;&gt;Якщо у тебе WordPress.&lt;/strong&gt;&lt;br data-start=&quot;2004&quot; data-end=&quot;2007&quot;&gt;У WordPress є дві класичні болючі точки: &lt;code data-start=&quot;2048&quot; data-end=&quot;2062&quot;&gt;wp-login.php&lt;/code&gt; і &lt;code data-start=&quot;2065&quot; data-end=&quot;2077&quot;&gt;xmlrpc.php&lt;/code&gt;. Більшість ботів починають саме звідси. У Cloudflare ми зазвичай робимо так: логін захищаємо правилами (челендж/ліміти), &lt;code data-start=&quot;2199&quot; data-end=&quot;2211&quot;&gt;xmlrpc.php&lt;/code&gt; &amp;mdash; або жорстко обмежуємо, або закриваємо повністю, якщо він не потрібен. Важливо, щоб це не перетворилося на &amp;ldquo;капча кожному&amp;rdquo;: для нормальних користувачів краще працює м&amp;rsquo;яке rate limiting плюс челендж тільки при підозрілій поведінці.&lt;br data-start=&quot;2443&quot; data-end=&quot;2446&quot;&gt;Ще одна річ: типові плагіни додають купу AJAX-ендпойнтів. Якщо сайт під атакою, будь-який &amp;ldquo;дорогий&amp;rdquo; AJAX стає ціллю. Тому ми радимо подивитися, які саме URI найчастіше запитуються, і точково поставити правила на них, а не різати весь сайт одним махом.&lt;/p&gt;<br />
&lt;p data-start=&quot;2699&quot; data-end=&quot;3186&quot;&gt;&lt;strong data-start=&quot;2699&quot; data-end=&quot;2754&quot;&gt;Якщо у тебе Laravel (або будь-який MVC із сесіями).&lt;/strong&gt;&lt;br data-start=&quot;2754&quot; data-end=&quot;2757&quot;&gt;Найчастіше б&amp;rsquo;ють у &lt;code data-start=&quot;2776&quot; data-end=&quot;2784&quot;&gt;/login&lt;/code&gt;, &lt;code data-start=&quot;2786&quot; data-end=&quot;2797&quot;&gt;/register&lt;/code&gt;, &lt;code data-start=&quot;2799&quot; data-end=&quot;2812&quot;&gt;/password/*&lt;/code&gt;, а також у API-ендпойнти, якщо вони доступні публічно. Тут Cloudflare має працювати як периметр, який не пускає &amp;ldquo;сміття&amp;rdquo; до того, як воно дійде до застосунку.&lt;br data-start=&quot;2971&quot; data-end=&quot;2974&quot;&gt;Ключовий момент &amp;mdash; захистити &amp;ldquo;дорогі&amp;rdquo; дії: авторизацію (bcrypt, сесії, CSRF), сторінки з важкими вибірками, маршрути, що тригерять нотифікації або будь-які зовнішні інтеграції. Для Laravel ми часто рекомендуємо:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3187&quot; data-end=&quot;3519&quot;&gt;<br />
&lt;li data-start=&quot;3187&quot; data-end=&quot;3225&quot;&gt;<br />
&lt;p data-start=&quot;3189&quot; data-end=&quot;3225&quot;&gt;rate limiting на логін/реєстрацію;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3226&quot; data-end=&quot;3252&quot;&gt;<br />
&lt;p data-start=&quot;3228&quot; data-end=&quot;3252&quot;&gt;окремі правила на API;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3253&quot; data-end=&quot;3519&quot;&gt;<br />
&lt;p data-start=&quot;3255&quot; data-end=&quot;3519&quot;&gt;і дуже бажано &amp;mdash; закритий origin (тільки Cloudflare IP).&lt;br data-start=&quot;3310&quot; data-end=&quot;3313&quot;&gt;Плюс у самій апці: якщо є можливість, робити прогресивний захист (після кількох підозрілих спроб показати додаткову перевірку), і не виконувати &amp;ldquo;дорогу&amp;rdquo; логіку до того, як користувач пройшов базові фільтри.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3521&quot; data-end=&quot;4059&quot;&gt;&lt;strong data-start=&quot;3521&quot; data-end=&quot;3569&quot;&gt;Якщо у тебе чисте API (мобайл/SPA/партнери).&lt;/strong&gt;&lt;br data-start=&quot;3569&quot; data-end=&quot;3572&quot;&gt;У API найболючіше &amp;mdash; коли один ключ або один клієнт може викликати ендпойнт без обмежень. Тут Cloudflare зручно використати як &amp;ldquo;шлюз&amp;rdquo;: лімітувати частоту, відсікати аномальні патерни, а для критичних методів (POST/PUT) додати ще жорсткіші пороги.&lt;br data-start=&quot;3817&quot; data-end=&quot;3820&quot;&gt;І дуже важливо: API повинно мати внутрішні ліміти теж. Тобто Cloudflare &amp;mdash; це перший бар&amp;rsquo;єр, а другий &amp;mdash; ваш бекенд (наприклад, ліміти по токену/ключу, блокування при аномалії, захист від повторів, валідація тіла, обмеження розміру payload).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;4061&quot; data-end=&quot;4128&quot;&gt;Nginx під L7: як зробити, щоб захист не &amp;ldquo;вбив&amp;rdquo; нормальних людей&lt;/h3&gt;<br />
&lt;p data-start=&quot;4129&quot; data-end=&quot;4328&quot;&gt;Тут головна ідея &amp;mdash; ставити обмеження не &amp;ldquo;по всьому сайту&amp;rdquo;, а на конкретні місця. Логін &amp;mdash; лімітуємо, пошук &amp;mdash; лімітуємо, API &amp;mdash; лімітуємо. А контентні сторінки краще підтримати кешем і швидкою віддачею.&lt;/p&gt;<br />
&lt;p data-start=&quot;4330&quot; data-end=&quot;4603&quot;&gt;Під час атак дуже рятує &amp;ldquo;підчищення&amp;rdquo; таймаутів і keepalive. Коли з&amp;rsquo;єднання висять занадто довго, воркери закінчуються, і сайт починає падати навіть від помірного навантаження. Тому в штормових ситуаціях краще коротше тримати ресурси і швидко відпускати підозрілих клієнтів.&lt;/p&gt;
  <p><strong>Теги:</strong> 
 Anti-DDoS, Cloudflare, Nginx, L7 </p>
  ]]></content:encoded>
 <pubDate>Mon, 29 Dec 2025 09:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Новини компанії</category>
  </item>
  <item>
 <title>Де брати картинки для сайту та соцмереж: безкоштовні фотостоки, ліцензії та поради, щоб не зіпсувати SEO</title>
 <link>https://uhost.online/blog/de-brati-kartinki-dlya-saytu-ta-sotsmerezh-bezkoshtovn-fotostoki-ltsenz-ta-poradi-shchob-ne-zpsuvati-seo</link>
 <guid isPermaLink="true">https://uhost.online/blog/de-brati-kartinki-dlya-saytu-ta-sotsmerezh-bezkoshtovn-fotostoki-ltsenz-ta-poradi-shchob-ne-zpsuvati-seo</guid>
 <description><![CDATA[Розповідаємо, як безпечно брати зображення для сайту: що означають CC0/CC BY, коли потрібен model release, як оптимізувати файли під швидкість і які безкоштовні фотостоки реально зручні у роботі]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage27202513_20_34_1766834469_3140.webp" alt="Де брати картинки для сайту та соцмереж: безкоштовні фотостоки, ліцензії та поради, щоб не зіпсувати SEO" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;517&quot; data-end=&quot;1053&quot;&gt;У будь-якому сайті чи блозі рано чи пізно виникає одна й та сама ситуація: текст готовий, дизайн продуманий, а сторінка все одно виглядає &amp;ldquo;порожньою&amp;rdquo;. Потрібні картинки &amp;mdash; для статті, для банера, для прев&amp;rsquo;ю в соцмережах, для карток товарів. Ідеально, коли є власні фото, але це не завжди реально: потрібен час, техніка, світло, обробка. Саме тому фотостоки стали повсякденним інструментом &amp;mdash; вони дають швидкий доступ до величезних бібліотек зображень, часто безплатно. Але важливо пам&amp;rsquo;ятати: &amp;ldquo;безкоштовно&amp;rdquo; не означає &amp;ldquo;можна як завгодно&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;1055&quot; data-end=&quot;1638&quot;&gt;Почнімо з простого правила, яке економить нерви: перед завантаженням фото завжди дивись ліцензію. На більшості майданчиків вона прописана прямо на сторінці зображення або в Terms of Use. Для новачків найкомфортніший сценарій &amp;mdash; CC0: таке фото можна використовувати у комерційних проєктах, змінювати (обрізати, накладати фільтри, робити колажі) і зазвичай не вимагатиметься атрибуція. CC BY вже суворіша &amp;mdash; авторство треба вказувати. А варіанти на кшталт CC BY-NC-ND взагалі обмежують комерційне використання й редагування, тому для бізнесу краще їх уникати або уважно перевіряти умови.&lt;/p&gt;<br />
&lt;p data-start=&quot;1055&quot; data-end=&quot;1638&quot;&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;p data-start=&quot;1640&quot; data-end=&quot;1915&quot;&gt;Друга типова помилка &amp;mdash; думати, що з фотостоку можна &amp;ldquo;взяти і перепродати&amp;rdquo;. Навіть на платних платформах ти зазвичай купуєш не авторське право, а ліцензію на використання. Тобто робити з фотостокових зображень &amp;ldquo;свій продукт&amp;rdquo; і продавати як контент &amp;mdash; це прямий шлях до проблем.&lt;/p&gt;<br />
&lt;p data-start=&quot;1917&quot; data-end=&quot;2227&quot;&gt;Окрема тема &amp;mdash; фото людей. Для статей у блозі чи постів у соцмережах це зазвичай ок, але як тільки ти використовуєш обличчя в рекламі або в чутливих темах (медицина, фінанси, політика), потрібно бути обережним: інколи потрібен model release &amp;mdash; підтвердження згоди людини на комерційне використання її зображення.&lt;/p&gt;<br />
&lt;p data-start=&quot;2229&quot; data-end=&quot;2547&quot;&gt;І ще один момент, який часто недооцінюють: швидкість сайту. Коли ти завантажив красиве фото на 8&amp;ndash;10 МБ і одразу вставив у статтю, сторінка стає &amp;ldquo;важкою&amp;rdquo;, довше вантажиться, а це псує і поведінкові метрики, і SEO. Нормальна звичка &amp;mdash; стиснути зображення, підібрати адекватний розмір і, якщо можливо, конвертувати у WebP.&lt;/p&gt;<br />
&lt;p data-start=&quot;2549&quot; data-end=&quot;2940&quot;&gt;&lt;strong&gt;Pixabay &amp;mdash; універсальний сервіс для пошуку контенту&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;2549&quot; data-end=&quot;2940&quot;&gt;&lt;img style=&quot;font-family: -apple-system, BlinkMacSystemFont, &#039;Segoe UI&#039;, Roboto, &#039;Helvetica Neue&#039;, Arial, sans-serif;&quot; src=&quot;https://uhost.online/uploads/blog/images/2025-12-27124426_1766832325_1359.webp&quot; alt=&quot;Pixabay&quot; width=&quot;800&quot; height=&quot;278&quot;&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;2549&quot; data-end=&quot;2940&quot;&gt;Тепер &amp;mdash; до самого приємного: де брати картинки. Перший варіант, який часто виручає &amp;ldquo;на всі випадки життя&amp;rdquo;, &amp;mdash;&amp;nbsp;&lt;strong&gt;Pixabay&lt;/strong&gt;. Це не лише фотосток у вузькому сенсі: там є і фотографії, і ілюстрації, і вектори, і відео, і навіть аудіо/ефекти та інший медіаконтент. У зображень є завантаження у різних розмірах, а в деяких сценаріях зручно, що можна швидко перекинути зображення на редагування у Canva.&lt;/p&gt;<br />
&lt;p data-start=&quot;2942&quot; data-end=&quot;3403&quot;&gt;&lt;strong&gt;Life of Pix &amp;mdash; професійні фотографії без обмежень авторських прав&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;2942&quot; data-end=&quot;3403&quot;&gt;&lt;img style=&quot;font-family: -apple-system, BlinkMacSystemFont, &#039;Segoe UI&#039;, Roboto, &#039;Helvetica Neue&#039;, Arial, sans-serif;&quot; src=&quot;https://uhost.online/uploads/blog/images/2025-12-27124839_1766832541_4105.webp&quot; width=&quot;800&quot; height=&quot;360&quot;&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;2942&quot; data-end=&quot;3403&quot;&gt;Якщо тобі потрібні максимально &amp;ldquo;дорогі на вигляд&amp;rdquo; фото у високій роздільній здатності, зверни увагу на Life of Pix. Цей сервіс робить ставку саме на якість і атмосферу кадрів. У нього є тематичні добірки (міста, природа, люди, текстури тощо), і часто там трапляються зображення, які виглядають менш &amp;ldquo;стоково&amp;rdquo;. Водночас є нюанс: нерідко файли завантажуються одразу у великій роздільній здатності, тому після скачування їх майже завжди треба оптимізувати під веб.&lt;/p&gt;<br />
&lt;p data-start=&quot;3405&quot; data-end=&quot;3742&quot;&gt;&lt;strong&gt;Burst від Shopify &amp;mdash; високоякісні фотографії для власників бізнесу&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;3405&quot; data-end=&quot;3742&quot;&gt;&lt;strong&gt;&lt;img src=&quot;https://uhost.online/uploads/blog/images/2025-12-27125925_1766833183_2527.webp&quot; width=&quot;800&quot; height=&quot;298&quot;&gt;&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;3405&quot; data-end=&quot;3742&quot;&gt;Для бізнес-сценаріїв (лендинги, інтернет-магазини, реклама) зручним може бути Burst від Shopify. Його робили як підтримку для малого бізнесу: багато фото в комерційно придатних тематиках, колекції під популярні ніші, і часто є вибір між &amp;ldquo;легкою&amp;rdquo; і &amp;ldquo;важкою&amp;rdquo; версією файлу &amp;mdash; можна швидше підігнати під сайт без зайвих танців із компресією.&lt;/p&gt;<br />
&lt;p data-start=&quot;3405&quot; data-end=&quot;3742&quot;&gt;&lt;strong&gt;Kaboompics &amp;mdash; найкращий безкоштовний фотосток для соцмереж&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;3744&quot; data-end=&quot;4183&quot;&gt;&lt;img src=&quot;https://uhost.online/uploads/blog/images/2025-12-27124218_1766832325_5249.webp&quot; width=&quot;800&quot; height=&quot;372&quot;&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;3744&quot; data-end=&quot;4183&quot;&gt;А якщо ти регулярно робиш контент для соцмереж і хочеш, щоб картинки виглядали &amp;ldquo;серією&amp;rdquo; в одному стилі &amp;mdash; дуже цікавий варіант Kaboompics. У нього сильна естетика і багато фотосетів, де в одній зйомці є десятки кадрів. Плюс сервіс акцентує, що це реальні зйомки (не AI), а ліцензії там бувають двох типів &amp;mdash; стандартна (для комерційного використання) і редакційна, яка забороняє застосування у рекламі та брендингу. Це важливо не пропустити.&lt;/p&gt;<br />
&lt;p data-start=&quot;4185&quot; data-end=&quot;4470&quot;&gt;&lt;strong&gt;Startup Stock Photos &amp;mdash; безоплатний фотосток для стартапів&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;4185&quot; data-end=&quot;4470&quot;&gt;&lt;strong&gt;&lt;img src=&quot;https://uhost.online/uploads/blog/images/2025-12-27130217_1766833355_2966.webp&quot; alt=&quot;&quot; width=&quot;800&quot; height=&quot;283&quot;&gt;&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p data-start=&quot;4185&quot; data-end=&quot;4470&quot;&gt;Нарешті, Startup Stock Photos &amp;mdash; невеликий, але корисний ресурс, якщо твій контент крутиться навколо стартапів, офісів, технологій, робочих процесів. Він виглядає простіше за &amp;ldquo;гігантів&amp;rdquo;, проте саме в цьому інколи і плюс: менше заїжджених картинок, більше шансів знайти щось не банальне.&lt;/p&gt;<br />
&lt;p data-start=&quot;4472&quot; data-end=&quot;4962&quot;&gt;І логічне питання наприкінці: що краще &amp;mdash; фотостоки, AI-картинки чи власні фото? Практика показує, що перемагає комбінація. Для сторінок &amp;ldquo;про команду&amp;rdquo;, кейсів, оглядів власного продукту найсильніше працюють свої фото й скриншоти &amp;mdash; вони дають довіру та унікальність. AI інколи рятує, коли потрібна нестандартна ілюстрація, але він вимагає навичок промптингу і не завжди гарантує комерційну безпеку. А фотостоки &amp;mdash; це робоча &amp;ldquo;база&amp;rdquo; для швидкого масштабування контенту без бюджету на фотозйомку.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  <p><strong>Теги:</strong> 
 Services </p>
  ]]></content:encoded>
 <pubDate>Sat, 27 Dec 2025 09:50:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Різне</category>
  </item>
  <item>
 <title>Mailgun API + власна пошта на сервері (FastPanel): як налаштувати домен, щоб Gmail не блокував листи</title>
 <link>https://uhost.online/blog/mailgun-api-vlasna-poshta-na-server-fastpanel-yak-nalashtuvati-domen-shchob-gmail-ne-blokuvav-listi</link>
 <guid isPermaLink="true">https://uhost.online/blog/mailgun-api-vlasna-poshta-na-server-fastpanel-yak-nalashtuvati-domen-shchob-gmail-ne-blokuvav-listi</guid>
 <description><![CDATA[Покрокова інструкція: як поєднати Mailgun API для транзакційних листів і власний поштовий сервер (FastPanel) для реальних скриньок. Пояснюємо DNS (MX/SPF/DKIM/DMARC), PTR та типові помилки Gmail.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage26202517_39_48_1766763607_4978.webp" alt="Mailgun API + власна пошта на сервері (FastPanel): як налаштувати домен, щоб Gmail не блокував листи" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;688&quot; data-end=&quot;1160&quot;&gt;Є класичний сценарій, у який потрапляє майже кожен, хто запускає свій проєкт: потрібні &lt;strong data-start=&quot;775&quot; data-end=&quot;797&quot;&gt;транзакційні листи&lt;/strong&gt; (реєстрація, відновлення пароля, нотифікації) і паралельно &amp;mdash; &lt;strong data-start=&quot;859&quot; data-end=&quot;889&quot;&gt;нормальні поштові скриньки&lt;/strong&gt; для команди на своєму домені (&lt;code data-start=&quot;920&quot; data-end=&quot;930&quot;&gt;support@&lt;/code&gt;, &lt;code data-start=&quot;932&quot; data-end=&quot;940&quot;&gt;sales@&lt;/code&gt;, &lt;code data-start=&quot;942&quot; data-end=&quot;950&quot;&gt;admin@&lt;/code&gt;). Mailgun чудово закриває першу задачу: його API стабільно доставляє листи і добре &amp;ldquo;дружить&amp;rdquo; з великими поштовими провайдерами. Але от друга задача &amp;mdash; &amp;ldquo;створи ящик і підключися по IMAP&amp;rdquo; &amp;mdash; це вже не про Mailgun.&lt;/p&gt;<br />
&lt;p data-start=&quot;1162&quot; data-end=&quot;1531&quot;&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;p data-start=&quot;1162&quot; data-end=&quot;1531&quot;&gt;Правильна схема, яка працює роками:&amp;nbsp;&lt;strong data-start=&quot;1198&quot; data-end=&quot;1246&quot;&gt;скриньки та прийом пошти &amp;mdash; на вашому сервері&lt;/strong&gt;, а &lt;strong data-start=&quot;1250&quot; data-end=&quot;1299&quot;&gt;відправка листів із сайту &amp;mdash; через Mailgun API&lt;/strong&gt;. При цьому можна залишити і &amp;ldquo;ручну&amp;rdquo; відправку напряму з сервера (наприклад, якщо ти хочеш надсилати листи з &lt;code data-start=&quot;1408&quot; data-end=&quot;1416&quot;&gt;admin@&lt;/code&gt; без Mailgun), але тут є нюанс: без правильної аутентифікації домена Gmail відріже такі листи з помилкою на кшталт:&lt;/p&gt;<br />
&lt;blockquote data-start=&quot;1533&quot; data-end=&quot;1600&quot;&gt;<br />
&lt;p data-start=&quot;1535&quot; data-end=&quot;1600&quot;&gt;&amp;ldquo;sender is unauthenticated&amp;hellip; SPF did not pass, DKIM did not pass&amp;rdquo;.&lt;/p&gt;<br />
&lt;/blockquote&gt;<br />
&lt;p data-start=&quot;1602&quot; data-end=&quot;1724&quot;&gt;Це саме те, що ти вже бачив: сервер відправив з IP, який не дозволений SPF, а DKIM підпису взагалі не було &amp;mdash; Gmail блокує.&lt;/p&gt;<br />
&lt;h4 data-start=&quot;1726&quot; data-end=&quot;1763&quot;&gt;Як розділити ролі: хто що робить&lt;/h4&gt;<br />
&lt;ul data-start=&quot;1764&quot; data-end=&quot;2000&quot;&gt;<br />
&lt;li data-start=&quot;1764&quot; data-end=&quot;1893&quot;&gt;<br />
&lt;p data-start=&quot;1766&quot; data-end=&quot;1893&quot;&gt;&lt;strong data-start=&quot;1766&quot; data-end=&quot;1793&quot;&gt;FastPanel / твій сервер&lt;/strong&gt;: приймає вхідні листи (MX на сервер), зберігає скриньки (IMAP), відправляє напряму (якщо потрібно).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1894&quot; data-end=&quot;2000&quot;&gt;<br />
&lt;p data-start=&quot;1896&quot; data-end=&quot;2000&quot;&gt;&lt;strong data-start=&quot;1896&quot; data-end=&quot;1907&quot;&gt;Mailgun&lt;/strong&gt;: відправляє транзакційні листи через API (і при бажанні через SMTP), зі своїми DKIM-ключами.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2002&quot; data-end=&quot;2063&quot;&gt;Це означає, що в DNS потрібно чесно &amp;ldquo;сказати світу&amp;rdquo; дві речі:&lt;/p&gt;<br />
&lt;ol data-start=&quot;2064&quot; data-end=&quot;2222&quot;&gt;<br />
&lt;li data-start=&quot;2064&quot; data-end=&quot;2101&quot;&gt;<br />
&lt;p data-start=&quot;2067&quot; data-end=&quot;2101&quot;&gt;Куди доставляти вхідну пошту (MX).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2102&quot; data-end=&quot;2222&quot;&gt;<br />
&lt;p data-start=&quot;2105&quot; data-end=&quot;2222&quot;&gt;Хто має право відправляти листи від імені домену (SPF + DKIM), причому &lt;strong data-start=&quot;2176&quot; data-end=&quot;2221&quot;&gt;право буде і у Mailgun, і у твого сервера&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;hr data-start=&quot;2224&quot; data-end=&quot;2227&quot;&gt;<br />
&lt;h2 data-start=&quot;2229&quot; data-end=&quot;2266&quot;&gt;Крок 1. Готуємо сервер (FastPanel)&lt;/h2&gt;<br />
&lt;p data-start=&quot;2267&quot; data-end=&quot;2364&quot;&gt;У FastPanel зазвичай уже встановлено все необхідне. Якщо коротко, для повноцінної пошти потрібні:&lt;/p&gt;<br />
&lt;ul data-start=&quot;2365&quot; data-end=&quot;2518&quot;&gt;<br />
&lt;li data-start=&quot;2365&quot; data-end=&quot;2390&quot;&gt;<br />
&lt;p data-start=&quot;2367&quot; data-end=&quot;2390&quot;&gt;&lt;strong data-start=&quot;2367&quot; data-end=&quot;2378&quot;&gt;Postfix&lt;/strong&gt; (SMTP/MTA),&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2391&quot; data-end=&quot;2425&quot;&gt;<br />
&lt;p data-start=&quot;2393&quot; data-end=&quot;2425&quot;&gt;&lt;strong data-start=&quot;2393&quot; data-end=&quot;2404&quot;&gt;Dovecot&lt;/strong&gt; (IMAP для скриньок),&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2426&quot; data-end=&quot;2459&quot;&gt;<br />
&lt;p data-start=&quot;2428&quot; data-end=&quot;2459&quot;&gt;модуль &lt;strong data-start=&quot;2435&quot; data-end=&quot;2443&quot;&gt;DKIM&lt;/strong&gt; (або OpenDKIM),&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2460&quot; data-end=&quot;2518&quot;&gt;<br />
&lt;p data-start=&quot;2462&quot; data-end=&quot;2518&quot;&gt;&lt;strong data-start=&quot;2462&quot; data-end=&quot;2480&quot;&gt;TLS-сертифікат&lt;/strong&gt; (Let&amp;rsquo;s Encrypt) для &lt;code data-start=&quot;2501&quot; data-end=&quot;2517&quot;&gt;mail.твійдомен&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2520&quot; data-end=&quot;2683&quot;&gt;Практична порада: у клієнтів (Outlook/Thunderbird/телефон) завжди використовуй &lt;strong data-start=&quot;2599&quot; data-end=&quot;2619&quot;&gt;587 (Submission)&lt;/strong&gt; і &lt;strong data-start=&quot;2622&quot; data-end=&quot;2637&quot;&gt;993 (IMAPS)&lt;/strong&gt;, а порт 25 залишай для міжсерверної доставки.&lt;/p&gt;<br />
&lt;hr data-start=&quot;2685&quot; data-end=&quot;2688&quot;&gt;<br />
&lt;h2 data-start=&quot;2690&quot; data-end=&quot;2743&quot;&gt;Крок 2. DNS: записуємо так, щоб не було конфліктів&lt;/h2&gt;<br />
&lt;p data-start=&quot;2744&quot; data-end=&quot;2884&quot;&gt;Тут головне правило: &lt;strong data-start=&quot;2765&quot; data-end=&quot;2786&quot;&gt;SPF має бути один&lt;/strong&gt;, &lt;strong data-start=&quot;2788&quot; data-end=&quot;2811&quot;&gt;DMARC має бути один&lt;/strong&gt;. DKIM може бути багато (це нормально), бо DKIM &amp;mdash; це про різні селектори.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2886&quot; data-end=&quot;2930&quot;&gt;2.1 A та MX для прийому пошти на сервері&lt;/h3&gt;<br />
&lt;ol data-start=&quot;2931&quot; data-end=&quot;2962&quot;&gt;<br />
&lt;li data-start=&quot;2931&quot; data-end=&quot;2962&quot;&gt;<br />
&lt;p data-start=&quot;2934&quot; data-end=&quot;2962&quot;&gt;A-запис для поштового хоста:&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;ul data-start=&quot;2963&quot; data-end=&quot;2987&quot;&gt;<br />
&lt;li data-start=&quot;2963&quot; data-end=&quot;2987&quot;&gt;<br />
&lt;p data-start=&quot;2965&quot; data-end=&quot;2987&quot;&gt;&lt;code data-start=&quot;2965&quot; data-end=&quot;2987&quot;&gt;A mail &amp;rarr; 95.216.1.58&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;ol start=&quot;2&quot; data-start=&quot;2989&quot; data-end=&quot;3006&quot;&gt;<br />
&lt;li data-start=&quot;2989&quot; data-end=&quot;3006&quot;&gt;<br />
&lt;p data-start=&quot;2992&quot; data-end=&quot;3006&quot;&gt;MX для домену:&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;ul data-start=&quot;3007&quot; data-end=&quot;3046&quot;&gt;<br />
&lt;li data-start=&quot;3007&quot; data-end=&quot;3046&quot;&gt;<br />
&lt;p data-start=&quot;3009&quot; data-end=&quot;3046&quot;&gt;&lt;code data-start=&quot;3009&quot; data-end=&quot;3046&quot;&gt;MX @ &amp;rarr; mail.uhost.online. (prio 10)&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3048&quot; data-end=&quot;3187&quot;&gt;Якщо у тебе зараз MX на &lt;code data-start=&quot;3072&quot; data-end=&quot;3093&quot;&gt;mxa/mxb.mailgun.org&lt;/code&gt; &amp;mdash; листи на &lt;code data-start=&quot;3105&quot; data-end=&quot;3120&quot;&gt;@uhost.online&lt;/code&gt; фізично підуть у Mailgun. Для своїх скриньок це потрібно замінити.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3189&quot; data-end=&quot;3237&quot;&gt;2.2 SPF: дозволяємо і Mailgun, і свій сервер&lt;/h3&gt;<br />
&lt;p data-start=&quot;3238&quot; data-end=&quot;3264&quot;&gt;Один TXT на корені домену:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3265&quot; data-end=&quot;3323&quot;&gt;<br />
&lt;li data-start=&quot;3265&quot; data-end=&quot;3323&quot;&gt;<br />
&lt;p data-start=&quot;3267&quot; data-end=&quot;3323&quot;&gt;&lt;code data-start=&quot;3267&quot; data-end=&quot;3323&quot;&gt;TXT @: v=spf1 ip4:95.216.1.58 include:mailgun.org ~all&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3325&quot; data-end=&quot;3447&quot;&gt;Саме цей рядок &amp;ldquo;лікує&amp;rdquo; твою Gmail-помилку: Gmail бачить, що IP сервера дозволений, і перестає блокувати &amp;ldquo;unauthenticated&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3449&quot; data-end=&quot;3476&quot;&gt;2.3 DKIM: два комплекти&lt;/h3&gt;<br />
&lt;p data-start=&quot;3477&quot; data-end=&quot;3555&quot;&gt;Тепер найважливіше: DKIM для Mailgun і DKIM для твого сервера &amp;mdash; це різні речі.&lt;/p&gt;<br />
&lt;p data-start=&quot;3557&quot; data-end=&quot;3634&quot;&gt;&lt;strong data-start=&quot;3557&quot; data-end=&quot;3577&quot;&gt;DKIM для сервера&lt;/strong&gt;: ти створюєш, наприклад, селектор &lt;code data-start=&quot;3612&quot; data-end=&quot;3616&quot;&gt;s1&lt;/code&gt; і публікуєш ключ:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3635&quot; data-end=&quot;3688&quot;&gt;<br />
&lt;li data-start=&quot;3635&quot; data-end=&quot;3688&quot;&gt;<br />
&lt;p data-start=&quot;3637&quot; data-end=&quot;3688&quot;&gt;&lt;code data-start=&quot;3637&quot; data-end=&quot;3688&quot;&gt;TXT s1._domainkey: v=DKIM1; k=rsa; p=&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3690&quot; data-end=&quot;3842&quot;&gt;Після цього у FastPanel потрібно ввімкнути DKIM-підпис для домену (або налаштувати OpenDKIM), щоб вихідні листи справді мали заголовок &lt;code data-start=&quot;3825&quot; data-end=&quot;3841&quot;&gt;DKIM-Signature&lt;/code&gt;.&lt;/p&gt;<br />
&lt;p data-start=&quot;3844&quot; data-end=&quot;3988&quot;&gt;&lt;strong data-start=&quot;3844&quot; data-end=&quot;3864&quot;&gt;DKIM для Mailgun&lt;/strong&gt;: у кабінеті Mailgun домен показує 1&amp;ndash;2 записи DKIM (CNAME/TXT). Додай їх &amp;ldquo;як є&amp;rdquo;. Це підпис лише для листів, які шле Mailgun.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3990&quot; data-end=&quot;4031&quot;&gt;2.4 DMARC: один запис, без дублювання&lt;/h3&gt;<br />
&lt;p data-start=&quot;4032&quot; data-end=&quot;4054&quot;&gt;На старті зроби м&amp;rsquo;яко:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4055&quot; data-end=&quot;4150&quot;&gt;<br />
&lt;li data-start=&quot;4055&quot; data-end=&quot;4150&quot;&gt;<br />
&lt;p data-start=&quot;4057&quot; data-end=&quot;4150&quot;&gt;&lt;code data-start=&quot;4057&quot; data-end=&quot;4150&quot;&gt;TXT _dmarc: v=DMARC1; p=none; adkim=s; aspf=s; pct=100; rua=mailto:dmarc@uhost.online; fo=1&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4152&quot; data-end=&quot;4253&quot;&gt;Коли побачиш, що SPF/DKIM стабільно проходять &amp;mdash; піднімай політику до &lt;code data-start=&quot;4221&quot; data-end=&quot;4233&quot;&gt;quarantine&lt;/code&gt;, потім до &lt;code data-start=&quot;4244&quot; data-end=&quot;4252&quot;&gt;reject&lt;/code&gt;.&lt;/p&gt;<br />
&lt;hr data-start=&quot;4255&quot; data-end=&quot;4258&quot;&gt;<br />
&lt;h2 data-start=&quot;4260&quot; data-end=&quot;4301&quot;&gt;Крок 3. PTR (Reverse DNS) &amp;mdash; не ігноруй&lt;/h2&gt;<br />
&lt;p data-start=&quot;4302&quot; data-end=&quot;4376&quot;&gt;Це не DNS у зоні, а налаштування у провайдера (наприклад Hetzner). Вистав:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4377&quot; data-end=&quot;4416&quot;&gt;<br />
&lt;li data-start=&quot;4377&quot; data-end=&quot;4416&quot;&gt;<br />
&lt;p data-start=&quot;4379&quot; data-end=&quot;4416&quot;&gt;&lt;code data-start=&quot;4379&quot; data-end=&quot;4416&quot;&gt;PTR 95.216.1.58 &amp;rarr; mail.uhost.online&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4418&quot; data-end=&quot;4525&quot;&gt;Якщо PTR не виставлений, &amp;ldquo;пряма&amp;rdquo; відправка з сервера часто буде програвати по доставці навіть при SPF/DKIM.&lt;/p&gt;<br />
&lt;hr data-start=&quot;4527&quot; data-end=&quot;4530&quot;&gt;<br />
&lt;h2 data-start=&quot;4532&quot; data-end=&quot;4573&quot;&gt;Крок 4. Створюємо скриньки у FastPanel&lt;/h2&gt;<br />
&lt;p data-start=&quot;4574&quot; data-end=&quot;4598&quot;&gt;Далі все приємно просто:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4599&quot; data-end=&quot;4746&quot;&gt;<br />
&lt;li data-start=&quot;4599&quot; data-end=&quot;4638&quot;&gt;<br />
&lt;p data-start=&quot;4601&quot; data-end=&quot;4638&quot;&gt;додаєш поштовий домен &lt;code data-start=&quot;4623&quot; data-end=&quot;4637&quot;&gt;uhost.online&lt;/code&gt;,&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4639&quot; data-end=&quot;4680&quot;&gt;<br />
&lt;p data-start=&quot;4641&quot; data-end=&quot;4680&quot;&gt;створюєш &lt;code data-start=&quot;4650&quot; data-end=&quot;4660&quot;&gt;support@&lt;/code&gt;, &lt;code data-start=&quot;4662&quot; data-end=&quot;4669&quot;&gt;info@&lt;/code&gt;, &lt;code data-start=&quot;4671&quot; data-end=&quot;4679&quot;&gt;sales@&lt;/code&gt;,&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4681&quot; data-end=&quot;4697&quot;&gt;<br />
&lt;p data-start=&quot;4683&quot; data-end=&quot;4697&quot;&gt;задаєш пароль,&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4698&quot; data-end=&quot;4746&quot;&gt;<br />
&lt;p data-start=&quot;4700&quot; data-end=&quot;4746&quot;&gt;підключаєшся IMAP/SMTP до &lt;code data-start=&quot;4726&quot; data-end=&quot;4745&quot;&gt;mail.uhost.online&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;hr data-start=&quot;4748&quot; data-end=&quot;4751&quot;&gt;<br />
&lt;h2 data-start=&quot;4753&quot; data-end=&quot;4803&quot;&gt;Крок 5. Відправка через Mailgun API (для сайту)&lt;/h2&gt;<br />
&lt;p data-start=&quot;4804&quot; data-end=&quot;4900&quot;&gt;Замість &lt;code data-start=&quot;4812&quot; data-end=&quot;4820&quot;&gt;mail()&lt;/code&gt; або прямого SMTP з сервера, сайт відправляє через Mailgun API &amp;mdash; це стабільніше.&lt;/p&gt;<br />
&lt;p data-start=&quot;4902&quot; data-end=&quot;4923&quot;&gt;Приклад через &lt;code data-start=&quot;4916&quot; data-end=&quot;4922&quot;&gt;curl&lt;/code&gt;:&lt;/p&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;sticky top-[calc(--spacing(9)+var(--header-height))] @w-xl/main:top-9&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre! language-bash&quot;&gt;curl -s --user &lt;span class=&quot;hljs-string&quot;&gt;&#039;api:&#039;&lt;/span&gt; \<br />
  https://api.eu.mailgun.net/v3/uhost.online/messages \<br />
  -F from=&lt;span class=&quot;hljs-string&quot;&gt;&#039;UHost &#039;&lt;/span&gt; \<br />
  -F to=&lt;span class=&quot;hljs-string&quot;&gt;&#039;gtasity3@gmail.com&#039;&lt;/span&gt; \<br />
  -F subject=&lt;span class=&quot;hljs-string&quot;&gt;&#039;Тест Mailgun API&#039;&lt;/span&gt; \<br />
  -F text=&lt;span class=&quot;hljs-string&quot;&gt;&#039;Якщо ти читаєш це &amp;mdash; API працює.&#039;&lt;/span&gt;<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;p data-start=&quot;5187&quot; data-end=&quot;5304&quot;&gt;У проді це легко загорнути у свій сервіс (Laravel/CodeIgniter/чистий PHP) і централізовано логувати помилки доставки.&lt;/p&gt;<br />
&lt;hr data-start=&quot;5306&quot; data-end=&quot;5309&quot;&gt;<br />
&lt;h2 data-start=&quot;5311&quot; data-end=&quot;5353&quot;&gt;Крок 6. Перевіряємо, що Gmail не блокує&lt;/h2&gt;<br />
&lt;p data-start=&quot;5354&quot; data-end=&quot;5405&quot;&gt;В Gmail відкрий лист &amp;rarr; &amp;ldquo;Показати оригінал&amp;rdquo; і шукай:&lt;/p&gt;<br />
&lt;ul data-start=&quot;5406&quot; data-end=&quot;5478&quot;&gt;<br />
&lt;li data-start=&quot;5406&quot; data-end=&quot;5418&quot;&gt;<br />
&lt;p data-start=&quot;5408&quot; data-end=&quot;5418&quot;&gt;&lt;code data-start=&quot;5408&quot; data-end=&quot;5418&quot;&gt;SPF=PASS&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5419&quot; data-end=&quot;5432&quot;&gt;<br />
&lt;p data-start=&quot;5421&quot; data-end=&quot;5432&quot;&gt;&lt;code data-start=&quot;5421&quot; data-end=&quot;5432&quot;&gt;DKIM=PASS&lt;/code&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5433&quot; data-end=&quot;5478&quot;&gt;<br />
&lt;p data-start=&quot;5435&quot; data-end=&quot;5478&quot;&gt;&lt;code data-start=&quot;5435&quot; data-end=&quot;5447&quot;&gt;DMARC=PASS&lt;/code&gt; (коли політика стабілізується)&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;5480&quot; data-end=&quot;5674&quot;&gt;Якщо SPF не проходить &amp;mdash; перевір, що у домені &lt;strong data-start=&quot;5525&quot; data-end=&quot;5533&quot;&gt;одна&lt;/strong&gt; SPF-запис і там є &lt;code data-start=&quot;5552&quot; data-end=&quot;5569&quot;&gt;ip4:95.216.1.58&lt;/code&gt;. Якщо DKIM не проходить &amp;mdash; значить сервер/ Mailgun не підписує (або ти опублікував не той ключ/селектор).&lt;/p&gt;<br />
&lt;hr data-start=&quot;5676&quot; data-end=&quot;5679&quot;&gt;<br />
&lt;p data-start=&quot;5681&quot; data-end=&quot;5891&quot;&gt;У підсумку ти отримуєш найкраще з двох світів: нормальні &amp;ldquo;живі&amp;rdquo; скриньки на сервері плюс надійну транзакційну відправку через Mailgun API. А головне &amp;mdash; Gmail перестає різати листи через неаутентифікований домен.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  <p><strong>Теги:</strong> 
 Mailgun API, Mail, FastPanel, Dovecot, Postfix, DKIM, DNS </p>
  ]]></content:encoded>
 <pubDate>Fri, 26 Dec 2025 16:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Різне</category>
  </item>
  <item>
 <title>Що таке CAPTCHA: як працює та чому вона досі рятує сайти від ботів</title>
 <link>https://uhost.online/blog/shcho-take-captcha-yak-pratsyu-ta-chomu-vona-dos-ryatu-sayti-vd-botv</link>
 <guid isPermaLink="true">https://uhost.online/blog/shcho-take-captcha-yak-pratsyu-ta-chomu-vona-dos-ryatu-sayti-vd-botv</guid>
 <description><![CDATA[Розбираємо CAPTCHA просто і цікаво: як вона відрізняє людину від бота, які бувають види (reCAPTCHA, hCaptcha, invisible), де ставити, як не зіпсувати UX, типові помилки та поради з безпеки.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage24202515_01_53_1766581339_5955.webp" alt="Що таке CAPTCHA: як працює та чому вона досі рятує сайти від ботів" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;615&quot; data-end=&quot;640&quot;&gt;&lt;strong data-start=&quot;615&quot; data-end=&quot;638&quot;&gt;Коротке оглавлення:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ol data-start=&quot;641&quot; data-end=&quot;909&quot;&gt;<br />
&lt;li data-start=&quot;641&quot; data-end=&quot;670&quot;&gt;<br />
&lt;p data-start=&quot;644&quot; data-end=&quot;670&quot;&gt;CAPTCHA простими словами&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;671&quot; data-end=&quot;700&quot;&gt;<br />
&lt;p data-start=&quot;674&quot; data-end=&quot;700&quot;&gt;Які загрози вона зупиняє&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;701&quot; data-end=&quot;741&quot;&gt;<br />
&lt;p data-start=&quot;704&quot; data-end=&quot;741&quot;&gt;Як працює перевірка &amp;ldquo;людина чи бот&amp;rdquo;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;742&quot; data-end=&quot;771&quot;&gt;<br />
&lt;p data-start=&quot;745&quot; data-end=&quot;771&quot;&gt;Види CAPTCHA і як обрати&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;772&quot; data-end=&quot;811&quot;&gt;<br />
&lt;p data-start=&quot;775&quot; data-end=&quot;811&quot;&gt;Де ставити, щоб не вбити конверсію&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;812&quot; data-end=&quot;859&quot;&gt;<br />
&lt;p data-start=&quot;815&quot; data-end=&quot;859&quot;&gt;CAPTCHA vs сучасні боти: що реально працює&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;860&quot; data-end=&quot;879&quot;&gt;<br />
&lt;p data-start=&quot;863&quot; data-end=&quot;879&quot;&gt;Типові помилки&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;880&quot; data-end=&quot;909&quot;&gt;<br />
&lt;p data-start=&quot;883&quot; data-end=&quot;909&quot;&gt;Чекліст для власника сайту&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;h1 data-start=&quot;911&quot; data-end=&quot;951&quot;&gt;Що таке CAPTCHA і навіщо вона потрібна&lt;/h1&gt;<br />
&lt;p data-start=&quot;953&quot; data-end=&quot;1267&quot;&gt;Уяви: твій сайт &amp;mdash; це магазин із дверима, які завжди відчинені. З одного боку, це ідеально для клієнтів. З іншого &amp;mdash; разом із людьми заходять і &amp;ldquo;відвідувачі&amp;rdquo;, які нічого не купують, зате вміють: засипати форми спамом, підбирати паролі, накручувати реєстрації, сканувати уразливості та просто з&amp;rsquo;їдати ресурси сервера.&lt;/p&gt;<br />
&lt;p data-start=&quot;1269&quot; data-end=&quot;1452&quot;&gt;CAPTCHA &amp;mdash; це той самий &amp;ldquo;простий охоронець на вході&amp;rdquo;, який не вимагає паспорта, але просить зробити маленьку дію, що для людини &amp;mdash; дрібниця, а для бота &amp;mdash; дорогий або нестабільний квест.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;1454&quot; data-end=&quot;1487&quot;&gt;1) Які загрози зупиняє CAPTCHA&lt;/h2&gt;<br />
&lt;p data-start=&quot;1488&quot; data-end=&quot;1584&quot;&gt;CAPTCHA не є чарівною паличкою, але в реальному житті вона добре відтинає масові атаки, зокрема:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1585&quot; data-end=&quot;1940&quot;&gt;<br />
&lt;li data-start=&quot;1585&quot; data-end=&quot;1635&quot;&gt;<br />
&lt;p data-start=&quot;1587&quot; data-end=&quot;1635&quot;&gt;&lt;strong data-start=&quot;1587&quot; data-end=&quot;1604&quot;&gt;спам у формах&lt;/strong&gt; (контакти, коментарі, заявки);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1636&quot; data-end=&quot;1699&quot;&gt;<br />
&lt;p data-start=&quot;1638&quot; data-end=&quot;1699&quot;&gt;&lt;strong data-start=&quot;1638&quot; data-end=&quot;1656&quot;&gt;бот-реєстрації&lt;/strong&gt; (фейкові акаунти під розсилки/шахрайство);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1700&quot; data-end=&quot;1743&quot;&gt;<br />
&lt;p data-start=&quot;1702&quot; data-end=&quot;1743&quot;&gt;&lt;strong data-start=&quot;1702&quot; data-end=&quot;1717&quot;&gt;brute force&lt;/strong&gt; на логін (підбір пароля);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1744&quot; data-end=&quot;1803&quot;&gt;<br />
&lt;p data-start=&quot;1746&quot; data-end=&quot;1803&quot;&gt;&lt;strong data-start=&quot;1746&quot; data-end=&quot;1759&quot;&gt;скрейпінг&lt;/strong&gt; (масове збирання контенту, цін, контактів);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1804&quot; data-end=&quot;1839&quot;&gt;<br />
&lt;p data-start=&quot;1806&quot; data-end=&quot;1839&quot;&gt;&lt;strong data-start=&quot;1806&quot; data-end=&quot;1838&quot;&gt;накрутка голосувань/рейтингу&lt;/strong&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1840&quot; data-end=&quot;1940&quot;&gt;<br />
&lt;p data-start=&quot;1842&quot; data-end=&quot;1940&quot;&gt;частково &amp;mdash; &lt;strong data-start=&quot;1853&quot; data-end=&quot;1881&quot;&gt;DDoS на рівні застосунку&lt;/strong&gt; (коли тисячі &amp;ldquo;користувачів&amp;rdquo; б&amp;rsquo;ють у важку форму чи пошук).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;1942&quot; data-end=&quot;2098&quot;&gt;Сильна сторона CAPTCHA &amp;mdash; вона робить атаку &lt;strong data-start=&quot;1985&quot; data-end=&quot;2010&quot;&gt;економічно невигідною&lt;/strong&gt;: боту потрібно більше часу, більше ресурсів або навіть &amp;ldquo;людські ферми&amp;rdquo; для проходження.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2100&quot; data-end=&quot;2142&quot;&gt;2) Як CAPTCHA відрізняє людину від бота&lt;/h2&gt;<br />
&lt;p data-start=&quot;2143&quot; data-end=&quot;2310&quot;&gt;Класичні CAPTCHA колись були прості: розпізнай символи, вибери картинки, виріши пазл. Зараз усе цікавіше: сучасні системи часто працюють &amp;ldquo;в тіні&amp;rdquo; і оцінюють поведінку:&lt;/p&gt;<br />
&lt;ul data-start=&quot;2311&quot; data-end=&quot;2496&quot;&gt;<br />
&lt;li data-start=&quot;2311&quot; data-end=&quot;2358&quot;&gt;<br />
&lt;p data-start=&quot;2313&quot; data-end=&quot;2358&quot;&gt;як рухається курсор (живий чи &amp;ldquo;пряма лінія&amp;rdquo;);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2359&quot; data-end=&quot;2389&quot;&gt;<br />
&lt;p data-start=&quot;2361&quot; data-end=&quot;2389&quot;&gt;як швидко заповнюються поля;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2390&quot; data-end=&quot;2422&quot;&gt;<br />
&lt;p data-start=&quot;2392&quot; data-end=&quot;2422&quot;&gt;чи є підозрілі патерни кліків;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2423&quot; data-end=&quot;2456&quot;&gt;<br />
&lt;p data-start=&quot;2425&quot; data-end=&quot;2456&quot;&gt;репутація IP/пристрою/браузера;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2457&quot; data-end=&quot;2496&quot;&gt;<br />
&lt;p data-start=&quot;2459&quot; data-end=&quot;2496&quot;&gt;чи збігаються ознаки &amp;ldquo;автоматизації&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2498&quot; data-end=&quot;2635&quot;&gt;Тому багато рішень мають режим &lt;strong data-start=&quot;2529&quot; data-end=&quot;2542&quot;&gt;invisible&lt;/strong&gt;: більшості нормальних користувачів нічого не показують, а підозрілим &amp;mdash; підкидають перевірку.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2637&quot; data-end=&quot;2666&quot;&gt;3) Види CAPTCHA: що обрати&lt;/h2&gt;<br />
&lt;p data-start=&quot;2667&quot; data-end=&quot;2690&quot;&gt;Найпопулярніші підходи:&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2692&quot; data-end=&quot;2725&quot;&gt;Текстова/картинкова (класика)&lt;/h3&gt;<br />
&lt;p data-start=&quot;2726&quot; data-end=&quot;2842&quot;&gt;Плюс: зрозуміло, що відбувається. Мінус: часто дратує, іноді погано з доступністю, боти навчилися частково обходити.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2844&quot; data-end=&quot;2874&quot;&gt;Checkbox &amp;ldquo;I&amp;rsquo;m not a robot&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;2875&quot; data-end=&quot;2950&quot;&gt;Компроміс: для більшості це один клік, для підозрілих &amp;mdash; додаткове завдання.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2952&quot; data-end=&quot;2973&quot;&gt;Invisible CAPTCHA&lt;/h3&gt;<br />
&lt;p data-start=&quot;2974&quot; data-end=&quot;3110&quot;&gt;Найкращий UX, але важливо правильно налаштувати пороги/сценарії, інакше можна або пропускати сміття, або почати &amp;ldquo;душити&amp;rdquo; реальних людей.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3112&quot; data-end=&quot;3152&quot;&gt;Альтернативи типу &amp;ldquo;легкої перевірки&amp;rdquo;&lt;/h3&gt;<br />
&lt;p data-start=&quot;3153&quot; data-end=&quot;3188&quot;&gt;Іноді замість CAPTCHA працює краще:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3189&quot; data-end=&quot;3382&quot;&gt;<br />
&lt;li data-start=&quot;3189&quot; data-end=&quot;3243&quot;&gt;<br />
&lt;p data-start=&quot;3191&quot; data-end=&quot;3243&quot;&gt;honeypot-поле (людина його не бачить, бот заповнює);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3244&quot; data-end=&quot;3309&quot;&gt;<br />
&lt;p data-start=&quot;3246&quot; data-end=&quot;3309&quot;&gt;затримка (не приймати форму, якщо її заповнили за 0.3 секунди);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3310&quot; data-end=&quot;3332&quot;&gt;<br />
&lt;p data-start=&quot;3312&quot; data-end=&quot;3332&quot;&gt;ліміти на IP/акаунт;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3333&quot; data-end=&quot;3382&quot;&gt;<br />
&lt;p data-start=&quot;3335&quot; data-end=&quot;3382&quot;&gt;підтвердження email/телефону для критичних дій.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3384&quot; data-end=&quot;3462&quot;&gt;Правильний підхід &amp;mdash; не ставити CAPTCHA &amp;ldquo;скрізь і всюди&amp;rdquo;, а комбінувати методи.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;3464&quot; data-end=&quot;3509&quot;&gt;4) Де ставити CAPTCHA, щоб не зіпсувати UX&lt;/h2&gt;<br />
&lt;p data-start=&quot;3510&quot; data-end=&quot;3585&quot;&gt;Ключова помилка - ставити CAPTCHA &quot;скрізь&quot;. Правильний підхід &amp;ndash; захищати точки ризику&lt;/p&gt;<br />
&lt;p data-start=&quot;3587&quot; data-end=&quot;3602&quot;&gt;Найкращі місця:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3603&quot; data-end=&quot;3831&quot;&gt;<br />
&lt;li data-start=&quot;3603&quot; data-end=&quot;3668&quot;&gt;<br />
&lt;p data-start=&quot;3605&quot; data-end=&quot;3668&quot;&gt;&lt;strong data-start=&quot;3605&quot; data-end=&quot;3625&quot;&gt;форми зловживань&lt;/strong&gt;: коментарі, зворотний зв&amp;rsquo;язок, реєстрація;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3669&quot; data-end=&quot;3704&quot;&gt;<br />
&lt;p data-start=&quot;3671&quot; data-end=&quot;3704&quot;&gt;&lt;strong data-start=&quot;3671&quot; data-end=&quot;3703&quot;&gt;логін після N невдалих спроб&lt;/strong&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3705&quot; data-end=&quot;3753&quot;&gt;<br />
&lt;p data-start=&quot;3707&quot; data-end=&quot;3753&quot;&gt;&lt;strong data-start=&quot;3707&quot; data-end=&quot;3730&quot;&gt;публікація контенту&lt;/strong&gt; (відгуки, оголошення);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3754&quot; data-end=&quot;3831&quot;&gt;<br />
&lt;p data-start=&quot;3756&quot; data-end=&quot;3831&quot;&gt;&lt;strong data-start=&quot;3756&quot; data-end=&quot;3780&quot;&gt;підозріла активність&lt;/strong&gt;: багато запитів, підозрілий IP, аномальні патерни.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3833&quot; data-end=&quot;3850&quot;&gt;Не найкраща ідея:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3851&quot; data-end=&quot;3997&quot;&gt;<br />
&lt;li data-start=&quot;3851&quot; data-end=&quot;3894&quot;&gt;<br />
&lt;p data-start=&quot;3853&quot; data-end=&quot;3894&quot;&gt;ставити CAPTCHA на кожен клік у каталозі;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3895&quot; data-end=&quot;3955&quot;&gt;<br />
&lt;p data-start=&quot;3897&quot; data-end=&quot;3955&quot;&gt;ставити на оплату без потреби (може вдарити по конверсії);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3956&quot; data-end=&quot;3997&quot;&gt;<br />
&lt;p data-start=&quot;3958&quot; data-end=&quot;3997&quot;&gt;ламати мобільний UX великими віджетами.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;3999&quot; data-end=&quot;4052&quot;&gt;5) CAPTCHA vs сучасні боти: чесно про ефективність&lt;/h2&gt;<br />
&lt;p data-start=&quot;4053&quot; data-end=&quot;4204&quot;&gt;Боти еволюціонують: є headless-браузери, проксі-мережі, автоматизація, ферми &amp;ldquo;ручного проходження&amp;rdquo;. Тому CAPTCHA не повинна бути твоїм єдиним захистом.&lt;/p&gt;<br />
&lt;p data-start=&quot;4206&quot; data-end=&quot;4234&quot;&gt;Що працює краще в комплексі:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4235&quot; data-end=&quot;4588&quot;&gt;<br />
&lt;li data-start=&quot;4235&quot; data-end=&quot;4302&quot;&gt;<br />
&lt;p data-start=&quot;4237&quot; data-end=&quot;4302&quot;&gt;&lt;strong data-start=&quot;4237&quot; data-end=&quot;4263&quot;&gt;WAF/фаєрвол застосунку&lt;/strong&gt; (фільтр ботів, правила, репутація IP);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4303&quot; data-end=&quot;4351&quot;&gt;<br />
&lt;p data-start=&quot;4305&quot; data-end=&quot;4351&quot;&gt;&lt;strong data-start=&quot;4305&quot; data-end=&quot;4322&quot;&gt;rate limiting&lt;/strong&gt; (обмеження частоти запитів);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4352&quot; data-end=&quot;4421&quot;&gt;<br />
&lt;p data-start=&quot;4354&quot; data-end=&quot;4421&quot;&gt;&lt;strong data-start=&quot;4354&quot; data-end=&quot;4400&quot;&gt;device fingerprint / поведінкова аналітика&lt;/strong&gt; для критичних точок;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4422&quot; data-end=&quot;4515&quot;&gt;<br />
&lt;p data-start=&quot;4424&quot; data-end=&quot;4515&quot;&gt;&lt;strong data-start=&quot;4424&quot; data-end=&quot;4444&quot;&gt;логіка в бекенді&lt;/strong&gt;: &amp;ldquo;підозріла реєстрація&amp;rdquo; &amp;mdash; відкласти активацію, вимагати підтвердження;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4516&quot; data-end=&quot;4588&quot;&gt;<br />
&lt;p data-start=&quot;4518&quot; data-end=&quot;4588&quot;&gt;&lt;strong data-start=&quot;4518&quot; data-end=&quot;4532&quot;&gt;моніторинг&lt;/strong&gt;: сплески заявок, підозрілі країни, повторювані патерни.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4590&quot; data-end=&quot;4665&quot;&gt;CAPTCHA &amp;mdash; хороший &amp;ldquo;перший бар&amp;rsquo;єр&amp;rdquo;, але найкращий ефект дає &amp;ldquo;пакет&amp;rdquo; захисту.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4667&quot; data-end=&quot;4687&quot;&gt;6) Типові помилки&lt;/h2&gt;<br />
&lt;ul data-start=&quot;4688&quot; data-end=&quot;5023&quot;&gt;<br />
&lt;li data-start=&quot;4688&quot; data-end=&quot;4764&quot;&gt;<br />
&lt;p data-start=&quot;4690&quot; data-end=&quot;4764&quot;&gt;CAPTCHA стоїть, але форма приймає запит без перевірки токена на сервері.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4765&quot; data-end=&quot;4836&quot;&gt;<br />
&lt;p data-start=&quot;4767&quot; data-end=&quot;4836&quot;&gt;Віджет грузиться, але через кеш/JS помилки не відправляє відповідь.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4837&quot; data-end=&quot;4891&quot;&gt;<br />
&lt;p data-start=&quot;4839&quot; data-end=&quot;4891&quot;&gt;CAPTCHA на всіх формах одразу &amp;mdash; і конверсія падає.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4892&quot; data-end=&quot;4954&quot;&gt;<br />
&lt;p data-start=&quot;4894&quot; data-end=&quot;4954&quot;&gt;Немає fallback для користувачів із проблемами доступності.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4955&quot; data-end=&quot;5023&quot;&gt;<br />
&lt;p data-start=&quot;4957&quot; data-end=&quot;5023&quot;&gt;Не налаштовані ліміти &amp;mdash; бот просто &amp;ldquo;лупцює&amp;rdquo; сайт тисячами запитів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;5025&quot; data-end=&quot;5049&quot;&gt;7) Практичний чекліст&lt;/h2&gt;<br />
&lt;ol data-start=&quot;5050&quot; data-end=&quot;5374&quot;&gt;<br />
&lt;li data-start=&quot;5050&quot; data-end=&quot;5091&quot;&gt;<br />
&lt;p data-start=&quot;5053&quot; data-end=&quot;5091&quot;&gt;Став CAPTCHA тільки на ризикові дії.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5092&quot; data-end=&quot;5147&quot;&gt;<br />
&lt;p data-start=&quot;5095&quot; data-end=&quot;5147&quot;&gt;Перевіряй токен &lt;strong data-start=&quot;5111&quot; data-end=&quot;5125&quot;&gt;на сервері&lt;/strong&gt;, не лише на фронті.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5148&quot; data-end=&quot;5202&quot;&gt;<br />
&lt;p data-start=&quot;5151&quot; data-end=&quot;5202&quot;&gt;Додай rate limiting і логування підозрілих подій.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5203&quot; data-end=&quot;5260&quot;&gt;<br />
&lt;p data-start=&quot;5206&quot; data-end=&quot;5260&quot;&gt;Використовуй invisible/checkbox там, де важливий UX.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5261&quot; data-end=&quot;5321&quot;&gt;<br />
&lt;p data-start=&quot;5264&quot; data-end=&quot;5321&quot;&gt;Для логіну &amp;mdash; показуй CAPTCHA лише після кількох фейлів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5322&quot; data-end=&quot;5374&quot;&gt;<br />
&lt;p data-start=&quot;5325&quot; data-end=&quot;5374&quot;&gt;Комбінуй з honeypot/таймінгом/верифікацією email.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  <p><strong>Теги:</strong> 
 Captcha </p>
  ]]></content:encoded>
 <pubDate>Wed, 24 Dec 2025 13:02:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>CMS та сайти</category>
  </item>
  <item>
 <title>SEO-оптимізація зображень: навіщо потрібна та як правильно оптимізувати картинки на сайті</title>
 <link>https://uhost.online/blog/seo-optimzatsya-zobrazhen-navshcho-potrbna-ta-yak-pravilno-optimzuvati-kartinki-na-sayt</link>
 <guid isPermaLink="true">https://uhost.online/blog/seo-optimzatsya-zobrazhen-navshcho-potrbna-ta-yak-pravilno-optimzuvati-kartinki-na-sayt</guid>
 <description><![CDATA[Повний гайд з SEO-оптимізації зображень: швидкість і Core Web Vitals, формати WebP/AVIF, стиснення, розміри, srcset, lazy-load, ALT і назви файлів, кеш, CDN, image sitemap та типові помилки.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage23202515_13_41_1766495639_2083.webp" alt="SEO-оптимізація зображень: навіщо потрібна та як правильно оптимізувати картинки на сайті" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h1 data-start=&quot;604&quot; data-end=&quot;676&quot;&gt;SEO-оптимізація зображень: навіщо та як оптимізувати картинки на сайті&lt;/h1&gt;<br />
&lt;p data-start=&quot;678&quot; data-end=&quot;1002&quot;&gt;Зображення впливають на SEO сильніше, ніж здається. Вони визначають швидкість завантаження сторінки, показники Core Web Vitals, зручність читання на мобільних і навіть конверсію (особливо в каталозі товарів). Якщо картинки &amp;ldquo;важкі&amp;rdquo; або віддаються неправильно, ти втрачаєш і позиції, і трафік з пошуку по зображеннях, і гроші.&lt;/p&gt;<br />
&lt;p data-start=&quot;1004&quot; data-end=&quot;1103&quot;&gt;Нижче &amp;mdash; практичний чекліст, який можна застосувати до блогу, інтернет-магазину, портфоліо чи медіа.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;1105&quot; data-end=&quot;1149&quot;&gt;1) Навіщо оптимізувати зображення для SEO&lt;/h2&gt;<br />
&lt;p data-start=&quot;1150&quot; data-end=&quot;1188&quot;&gt;Оптимізація дає одразу кілька ефектів:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1189&quot; data-end=&quot;1656&quot;&gt;<br />
&lt;li data-start=&quot;1189&quot; data-end=&quot;1263&quot;&gt;<br />
&lt;p data-start=&quot;1191&quot; data-end=&quot;1263&quot;&gt;&lt;strong data-start=&quot;1191&quot; data-end=&quot;1204&quot;&gt;Швидкість&lt;/strong&gt;: менше MB &amp;mdash; швидше відкривається сторінка, менше відмов.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1264&quot; data-end=&quot;1382&quot;&gt;<br />
&lt;p data-start=&quot;1266&quot; data-end=&quot;1382&quot;&gt;&lt;strong data-start=&quot;1266&quot; data-end=&quot;1285&quot;&gt;Core Web Vitals&lt;/strong&gt;: зображення часто є найбільшим елементом першого екрану, тому напряму впливають на LCP та CLS.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1383&quot; data-end=&quot;1476&quot;&gt;<br />
&lt;p data-start=&quot;1385&quot; data-end=&quot;1476&quot;&gt;&lt;strong data-start=&quot;1385&quot; data-end=&quot;1407&quot;&gt;Краще індексування&lt;/strong&gt;: пошуковику простіше зрозуміти, що на картинці і де її показувати.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1477&quot; data-end=&quot;1580&quot;&gt;<br />
&lt;p data-start=&quot;1479&quot; data-end=&quot;1580&quot;&gt;&lt;strong data-start=&quot;1479&quot; data-end=&quot;1505&quot;&gt;Трафік з Google Images&lt;/strong&gt;: правильні метадані та якість підвищують шанси потрапити у видимі блоки.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1581&quot; data-end=&quot;1656&quot;&gt;<br />
&lt;p data-start=&quot;1583&quot; data-end=&quot;1656&quot;&gt;&lt;strong data-start=&quot;1583&quot; data-end=&quot;1604&quot;&gt;Економія ресурсів&lt;/strong&gt;: менше трафіку, менше навантаження на сервер і CDN.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;1658&quot; data-end=&quot;1702&quot;&gt;2) Типові проблеми, через які &amp;ldquo;падає&amp;rdquo; SEO&lt;/h2&gt;<br />
&lt;p data-start=&quot;1703&quot; data-end=&quot;1722&quot;&gt;Найчастіші помилки:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1723&quot; data-end=&quot;2120&quot;&gt;<br />
&lt;li data-start=&quot;1723&quot; data-end=&quot;1782&quot;&gt;<br />
&lt;p data-start=&quot;1725&quot; data-end=&quot;1782&quot;&gt;завантажують фото 4000&amp;times;3000 і показують у картці 400&amp;times;300;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1783&quot; data-end=&quot;1836&quot;&gt;<br />
&lt;p data-start=&quot;1785&quot; data-end=&quot;1836&quot;&gt;використовують PNG там, де потрібен JPEG/WebP/AVIF;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1837&quot; data-end=&quot;1896&quot;&gt;<br />
&lt;p data-start=&quot;1839&quot; data-end=&quot;1896&quot;&gt;немає адаптивних розмірів (мобілка тягне десктоп-версію);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1897&quot; data-end=&quot;1947&quot;&gt;<br />
&lt;p data-start=&quot;1899&quot; data-end=&quot;1947&quot;&gt;немає &lt;code data-start=&quot;1905&quot; data-end=&quot;1919&quot;&gt;width/height&lt;/code&gt; &amp;mdash; сторінка &amp;ldquo;стрибає&amp;rdquo; (CLS);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1948&quot; data-end=&quot;2023&quot;&gt;<br />
&lt;p data-start=&quot;1950&quot; data-end=&quot;2023&quot;&gt;lazy-load застосували до hero-картинки першого екрану (LCP погіршується);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2024&quot; data-end=&quot;2058&quot;&gt;<br />
&lt;p data-start=&quot;2026&quot; data-end=&quot;2058&quot;&gt;у ALT порожньо або спам ключами;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2059&quot; data-end=&quot;2120&quot;&gt;<br />
&lt;p data-start=&quot;2061&quot; data-end=&quot;2120&quot;&gt;картинки віддаються без кешу або через ланцюжки редіректів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;2122&quot; data-end=&quot;2154&quot;&gt;3) Формати: що обирати у 2025&lt;/h2&gt;<br />
&lt;p data-start=&quot;2155&quot; data-end=&quot;2247&quot;&gt;Правило просте: &lt;strong data-start=&quot;2171&quot; data-end=&quot;2223&quot;&gt;використовуй сучасні формати там, де це безпечно&lt;/strong&gt;, і завжди май fallback.&lt;/p&gt;<br />
&lt;ul data-start=&quot;2248&quot; data-end=&quot;2645&quot;&gt;<br />
&lt;li data-start=&quot;2248&quot; data-end=&quot;2327&quot;&gt;<br />
&lt;p data-start=&quot;2250&quot; data-end=&quot;2327&quot;&gt;&lt;strong data-start=&quot;2250&quot; data-end=&quot;2258&quot;&gt;AVIF&lt;/strong&gt;: максимальне стиснення при добрій якості (часто найменший розмір).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2328&quot; data-end=&quot;2406&quot;&gt;<br />
&lt;p data-start=&quot;2330&quot; data-end=&quot;2406&quot;&gt;&lt;strong data-start=&quot;2330&quot; data-end=&quot;2338&quot;&gt;WebP&lt;/strong&gt;: відмінний баланс сумісності та ваги, де-факто стандарт для вебу.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2407&quot; data-end=&quot;2467&quot;&gt;<br />
&lt;p data-start=&quot;2409&quot; data-end=&quot;2467&quot;&gt;&lt;strong data-start=&quot;2409&quot; data-end=&quot;2417&quot;&gt;JPEG&lt;/strong&gt;: підходить для фото, якщо WebP/AVIF недоступні.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2468&quot; data-end=&quot;2546&quot;&gt;<br />
&lt;p data-start=&quot;2470&quot; data-end=&quot;2546&quot;&gt;&lt;strong data-start=&quot;2470&quot; data-end=&quot;2477&quot;&gt;PNG&lt;/strong&gt;: тільки коли потрібна прозорість або чітка графіка без артефактів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2547&quot; data-end=&quot;2645&quot;&gt;<br />
&lt;p data-start=&quot;2549&quot; data-end=&quot;2645&quot;&gt;&lt;strong data-start=&quot;2549&quot; data-end=&quot;2556&quot;&gt;SVG&lt;/strong&gt;: ідеальний для іконок і векторної графіки (але без &amp;ldquo;важких&amp;rdquo; вбудованих растрових даних).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2647&quot; data-end=&quot;2726&quot;&gt;Практика: для каталогу/блогу найкраще мати &lt;strong data-start=&quot;2690&quot; data-end=&quot;2725&quot;&gt;AVIF + WebP + fallback JPEG/PNG&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2728&quot; data-end=&quot;2780&quot;&gt;4) Стиснення без втрати якості (майже без втрати)&lt;/h2&gt;<br />
&lt;p data-start=&quot;2781&quot; data-end=&quot;2807&quot;&gt;Компресія &amp;mdash; це 80% успіху.&lt;/p&gt;<br />
&lt;ul data-start=&quot;2808&quot; data-end=&quot;2985&quot;&gt;<br />
&lt;li data-start=&quot;2808&quot; data-end=&quot;2909&quot;&gt;<br />
&lt;p data-start=&quot;2810&quot; data-end=&quot;2909&quot;&gt;Для фото зазвичай достатньо &lt;strong data-start=&quot;2838&quot; data-end=&quot;2866&quot;&gt;якісного lossy-стиснення&lt;/strong&gt;: різниця непомітна, а вага падає в рази.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2910&quot; data-end=&quot;2985&quot;&gt;<br />
&lt;p data-start=&quot;2912&quot; data-end=&quot;2985&quot;&gt;Для інфографіки/скрінів &amp;mdash; підбирай параметри окремо, щоб не &amp;ldquo;плив&amp;rdquo; текст.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2987&quot; data-end=&quot;3025&quot;&gt;Організаційно зручно зробити пайплайн:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3026&quot; data-end=&quot;3146&quot;&gt;<br />
&lt;li data-start=&quot;3026&quot; data-end=&quot;3088&quot;&gt;<br />
&lt;p data-start=&quot;3028&quot; data-end=&quot;3088&quot;&gt;при завантаженні картинки: ресайз + конвертація + компресія;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3089&quot; data-end=&quot;3146&quot;&gt;<br />
&lt;p data-start=&quot;3091&quot; data-end=&quot;3146&quot;&gt;зберігати кілька розмірів (thumbnail / medium / large).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;3148&quot; data-end=&quot;3192&quot;&gt;5) Правильні розміри та responsive images&lt;/h2&gt;<br />
&lt;p data-start=&quot;3193&quot; data-end=&quot;3269&quot;&gt;SEO і швидкість вмирають, коли мобільний користувач тягне &amp;ldquo;десктопний&amp;rdquo; файл.&lt;/p&gt;<br />
&lt;p data-start=&quot;3271&quot; data-end=&quot;3299&quot;&gt;Мінімум, який варто зробити:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3300&quot; data-end=&quot;3543&quot;&gt;<br />
&lt;li data-start=&quot;3300&quot; data-end=&quot;3372&quot;&gt;<br />
&lt;p data-start=&quot;3302&quot; data-end=&quot;3372&quot;&gt;зберігати кілька варіантів ширини (наприклад 320 / 640 / 1024 / 1600);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3373&quot; data-end=&quot;3453&quot;&gt;<br />
&lt;p data-start=&quot;3375&quot; data-end=&quot;3453&quot;&gt;віддавати через &lt;code data-start=&quot;3391&quot; data-end=&quot;3399&quot;&gt;srcset&lt;/code&gt; та &lt;code data-start=&quot;3403&quot; data-end=&quot;3410&quot;&gt;sizes&lt;/code&gt;, щоб браузер сам вибирав оптимальний файл;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3454&quot; data-end=&quot;3543&quot;&gt;<br />
&lt;p data-start=&quot;3456&quot; data-end=&quot;3543&quot;&gt;додавати &lt;code data-start=&quot;3465&quot; data-end=&quot;3472&quot;&gt;width&lt;/code&gt; і &lt;code data-start=&quot;3475&quot; data-end=&quot;3483&quot;&gt;height&lt;/code&gt; у &lt;code data-start=&quot;3486&quot; data-end=&quot;3493&quot;&gt;&lt;img&gt;&lt;/code&gt; (або стилями резервувати місце), щоб не було CLS.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3545&quot; data-end=&quot;3628&quot;&gt;Якщо використовуєш &lt;picture&gt;&lt;/picture&gt;, можеш задавати AVIF/WebP першими, а потім fallback.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;3630&quot; data-end=&quot;3672&quot;&gt;6) Lazy-load: де корисно, а де шкідливо&lt;/h2&gt;<br />
&lt;p data-start=&quot;3673&quot; data-end=&quot;3721&quot;&gt;Ліниве завантаження &amp;mdash; must-have, але з нюансами:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3722&quot; data-end=&quot;3993&quot;&gt;<br />
&lt;li data-start=&quot;3722&quot; data-end=&quot;3819&quot;&gt;<br />
&lt;p data-start=&quot;3724&quot; data-end=&quot;3819&quot;&gt;&lt;strong data-start=&quot;3724&quot; data-end=&quot;3738&quot;&gt;Застосовуй&lt;/strong&gt; до картинок нижче першого екрану, у довгих статтях, галереях, списках товарів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3820&quot; data-end=&quot;3993&quot;&gt;<br />
&lt;p data-start=&quot;3822&quot; data-end=&quot;3993&quot;&gt;&lt;strong data-start=&quot;3822&quot; data-end=&quot;3839&quot;&gt;Не застосовуй&lt;/strong&gt; до головної (hero) картинки, яка формує перший екран: вона повинна завантажуватися максимально рано. Для LCP-елементів доречні preload/priority-механіки.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;3995&quot; data-end=&quot;4038&quot;&gt;7) ALT, назви файлів і контекст сторінки&lt;/h2&gt;<br />
&lt;p data-start=&quot;4039&quot; data-end=&quot;4086&quot;&gt;ALT &amp;mdash; не &amp;ldquo;місце для ключів&amp;rdquo;, а опис зображення.&lt;/p&gt;<br />
&lt;ul data-start=&quot;4087&quot; data-end=&quot;4398&quot;&gt;<br />
&lt;li data-start=&quot;4087&quot; data-end=&quot;4151&quot;&gt;<br />
&lt;p data-start=&quot;4089&quot; data-end=&quot;4151&quot;&gt;Пиши природно: що на фото, модель/категорія, важливі деталі.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4152&quot; data-end=&quot;4206&quot;&gt;<br />
&lt;p data-start=&quot;4154&quot; data-end=&quot;4206&quot;&gt;Не дублюй те саме слово у кожному ALT на сторінці.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4207&quot; data-end=&quot;4303&quot;&gt;<br />
&lt;p data-start=&quot;4209&quot; data-end=&quot;4303&quot;&gt;Назви файлів роби зрозумілими: &lt;code data-start=&quot;4240&quot; data-end=&quot;4273&quot;&gt;seo-optimizaciya-zobrazhen.webp&lt;/code&gt; краще, ніж &lt;code data-start=&quot;4285&quot; data-end=&quot;4300&quot;&gt;IMG_1234.webp&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4304&quot; data-end=&quot;4398&quot;&gt;<br />
&lt;p data-start=&quot;4306&quot; data-end=&quot;4398&quot;&gt;Додавай підпис/контекст у тексті там, де це логічно (особливо для інфографіки та прикладів).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4400&quot; data-end=&quot;4434&quot;&gt;Це одночасно і SEO, і доступність.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4436&quot; data-end=&quot;4470&quot;&gt;8) Кеш, CDN і віддача з сервера&lt;/h2&gt;<br />
&lt;p data-start=&quot;4471&quot; data-end=&quot;4557&quot;&gt;Навіть ідеально стиснута картинка буде &amp;ldquo;повільною&amp;rdquo;, якщо сервер віддає її неправильно.&lt;/p&gt;<br />
&lt;ul data-start=&quot;4558&quot; data-end=&quot;4820&quot;&gt;<br />
&lt;li data-start=&quot;4558&quot; data-end=&quot;4631&quot;&gt;<br />
&lt;p data-start=&quot;4560&quot; data-end=&quot;4631&quot;&gt;Вмикай довгий кеш для статичних файлів (і версіонування/хеш у назві).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4632&quot; data-end=&quot;4693&quot;&gt;<br />
&lt;p data-start=&quot;4634&quot; data-end=&quot;4693&quot;&gt;Віддавай з CDN, якщо багато трафіку або географія широка.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4694&quot; data-end=&quot;4782&quot;&gt;<br />
&lt;p data-start=&quot;4696&quot; data-end=&quot;4782&quot;&gt;Перевір заголовки: &lt;code data-start=&quot;4715&quot; data-end=&quot;4730&quot;&gt;Cache-Control&lt;/code&gt;, &lt;code data-start=&quot;4732&quot; data-end=&quot;4752&quot;&gt;ETag/Last-Modified&lt;/code&gt;, правильний &lt;code data-start=&quot;4765&quot; data-end=&quot;4779&quot;&gt;Content-Type&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4783&quot; data-end=&quot;4820&quot;&gt;<br />
&lt;p data-start=&quot;4785&quot; data-end=&quot;4820&quot;&gt;Уникай 302/301 на файлах зображень.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;4822&quot; data-end=&quot;4854&quot;&gt;9) Image sitemap і індексація&lt;/h2&gt;<br />
&lt;p data-start=&quot;4855&quot; data-end=&quot;5085&quot;&gt;Якщо у тебе багато важливих картинок (товари/портфоліо/медіа), &lt;strong data-start=&quot;4918&quot; data-end=&quot;4935&quot;&gt;image sitemap&lt;/strong&gt; допомагає швидше показуватися в пошуку по зображеннях. Важливо включати тільки значущі файли і не засмічувати карту іконками та декоративними фонами.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;5087&quot; data-end=&quot;5112&quot;&gt;10) Практичний чекліст&lt;/h2&gt;<br />
&lt;ol data-start=&quot;5113&quot; data-end=&quot;5447&quot;&gt;<br />
&lt;li data-start=&quot;5113&quot; data-end=&quot;5156&quot;&gt;<br />
&lt;p data-start=&quot;5116&quot; data-end=&quot;5156&quot;&gt;Конвертуй фото в WebP/AVIF + fallback.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5157&quot; data-end=&quot;5197&quot;&gt;<br />
&lt;p data-start=&quot;5160&quot; data-end=&quot;5197&quot;&gt;Стискай і ресайзь при завантаженні.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5198&quot; data-end=&quot;5240&quot;&gt;<br />
&lt;p data-start=&quot;5201&quot; data-end=&quot;5240&quot;&gt;Віддавай responsive (&lt;code data-start=&quot;5222&quot; data-end=&quot;5236&quot;&gt;srcset/sizes&lt;/code&gt;).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5241&quot; data-end=&quot;5283&quot;&gt;<br />
&lt;p data-start=&quot;5244&quot; data-end=&quot;5283&quot;&gt;Додавай &lt;code data-start=&quot;5252&quot; data-end=&quot;5266&quot;&gt;width/height&lt;/code&gt;, прибирай CLS.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5284&quot; data-end=&quot;5329&quot;&gt;<br />
&lt;p data-start=&quot;5287&quot; data-end=&quot;5329&quot;&gt;Lazy-load &amp;mdash; тільки нижче першого екрану.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5330&quot; data-end=&quot;5373&quot;&gt;<br />
&lt;p data-start=&quot;5333&quot; data-end=&quot;5373&quot;&gt;ALT імена файлів &amp;mdash; описові, без спаму.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5374&quot; data-end=&quot;5416&quot;&gt;<br />
&lt;p data-start=&quot;5377&quot; data-end=&quot;5416&quot;&gt;Кеш + CDN + без редіректів на файлах.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5417&quot; data-end=&quot;5447&quot;&gt;<br />
&lt;p data-start=&quot;5420&quot; data-end=&quot;5447&quot;&gt;За потреби &amp;mdash; image sitemap.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;
  ]]></content:encoded>
 <pubDate>Wed, 24 Dec 2025 12:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>CMS та сайти</category>
  </item>
  <item>
 <title>Карта сайту зображень: як налаштувати image sitemap і прискорити індексацію картинок у Google</title>
 <link>https://uhost.online/blog/karta-saytu-zobrazhen-yak-nalashtuvati-image-sitemap-priskoriti-ndeksatsyu-kartinok-u-google</link>
 <guid isPermaLink="true">https://uhost.online/blog/karta-saytu-zobrazhen-yak-nalashtuvati-image-sitemap-priskoriti-ndeksatsyu-kartinok-u-google</guid>
 <description><![CDATA[Детальний гайд з налаштування карти сайту зображень (image sitemap): навіщо вона потрібна, вимоги Google, структура XML, теги image:image, як згенерувати і підключити в robots.txt та Search Console, типові помилки.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage23202514_49_11_1766494175_5881.webp" alt="Карта сайту зображень: як налаштувати image sitemap і прискорити індексацію картинок у Google" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h1 data-start=&quot;635&quot; data-end=&quot;687&quot;&gt;Налаштовуємо карту сайту зображень (Image Sitemap)&lt;/h1&gt;<br />
&lt;p data-start=&quot;689&quot; data-end=&quot;1146&quot;&gt;Зображення часто дають суттєвий відсоток органічного трафіку &amp;mdash; з Google Images, з &amp;ldquo;карток&amp;rdquo; у видачі, з Discover та інших блоків. Але пошуковику складніше &amp;ldquo;зрозуміти&amp;rdquo; картинки, ніж текст: особливо якщо вони завантажуються через JS, лежать у галереях, або сторінки мають складну структуру. &lt;strong data-start=&quot;977&quot; data-end=&quot;994&quot;&gt;Image sitemap&lt;/strong&gt; допомагає прискорити індексацію зображень і передати Google більше сигналів: де саме використовується картинка, який у неї URL, заголовок, підпис тощо.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;1148&quot; data-end=&quot;1203&quot;&gt;Що таке карта сайту зображень і навіщо вона потрібна&lt;/h2&gt;<br />
&lt;p data-start=&quot;1204&quot; data-end=&quot;1515&quot;&gt;Image sitemap &amp;mdash; це XML-файл (або частина основної карти сайту), який містить посилання на сторінки та перелік зображень, прив&amp;rsquo;язаних до цих сторінок. Пошуковик не просто бачить &amp;ldquo;ось файл .jpg&amp;rdquo;, а розуміє контекст: зображення належить конкретній сторінці, використовується у конкретному матеріалі і має метадані.&lt;/p&gt;<br />
&lt;p data-start=&quot;1517&quot; data-end=&quot;1553&quot;&gt;Коли image sitemap найбільш корисна:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1554&quot; data-end=&quot;1809&quot;&gt;<br />
&lt;li data-start=&quot;1554&quot; data-end=&quot;1623&quot;&gt;<br />
&lt;p data-start=&quot;1556&quot; data-end=&quot;1623&quot;&gt;у вас багато зображень (каталог товарів, портфоліо, медіа, новини);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1624&quot; data-end=&quot;1687&quot;&gt;<br />
&lt;p data-start=&quot;1626&quot; data-end=&quot;1687&quot;&gt;картинки завантажуються ліниво (lazy-load) або через скрипти;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1688&quot; data-end=&quot;1743&quot;&gt;<br />
&lt;p data-start=&quot;1690&quot; data-end=&quot;1743&quot;&gt;є галереї, слайдери, сторінки з динамічним контентом;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1744&quot; data-end=&quot;1809&quot;&gt;<br />
&lt;p data-start=&quot;1746&quot; data-end=&quot;1809&quot;&gt;ви хочете отримувати додатковий трафік з пошуку по зображеннях.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;1811&quot; data-end=&quot;1847&quot;&gt;Важливі умови перед налаштуванням&lt;/h2&gt;<br />
&lt;p data-start=&quot;1848&quot; data-end=&quot;1897&quot;&gt;Перед тим як робити sitemap, перевір базові речі:&lt;/p&gt;<br />
&lt;ol data-start=&quot;1898&quot; data-end=&quot;2455&quot;&gt;<br />
&lt;li data-start=&quot;1898&quot; data-end=&quot;1998&quot;&gt;<br />
&lt;p data-start=&quot;1901&quot; data-end=&quot;1998&quot;&gt;&lt;strong data-start=&quot;1901&quot; data-end=&quot;1939&quot;&gt;Зображення доступні для індексації&lt;/strong&gt;: не заблоковані в robots.txt, не потребують авторизації.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1999&quot; data-end=&quot;2055&quot;&gt;<br />
&lt;p data-start=&quot;2002&quot; data-end=&quot;2055&quot;&gt;&lt;strong data-start=&quot;2002&quot; data-end=&quot;2033&quot;&gt;URL зображень віддає 200 OK&lt;/strong&gt; (а не 403/404/302).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2056&quot; data-end=&quot;2190&quot;&gt;<br />
&lt;p data-start=&quot;2059&quot; data-end=&quot;2190&quot;&gt;&lt;strong data-start=&quot;2059&quot; data-end=&quot;2079&quot;&gt;Немає дублювання&lt;/strong&gt;: одна й та сама картинка під 10 різними URL (через параметри, CDN-дзеркала, тощо) &amp;mdash; це ускладнює індексацію.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2191&quot; data-end=&quot;2347&quot;&gt;<br />
&lt;p data-start=&quot;2194&quot; data-end=&quot;2347&quot;&gt;&lt;strong data-start=&quot;2194&quot; data-end=&quot;2225&quot;&gt;Правильні формати і розміри&lt;/strong&gt;: сучасні формати (WebP/AVIF) ок, але стеж за якістю і тим, щоб важливі картинки не були &amp;ldquo;мильними&amp;rdquo; чи надто маленькими.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2348&quot; data-end=&quot;2455&quot;&gt;<br />
&lt;p data-start=&quot;2351&quot; data-end=&quot;2455&quot;&gt;&lt;strong data-start=&quot;2351&quot; data-end=&quot;2369&quot;&gt;ALT і контекст&lt;/strong&gt;: sitemap допомагає, але не замінює ALT-текст, підписи і релевантний контент сторінки.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2 data-start=&quot;2457&quot; data-end=&quot;2511&quot;&gt;Де робити image sitemap: окремо чи разом з основною&lt;/h2&gt;<br />
&lt;p data-start=&quot;2512&quot; data-end=&quot;2527&quot;&gt;Є два варіанти:&lt;/p&gt;<br />
&lt;ul data-start=&quot;2528&quot; data-end=&quot;2753&quot;&gt;<br />
&lt;li data-start=&quot;2528&quot; data-end=&quot;2634&quot;&gt;<br />
&lt;p data-start=&quot;2530&quot; data-end=&quot;2634&quot;&gt;&lt;strong data-start=&quot;2530&quot; data-end=&quot;2562&quot;&gt;Окрема карта сайту зображень&lt;/strong&gt; (наприклад, &lt;code data-start=&quot;2575&quot; data-end=&quot;2594&quot;&gt;image-sitemap.xml&lt;/code&gt;) &amp;mdash; зручно, якщо картинок дуже багато.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2635&quot; data-end=&quot;2753&quot;&gt;<br />
&lt;p data-start=&quot;2637&quot; data-end=&quot;2753&quot;&gt;&lt;strong data-start=&quot;2637&quot; data-end=&quot;2668&quot;&gt;Розширення основної sitemap&lt;/strong&gt; тегами зображень &amp;mdash; зручно для невеликих сайтів, де все можна тримати в одному файлі.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2755&quot; data-end=&quot;2923&quot;&gt;На великих проектах часто роблять &lt;strong data-start=&quot;2789&quot; data-end=&quot;2805&quot;&gt;індекс-карту&lt;/strong&gt; (sitemap index), де окремі файли для сторінок, категорій, товарів і зображень. Це простіше масштабувати і оновлювати.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2925&quot; data-end=&quot;2961&quot;&gt;Структура image sitemap (приклад)&lt;/h2&gt;<br />
&lt;p data-start=&quot;2962&quot; data-end=&quot;3067&quot;&gt;Типовий підхід: у ти вказуєш сторінку, а всередині додаєш один або кілька блоків .&lt;/p&gt;<br />
&lt;p data-start=&quot;3069&quot; data-end=&quot;3082&quot;&gt;Важливі поля:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3083&quot; data-end=&quot;3366&quot;&gt;<br />
&lt;li data-start=&quot;3083&quot; data-end=&quot;3127&quot;&gt;<br />
&lt;p data-start=&quot;3085&quot; data-end=&quot;3127&quot;&gt;&amp;mdash; URL сторінки, де є зображення;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3128&quot; data-end=&quot;3170&quot;&gt;<br />
&lt;p data-start=&quot;3130&quot; data-end=&quot;3170&quot;&gt;&amp;mdash; прямий URL зображення;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3171&quot; data-end=&quot;3229&quot;&gt;<br />
&lt;p data-start=&quot;3173&quot; data-end=&quot;3229&quot;&gt;&amp;mdash; назва (не обов&amp;rsquo;язково, але корисно);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3230&quot; data-end=&quot;3281&quot;&gt;<br />
&lt;p data-start=&quot;3232&quot; data-end=&quot;3281&quot;&gt;&amp;mdash; підпис/опис (за наявності);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3282&quot; data-end=&quot;3366&quot;&gt;<br />
&lt;p data-start=&quot;3284&quot; data-end=&quot;3366&quot;&gt;&amp;mdash; якщо є ліцензійні вимоги (рідко потрібно, але інколи доречно).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3368&quot; data-end=&quot;3562&quot;&gt;Практика: не треба додавати в sitemap &lt;strong data-start=&quot;3406&quot; data-end=&quot;3420&quot;&gt;все підряд&lt;/strong&gt; (іконки, пікселі, декоративні елементи). Додавай ті зображення, які мають SEO-цінність: товарні фото, фото робіт, прев&amp;rsquo;ю статей, інфографіку.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;3564&quot; data-end=&quot;3603&quot;&gt;Як згенерувати карту сайту зображень&lt;/h2&gt;<br />
&lt;p data-start=&quot;3604&quot; data-end=&quot;3639&quot;&gt;Спосіб залежить від CMS/фреймворку:&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3641&quot; data-end=&quot;3678&quot;&gt;1) CMS (WordPress, OpenCart тощо)&lt;/h3&gt;<br />
&lt;p data-start=&quot;3679&quot; data-end=&quot;3929&quot;&gt;Часто достатньо SEO-плагіну або модулю, який формує sitemap автоматично. Але перевір, чи він реально включає картинки (деякі роблять тільки сторінки). На товарних каталогах важливо, щоб у sitemap були &lt;strong data-start=&quot;3880&quot; data-end=&quot;3903&quot;&gt;основні фото товару&lt;/strong&gt; і, за потреби, додаткові.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3931&quot; data-end=&quot;3983&quot;&gt;2) Самопис / Laravel / Symfony / інший фреймворк&lt;/h3&gt;<br />
&lt;p data-start=&quot;3984&quot; data-end=&quot;4035&quot;&gt;Тут надійніший підхід &amp;mdash; генерація XML за розкладом:&lt;/p&gt;<br />
&lt;ul data-start=&quot;4036&quot; data-end=&quot;4255&quot;&gt;<br />
&lt;li data-start=&quot;4036&quot; data-end=&quot;4079&quot;&gt;<br />
&lt;p data-start=&quot;4038&quot; data-end=&quot;4079&quot;&gt;береш сторінки (статті/товари/портфоліо);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4080&quot; data-end=&quot;4117&quot;&gt;<br />
&lt;p data-start=&quot;4082&quot; data-end=&quot;4117&quot;&gt;дістаєш прив&amp;rsquo;язані зображення з БД;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4118&quot; data-end=&quot;4156&quot;&gt;<br />
&lt;p data-start=&quot;4120&quot; data-end=&quot;4156&quot;&gt;формуєш XML і публікуєш у &lt;code data-start=&quot;4146&quot; data-end=&quot;4155&quot;&gt;public/&lt;/code&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4157&quot; data-end=&quot;4255&quot;&gt;<br />
&lt;p data-start=&quot;4159&quot; data-end=&quot;4255&quot;&gt;при великій кількості &amp;mdash; розбиваєш на файли (наприклад, по 10&amp;ndash;50 тис. URL) і робиш sitemap index.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4257&quot; data-end=&quot;4333&quot;&gt;Порада: генеруй sitemap інкрементально або кешуй, щоб не навантажувати базу.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4335&quot; data-end=&quot;4384&quot;&gt;Підключення карти: robots.txt і Search Console&lt;/h2&gt;<br />
&lt;p data-start=&quot;4385&quot; data-end=&quot;4437&quot;&gt;Після генерації її потрібно &amp;ldquo;підсвітити&amp;rdquo; пошуковику:&lt;/p&gt;<br />
&lt;ol data-start=&quot;4438&quot; data-end=&quot;4466&quot;&gt;<br />
&lt;li data-start=&quot;4438&quot; data-end=&quot;4466&quot;&gt;<br />
&lt;p data-start=&quot;4441&quot; data-end=&quot;4466&quot;&gt;Додай рядок у robots.txt:&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;div class=&quot;contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary&quot;&gt;<br />
&lt;div class=&quot;@w-xl/main:top-9 sticky top-[calc(--spacing(9)+var(--header-height))]&quot;&gt;<br />
&lt;div class=&quot;absolute end-0 bottom-0 flex h-9 items-center pe-2&quot;&gt;<br />
&lt;div class=&quot;bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs&quot;&gt;&amp;nbsp;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;whitespace-pre!&quot;&gt;Sitemap: https:&lt;span class=&quot;hljs-comment&quot;&gt;//твійдомен.ua/sitemap.xml&lt;/span&gt;<br />
Sitemap: https:&lt;span class=&quot;hljs-comment&quot;&gt;//твійдомен.ua/image-sitemap.xml&lt;/span&gt;<br />
&lt;/code&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;ol start=&quot;2&quot; data-start=&quot;4565&quot; data-end=&quot;4656&quot;&gt;<br />
&lt;li data-start=&quot;4565&quot; data-end=&quot;4656&quot;&gt;<br />
&lt;p data-start=&quot;4568&quot; data-end=&quot;4656&quot;&gt;Додай sitemap у Google Search Console (розділ &amp;ldquo;Файли Sitemap&amp;rdquo;) і перевір статус обробки.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2 data-start=&quot;4658&quot; data-end=&quot;4692&quot;&gt;Типові помилки і як їх уникнути&lt;/h2&gt;<br />
&lt;ul data-start=&quot;4693&quot; data-end=&quot;5103&quot;&gt;<br />
&lt;li data-start=&quot;4693&quot; data-end=&quot;4785&quot;&gt;<br />
&lt;p data-start=&quot;4695&quot; data-end=&quot;4785&quot;&gt;&lt;strong data-start=&quot;4695&quot; data-end=&quot;4722&quot;&gt;Блокування в robots.txt&lt;/strong&gt;: сторінка або /uploads/ закриті &amp;mdash; Google не візьме картинки.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4786&quot; data-end=&quot;4881&quot;&gt;<br />
&lt;p data-start=&quot;4788&quot; data-end=&quot;4881&quot;&gt;&lt;strong data-start=&quot;4788&quot; data-end=&quot;4811&quot;&gt;Редіректи на файлах&lt;/strong&gt;: якщо &lt;code data-start=&quot;4818&quot; data-end=&quot;4829&quot;&gt;image:loc&lt;/code&gt; веде на 302/301, індексація може сповільнюватися.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4882&quot; data-end=&quot;4964&quot;&gt;<br />
&lt;p data-start=&quot;4884&quot; data-end=&quot;4964&quot;&gt;&lt;strong data-start=&quot;4884&quot; data-end=&quot;4909&quot;&gt;Параметри і дублікати&lt;/strong&gt;: &lt;code data-start=&quot;4911&quot; data-end=&quot;4924&quot;&gt;?size=small&lt;/code&gt; vs &lt;code data-start=&quot;4928&quot; data-end=&quot;4941&quot;&gt;?size=large&lt;/code&gt; &amp;mdash; вибери канонічний.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4965&quot; data-end=&quot;5036&quot;&gt;<br />
&lt;p data-start=&quot;4967&quot; data-end=&quot;5036&quot;&gt;&lt;strong data-start=&quot;4967&quot; data-end=&quot;4987&quot;&gt;Нестабільний CDN&lt;/strong&gt;: таймаути/403 &amp;mdash; Google буде &amp;ldquo;кидати&amp;rdquo; такі URL.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5037&quot; data-end=&quot;5103&quot;&gt;<br />
&lt;p data-start=&quot;5039&quot; data-end=&quot;5103&quot;&gt;&lt;strong data-start=&quot;5039&quot; data-end=&quot;5063&quot;&gt;Декоративні картинки&lt;/strong&gt;: захаращують sitemap і розмивають вагу.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;5105&quot; data-end=&quot;5135&quot;&gt;Як зрозуміти, що все працює&lt;/h2&gt;<br />
&lt;p data-start=&quot;5136&quot; data-end=&quot;5150&quot;&gt;Орієнтуйся на:&lt;/p&gt;<br />
&lt;ul data-start=&quot;5151&quot; data-end=&quot;5350&quot;&gt;<br />
&lt;li data-start=&quot;5151&quot; data-end=&quot;5206&quot;&gt;<br />
&lt;p data-start=&quot;5153&quot; data-end=&quot;5206&quot;&gt;статуси sitemap у Search Console (прочитано/помилки);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5207&quot; data-end=&quot;5245&quot;&gt;<br />
&lt;p data-start=&quot;5209&quot; data-end=&quot;5245&quot;&gt;кількість проіндексованих зображень;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5246&quot; data-end=&quot;5289&quot;&gt;<br />
&lt;p data-start=&quot;5248&quot; data-end=&quot;5289&quot;&gt;трафік з Google Images і покази в звітах;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5290&quot; data-end=&quot;5350&quot;&gt;<br />
&lt;p data-start=&quot;5292&quot; data-end=&quot;5350&quot;&gt;швидкість появи нових зображень у пошуку після публікацій.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;
  <p><strong>Теги:</strong> 
 WordPress, Laravel, Sitemap, CMS, Symfony, OpenCart, robots.txt, Search Console </p>
  ]]></content:encoded>
 <pubDate>Tue, 23 Dec 2025 20:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>CMS та сайти</category>
  </item>
  <item>
 <title>Що таке протокол TLS: як працює, що шифрує та від чого захищає ваш сайт</title>
 <link>https://uhost.online/blog/shcho-take-protokol-tls-yak-pratsyu-shcho-shifru-ta-vd-chogo-zakhishcha-vash-sayt</link>
 <guid isPermaLink="true">https://uhost.online/blog/shcho-take-protokol-tls-yak-pratsyu-shcho-shifru-ta-vd-chogo-zakhishcha-vash-sayt</guid>
 <description><![CDATA[Детальний гайд про TLS: принципи шифрування, handshake, сертифікати, TLS 1.2 vs 1.3, SNI/ALPN, 0-RTT, типові атаки та практичні поради з налаштування HTTPS на сервері.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage23202517_01_09_1766502108_6721.webp" alt="Що таке протокол TLS: як працює, що шифрує та від чого захищає ваш сайт" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;539&quot; data-end=&quot;564&quot;&gt;&lt;strong data-start=&quot;539&quot; data-end=&quot;562&quot;&gt;Коротке оглавлення:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ol data-start=&quot;565&quot; data-end=&quot;903&quot;&gt;<br />
&lt;li data-start=&quot;565&quot; data-end=&quot;590&quot;&gt;<br />
&lt;p data-start=&quot;568&quot; data-end=&quot;590&quot;&gt;TLS простими словами&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;591&quot; data-end=&quot;631&quot;&gt;<br />
&lt;p data-start=&quot;594&quot; data-end=&quot;631&quot;&gt;Від чого захищає TLS і де його межі&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;632&quot; data-end=&quot;660&quot;&gt;<br />
&lt;p data-start=&quot;635&quot; data-end=&quot;660&quot;&gt;Як працює TLS handshake&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;661&quot; data-end=&quot;712&quot;&gt;<br />
&lt;p data-start=&quot;664&quot; data-end=&quot;712&quot;&gt;Сертифікати та PKI: чому браузер довіряє сайту&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;713&quot; data-end=&quot;756&quot;&gt;<br />
&lt;p data-start=&quot;716&quot; data-end=&quot;756&quot;&gt;TLS 1.2 і TLS 1.3: ключові відмінності&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;757&quot; data-end=&quot;818&quot;&gt;<br />
&lt;p data-start=&quot;760&quot; data-end=&quot;818&quot;&gt;Важливі технології поруч: SNI, ALPN, HSTS, OCSP stapling&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;819&quot; data-end=&quot;865&quot;&gt;<br />
&lt;p data-start=&quot;822&quot; data-end=&quot;865&quot;&gt;Типові помилки й як налаштувати правильно&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;866&quot; data-end=&quot;903&quot;&gt;<br />
&lt;p data-start=&quot;869&quot; data-end=&quot;903&quot;&gt;Чекліст безпеки для власника сайту&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h1 data-start=&quot;905&quot; data-end=&quot;934&quot;&gt;Що таке TLS і як він працює&lt;/h1&gt;<br />
&lt;p data-start=&quot;936&quot; data-end=&quot;1255&quot;&gt;TLS (Transport Layer Security) &amp;mdash; це протокол, який забезпечує &lt;strong data-start=&quot;998&quot; data-end=&quot;1020&quot;&gt;захищене з&amp;rsquo;єднання&lt;/strong&gt; між браузером користувача та вашим сервером. У повсякденному житті TLS найчастіше проявляється як &lt;strong data-start=&quot;1119&quot; data-end=&quot;1128&quot;&gt;HTTPS&lt;/strong&gt; і &amp;ldquo;замочок&amp;rdquo; у адресному рядку. Його задача &amp;mdash; зробити так, щоб дані не можна було непомітно перехопити або підмінити по дорозі.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;1257&quot; data-end=&quot;1283&quot;&gt;1) Від чого TLS захищає&lt;/h2&gt;<br />
&lt;p data-start=&quot;1284&quot; data-end=&quot;1316&quot;&gt;TLS закриває три ключові задачі:&lt;/p&gt;<br />
&lt;p data-start=&quot;1318&quot; data-end=&quot;1529&quot;&gt;&lt;strong data-start=&quot;1318&quot; data-end=&quot;1355&quot;&gt;1) Конфіденційність (шифрування).&lt;/strong&gt;&lt;br data-start=&quot;1355&quot; data-end=&quot;1358&quot;&gt;Усе, що користувач відправляє на сайт (логін/пароль, форми, токени, кошик, персональні дані), шифрується так, що сторонній спостерігач у мережі бачить лише &amp;ldquo;набір байтів&amp;rdquo;.&lt;/p&gt;<br />
&lt;p data-start=&quot;1531&quot; data-end=&quot;1765&quot;&gt;&lt;strong data-start=&quot;1531&quot; data-end=&quot;1570&quot;&gt;2) Цілісність (захист від підміни).&lt;/strong&gt;&lt;br data-start=&quot;1570&quot; data-end=&quot;1573&quot;&gt;TLS додає перевірки, які не дозволяють непомітно змінити трафік під час передачі. Це критично, бо без TLS зловмисник може підмінити скрипт, вставити шкідливий код або змінити реквізити оплати.&lt;/p&gt;<br />
&lt;p data-start=&quot;1767&quot; data-end=&quot;1940&quot;&gt;&lt;strong data-start=&quot;1767&quot; data-end=&quot;1805&quot;&gt;3) Автентичність сервера (довіра).&lt;/strong&gt;&lt;br data-start=&quot;1805&quot; data-end=&quot;1808&quot;&gt;Браузер перевіряє сертифікат сайту, щоб переконатися, що користувач спілкується саме з вашим доменом, а не з підробкою &amp;ldquo;посередині&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1942&quot; data-end=&quot;1972&quot;&gt;Межі TLS: що він НЕ робить&lt;/h3&gt;<br />
&lt;p data-start=&quot;1973&quot; data-end=&quot;2172&quot;&gt;TLS не &amp;ldquo;лікує&amp;rdquo; вразливості вашого сайту. Якщо в коді є SQL-ін&amp;rsquo;єкція, XSS, слабкі паролі, уразливий плагін &amp;mdash; TLS цього не зупинить. Він захищає &lt;strong data-start=&quot;2116&quot; data-end=&quot;2125&quot;&gt;канал&lt;/strong&gt;, але не замінює безпеку застосунку та сервера.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2174&quot; data-end=&quot;2226&quot;&gt;2) Як працює TLS handshake (коротко, але по суті)&lt;/h2&gt;<br />
&lt;p data-start=&quot;2227&quot; data-end=&quot;2343&quot;&gt;Під час встановлення з&amp;rsquo;єднання клієнт і сервер роблять &amp;ldquo;рукостискання&amp;rdquo; &amp;mdash; домовляються, &lt;strong data-start=&quot;2314&quot; data-end=&quot;2335&quot;&gt;як саме шифрувати&lt;/strong&gt; трафік.&lt;/p&gt;<br />
&lt;p data-start=&quot;2345&quot; data-end=&quot;2364&quot;&gt;Типова логіка така:&lt;/p&gt;<br />
&lt;ol data-start=&quot;2365&quot; data-end=&quot;2971&quot;&gt;<br />
&lt;li data-start=&quot;2365&quot; data-end=&quot;2501&quot;&gt;<br />
&lt;p data-start=&quot;2368&quot; data-end=&quot;2501&quot;&gt;&lt;strong data-start=&quot;2368&quot; data-end=&quot;2384&quot;&gt;ClientHello:&lt;/strong&gt; браузер повідомляє, які версії TLS підтримує, які алгоритми шифрування (cipher suites), і надсилає випадкові дані.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2502&quot; data-end=&quot;2611&quot;&gt;<br />
&lt;p data-start=&quot;2505&quot; data-end=&quot;2611&quot;&gt;&lt;strong data-start=&quot;2505&quot; data-end=&quot;2521&quot;&gt;ServerHello:&lt;/strong&gt; сервер обирає версію TLS та набір алгоритмів, надсилає свої параметри і &lt;strong data-start=&quot;2594&quot; data-end=&quot;2608&quot;&gt;сертифікат&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2612&quot; data-end=&quot;2730&quot;&gt;<br />
&lt;p data-start=&quot;2615&quot; data-end=&quot;2730&quot;&gt;&lt;strong data-start=&quot;2615&quot; data-end=&quot;2641&quot;&gt;Перевірка сертифіката:&lt;/strong&gt; браузер перевіряє, що сертифікат дійсний, домен збігається, ланцюжок довіри коректний.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2731&quot; data-end=&quot;2890&quot;&gt;<br />
&lt;p data-start=&quot;2734&quot; data-end=&quot;2890&quot;&gt;&lt;strong data-start=&quot;2734&quot; data-end=&quot;2752&quot;&gt;Обмін ключами:&lt;/strong&gt; сторони генерують спільний &amp;ldquo;сеансовий&amp;rdquo; ключ (зазвичай через (EC)DHE), який буде використовуватися для швидкого симетричного шифрування.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2891&quot; data-end=&quot;2971&quot;&gt;<br />
&lt;p data-start=&quot;2894&quot; data-end=&quot;2971&quot;&gt;&lt;strong data-start=&quot;2894&quot; data-end=&quot;2923&quot;&gt;Шифрований канал готовий:&lt;/strong&gt; після цього весь HTTP-трафік іде всередині TLS.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p data-start=&quot;2973&quot; data-end=&quot;3056&quot;&gt;У TLS 1.3 цей процес скорочено і прискорено, а слабкі/застарілі механізми прибрані.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;3058&quot; data-end=&quot;3102&quot;&gt;3) Сертифікат і PKI: чому браузер довіряє&lt;/h2&gt;<br />
&lt;p data-start=&quot;3103&quot; data-end=&quot;3333&quot;&gt;Сертифікат TLS &amp;mdash; це документ, який пов&amp;rsquo;язує &lt;strong data-start=&quot;3147&quot; data-end=&quot;3165&quot;&gt;публічний ключ&lt;/strong&gt; із доменом. Його підписує центр сертифікації (CA). Браузери містять список довірених CA, тому можуть перевірити підпис і переконатися, що сертифікат виданий легітимно.&lt;/p&gt;<br />
&lt;p data-start=&quot;3335&quot; data-end=&quot;3367&quot;&gt;Практично тобі важливо розуміти:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3368&quot; data-end=&quot;3679&quot;&gt;<br />
&lt;li data-start=&quot;3368&quot; data-end=&quot;3474&quot;&gt;<br />
&lt;p data-start=&quot;3370&quot; data-end=&quot;3474&quot;&gt;&lt;strong data-start=&quot;3370&quot; data-end=&quot;3376&quot;&gt;DV&lt;/strong&gt; (Domain Validation) підтверджує контроль над доменом і зазвичай достатній для більшості сайтів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3475&quot; data-end=&quot;3590&quot;&gt;<br />
&lt;p data-start=&quot;3477&quot; data-end=&quot;3590&quot;&gt;&lt;strong data-start=&quot;3477&quot; data-end=&quot;3486&quot;&gt;OV/EV&lt;/strong&gt; додають перевірки компанії, але не роблять &amp;ldquo;шифрування сильнішим&amp;rdquo; &amp;mdash; це радше про довіру та комплаєнс.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3591&quot; data-end=&quot;3679&quot;&gt;<br />
&lt;p data-start=&quot;3593&quot; data-end=&quot;3679&quot;&gt;&lt;strong data-start=&quot;3593&quot; data-end=&quot;3614&quot;&gt;SAN/мультидоменні&lt;/strong&gt; сертифікати покривають кілька доменів, &lt;strong data-start=&quot;3654&quot; data-end=&quot;3666&quot;&gt;wildcard&lt;/strong&gt; &amp;mdash; піддомени.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;3681&quot; data-end=&quot;3727&quot;&gt;4) TLS 1.2 vs TLS 1.3: що реально змінилось&lt;/h2&gt;<br />
&lt;p data-start=&quot;3728&quot; data-end=&quot;3740&quot;&gt;&lt;strong data-start=&quot;3728&quot; data-end=&quot;3739&quot;&gt;TLS 1.3&lt;/strong&gt;:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3741&quot; data-end=&quot;3936&quot;&gt;<br />
&lt;li data-start=&quot;3741&quot; data-end=&quot;3784&quot;&gt;<br />
&lt;p data-start=&quot;3743&quot; data-end=&quot;3784&quot;&gt;швидший handshake (менше раундів обміну);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3785&quot; data-end=&quot;3833&quot;&gt;<br />
&lt;p data-start=&quot;3787&quot; data-end=&quot;3833&quot;&gt;за замовчуванням сучасні й безпечні алгоритми;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3834&quot; data-end=&quot;3876&quot;&gt;<br />
&lt;p data-start=&quot;3836&quot; data-end=&quot;3876&quot;&gt;прибрані застарілі й ризикові механізми;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3877&quot; data-end=&quot;3936&quot;&gt;<br />
&lt;p data-start=&quot;3879&quot; data-end=&quot;3936&quot;&gt;краще працює на мобільних мережах і при високій затримці.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;3938&quot; data-end=&quot;4043&quot;&gt;&lt;strong data-start=&quot;3938&quot; data-end=&quot;3949&quot;&gt;TLS 1.2&lt;/strong&gt; усе ще використовується, але потребує уважного підбору cipher suites і коректних налаштувань.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4045&quot; data-end=&quot;4098&quot;&gt;5) SNI, ALPN, HSTS, OCSP stapling &amp;mdash; що це і навіщо&lt;/h2&gt;<br />
&lt;ul data-start=&quot;4099&quot; data-end=&quot;4467&quot;&gt;<br />
&lt;li data-start=&quot;4099&quot; data-end=&quot;4198&quot;&gt;<br />
&lt;p data-start=&quot;4101&quot; data-end=&quot;4198&quot;&gt;&lt;strong data-start=&quot;4101&quot; data-end=&quot;4108&quot;&gt;SNI&lt;/strong&gt; дозволяє одному IP обслуговувати багато HTTPS-сайтів і віддавати правильний сертифікат.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4199&quot; data-end=&quot;4264&quot;&gt;<br />
&lt;p data-start=&quot;4201&quot; data-end=&quot;4264&quot;&gt;&lt;strong data-start=&quot;4201&quot; data-end=&quot;4209&quot;&gt;ALPN&lt;/strong&gt; потрібен для узгодження протоколів на кшталт HTTP/2.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4265&quot; data-end=&quot;4359&quot;&gt;<br />
&lt;p data-start=&quot;4267&quot; data-end=&quot;4359&quot;&gt;&lt;strong data-start=&quot;4267&quot; data-end=&quot;4275&quot;&gt;HSTS&lt;/strong&gt; змушує браузер завжди відкривати сайт через HTTPS і зменшує ризик downgrade-атак.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4360&quot; data-end=&quot;4467&quot;&gt;<br />
&lt;p data-start=&quot;4362&quot; data-end=&quot;4467&quot;&gt;&lt;strong data-start=&quot;4362&quot; data-end=&quot;4379&quot;&gt;OCSP stapling&lt;/strong&gt; прискорює перевірку відкликання сертифіката і зменшує залежність від зовнішніх запитів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;4469&quot; data-end=&quot;4509&quot;&gt;6) Типові помилки в налаштуваннях TLS&lt;/h2&gt;<br />
&lt;ol data-start=&quot;4510&quot; data-end=&quot;4873&quot;&gt;<br />
&lt;li data-start=&quot;4510&quot; data-end=&quot;4555&quot;&gt;<br />
&lt;p data-start=&quot;4513&quot; data-end=&quot;4555&quot;&gt;Дозволені старі протоколи (TLS 1.0/1.1).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4556&quot; data-end=&quot;4610&quot;&gt;<br />
&lt;p data-start=&quot;4559&quot; data-end=&quot;4610&quot;&gt;Слабкі cipher suites або відсутність пріоритетів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4611&quot; data-end=&quot;4679&quot;&gt;<br />
&lt;p data-start=&quot;4614&quot; data-end=&quot;4679&quot;&gt;Неправильний ланцюжок сертифіката (браузери показують помилки).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4680&quot; data-end=&quot;4748&quot;&gt;<br />
&lt;p data-start=&quot;4683&quot; data-end=&quot;4748&quot;&gt;Змішаний контент: сторінка HTTPS, а картинки/скрипти &amp;mdash; по HTTP.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4749&quot; data-end=&quot;4805&quot;&gt;<br />
&lt;p data-start=&quot;4752&quot; data-end=&quot;4805&quot;&gt;Редіректи і &amp;ldquo;петлі&amp;rdquo; між www/non-www або http/https.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4806&quot; data-end=&quot;4873&quot;&gt;<br />
&lt;p data-start=&quot;4809&quot; data-end=&quot;4873&quot;&gt;Сертифікат скоро закінчується &amp;mdash; і сайт &amp;ldquo;падає&amp;rdquo; для користувачів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2 data-start=&quot;4875&quot; data-end=&quot;4914&quot;&gt;7) Чекліст: як зробити TLS безпечним&lt;/h2&gt;<br />
&lt;ul data-start=&quot;4915&quot; data-end=&quot;5262&quot;&gt;<br />
&lt;li data-start=&quot;4915&quot; data-end=&quot;4966&quot;&gt;<br />
&lt;p data-start=&quot;4917&quot; data-end=&quot;4966&quot;&gt;Увімкни TLS 1.3 і TLS 1.2, вимкни старі версії.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4967&quot; data-end=&quot;5024&quot;&gt;<br />
&lt;p data-start=&quot;4969&quot; data-end=&quot;5024&quot;&gt;Використовуй сучасні cipher suites і forward secrecy.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5025&quot; data-end=&quot;5104&quot;&gt;<br />
&lt;p data-start=&quot;5027&quot; data-end=&quot;5104&quot;&gt;Налаштуй автоматичне оновлення сертифікатів (щоб не пропустити expiration).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5105&quot; data-end=&quot;5167&quot;&gt;<br />
&lt;p data-start=&quot;5107&quot; data-end=&quot;5167&quot;&gt;Увімкни HSTS (після перевірки, що HTTPS працює стабільно).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5168&quot; data-end=&quot;5220&quot;&gt;<br />
&lt;p data-start=&quot;5170&quot; data-end=&quot;5220&quot;&gt;Перевір mixed content і виправ усі HTTP-ресурси.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5221&quot; data-end=&quot;5262&quot;&gt;<br />
&lt;p data-start=&quot;5223&quot; data-end=&quot;5262&quot;&gt;Додай моніторинг сертифікатів і алерти.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;
  <p><strong>Теги:</strong> 
 TLS </p>
  ]]></content:encoded>
 <pubDate>Tue, 23 Dec 2025 18:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Безпека</category>
  </item>
  <item>
 <title>Google AdSense для монетизації сайту: покроковий гайд від підключення до зростання доходу</title>
 <link>https://uhost.online/blog/google-adsense-dlya-monetizats-saytu-pokrokoviy-gayd-vd-pdklyuchennya-do-zrostannya-dokhodu</link>
 <guid isPermaLink="true">https://uhost.online/blog/google-adsense-dlya-monetizats-saytu-pokrokoviy-gayd-vd-pdklyuchennya-do-zrostannya-dokhodu</guid>
 <description><![CDATA[Як підключити Google AdSense і почати заробляти на сайті: вимоги, модерація, встановлення коду, формати реклами, ads.txt, політики, оптимізація RPM/CTR, помилки та поради для стабільного доходу.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/AdSense-Tools_1766479257_9689.webp" alt="Google AdSense для монетизації сайту: покроковий гайд від підключення до зростання доходу" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h1 data-start=&quot;661&quot; data-end=&quot;718&quot;&gt;Як використовувати Google AdSense для монетизації сайту&lt;/h1&gt;<br />
&lt;p data-start=&quot;720&quot; data-end=&quot;1130&quot;&gt;Google AdSense &amp;mdash; один із найпопулярніших способів монетизації контентних сайтів: ти розміщуєш рекламні блоки, а дохід залежить від показів і кліків (а також від якості трафіку, тематики й географії). На практиці &amp;ldquo;встановив код &amp;mdash; і гроші потекли&amp;rdquo; працює рідко. Стабільний результат дає лише системний підхід: підготовка сайту під модерацію, правильне підключення, грамотні місця показу та регулярна оптимізація.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;1132&quot; data-end=&quot;1161&quot;&gt;Коротко: як працює AdSense&lt;/h2&gt;<br />
&lt;ol data-start=&quot;1162&quot; data-end=&quot;1422&quot;&gt;<br />
&lt;li data-start=&quot;1162&quot; data-end=&quot;1220&quot;&gt;<br />
&lt;p data-start=&quot;1165&quot; data-end=&quot;1220&quot;&gt;Ти додаєш сайт в акаунт AdSense і проходиш перевірку.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1221&quot; data-end=&quot;1273&quot;&gt;<br />
&lt;p data-start=&quot;1224&quot; data-end=&quot;1273&quot;&gt;Встановлюєш код на сайт (або вмикаєш Auto ads).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1274&quot; data-end=&quot;1315&quot;&gt;<br />
&lt;p data-start=&quot;1277&quot; data-end=&quot;1315&quot;&gt;Рекламодавці &amp;ldquo;змагаються&amp;rdquo; за покази.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1316&quot; data-end=&quot;1422&quot;&gt;<br />
&lt;p data-start=&quot;1319&quot; data-end=&quot;1422&quot;&gt;Ти отримуєш дохід, який зазвичай оцінюють через RPM (дохід на 1000 показів) та ефективність розміщення.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2 data-start=&quot;1424&quot; data-end=&quot;1468&quot;&gt;Підготовка сайту: що перевірити до подачі&lt;/h2&gt;<br />
&lt;p data-start=&quot;1469&quot; data-end=&quot;1549&quot;&gt;Модерація найчастіше &amp;ldquo;валить&amp;rdquo; не через технічні дрібниці, а через базову якість:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1550&quot; data-end=&quot;2026&quot;&gt;<br />
&lt;li data-start=&quot;1550&quot; data-end=&quot;1630&quot;&gt;<br />
&lt;p data-start=&quot;1552&quot; data-end=&quot;1630&quot;&gt;&lt;strong data-start=&quot;1552&quot; data-end=&quot;1563&quot;&gt;Контент&lt;/strong&gt;: унікальний, корисний, без &amp;ldquo;тонких&amp;rdquo; сторінок, де 2 абзаци і все.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1631&quot; data-end=&quot;1710&quot;&gt;<br />
&lt;p data-start=&quot;1633&quot; data-end=&quot;1710&quot;&gt;&lt;strong data-start=&quot;1633&quot; data-end=&quot;1646&quot;&gt;Структура&lt;/strong&gt;: зрозуміла навігація, категорії, сторінки &amp;ldquo;Про нас/Контакти&amp;rdquo;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1711&quot; data-end=&quot;1821&quot;&gt;<br />
&lt;p data-start=&quot;1713&quot; data-end=&quot;1821&quot;&gt;&lt;strong data-start=&quot;1713&quot; data-end=&quot;1725&quot;&gt;Політики&lt;/strong&gt;: сторінка приватності, умови використання (бажано), повідомлення про cookies (якщо потрібно).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1822&quot; data-end=&quot;1929&quot;&gt;<br />
&lt;p data-start=&quot;1824&quot; data-end=&quot;1929&quot;&gt;&lt;strong data-start=&quot;1824&quot; data-end=&quot;1830&quot;&gt;UX&lt;/strong&gt;: сайт нормально працює на мобільних, не сипле помилками, не перенасичений агресивними поп-апами.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1930&quot; data-end=&quot;2026&quot;&gt;<br />
&lt;p data-start=&quot;1932&quot; data-end=&quot;2026&quot;&gt;&lt;strong data-start=&quot;1932&quot; data-end=&quot;1943&quot;&gt;Техніка&lt;/strong&gt;: швидкість, коректний HTTPS, відсутність нескінченних редіректів і битих сторінок.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2028&quot; data-end=&quot;2165&quot;&gt;Порада: якщо сайт новий, підготуй &amp;ldquo;ядро&amp;rdquo; контенту &amp;mdash; хоча б 20&amp;ndash;40 якісних матеріалів, щоб модератор бачив реальний проєкт, а не заготовку.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2167&quot; data-end=&quot;2213&quot;&gt;Створення акаунта AdSense і додавання сайту&lt;/h2&gt;<br />
&lt;p data-start=&quot;2214&quot; data-end=&quot;2239&quot;&gt;У процесі підключення ти:&lt;/p&gt;<br />
&lt;ul data-start=&quot;2240&quot; data-end=&quot;2403&quot;&gt;<br />
&lt;li data-start=&quot;2240&quot; data-end=&quot;2309&quot;&gt;<br />
&lt;p data-start=&quot;2242&quot; data-end=&quot;2309&quot;&gt;обираєш країну/регіон, валюту (як правило, це важко змінити потім);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2310&quot; data-end=&quot;2331&quot;&gt;<br />
&lt;p data-start=&quot;2312&quot; data-end=&quot;2331&quot;&gt;додаєш домен сайту;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2332&quot; data-end=&quot;2403&quot;&gt;<br />
&lt;p data-start=&quot;2334&quot; data-end=&quot;2403&quot;&gt;отримуєш фрагмент коду для підтвердження власності та показу реклами.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2405&quot; data-end=&quot;2514&quot;&gt;Важливо: домен має бути доступним для перевірки, без &amp;ldquo;тільки для авторизованих&amp;rdquo; та без блокувань за країнами.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;2516&quot; data-end=&quot;2553&quot;&gt;Встановлення коду: базові сценарії&lt;/h2&gt;<br />
&lt;p data-start=&quot;2554&quot; data-end=&quot;2575&quot;&gt;Є два типові підходи:&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2577&quot; data-end=&quot;2617&quot;&gt;1) Auto ads (автоматичні оголошення)&lt;/h3&gt;<br />
&lt;p data-start=&quot;2618&quot; data-end=&quot;2858&quot;&gt;Простий старт: вставляєш один код у , а система сама підбирає місця показу. Плюс &amp;mdash; швидко, мінус &amp;mdash; інколи AdSense ставить блоки там, де це погіршує UX. Тому Auto ads краще сприймати як стартову точку, яку потрібно потім &amp;ldquo;причесати&amp;rdquo;.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2860&quot; data-end=&quot;2896&quot;&gt;2) Ручні блоки (кращий контроль)&lt;/h3&gt;<br />
&lt;p data-start=&quot;2897&quot; data-end=&quot;3081&quot;&gt;Ти створюєш рекламні блоки (display/in-article/in-feed тощо) і вставляєш їх у конкретні місця. Це зручніше для оптимізації: можна тестувати позиції, частоту та формати без &amp;ldquo;сюрпризів&amp;rdquo;.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;3083&quot; data-end=&quot;3132&quot;&gt;Ads.txt: обов&amp;rsquo;язковий крок для нормального RPM&lt;/h2&gt;<br />
&lt;p data-start=&quot;3133&quot; data-end=&quot;3361&quot;&gt;Файл &lt;code data-start=&quot;3138&quot; data-end=&quot;3147&quot;&gt;ads.txt&lt;/code&gt; у корені домену підтверджує, що саме ти дозволяєш продавати інвентар. Без нього часто падає заповнюваність і ціна показів. Після підключення AdSense зазвичай підказує рядок, який треба додати у файл. Перевір, щоб:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3362&quot; data-end=&quot;3496&quot;&gt;<br />
&lt;li data-start=&quot;3362&quot; data-end=&quot;3412&quot;&gt;<br />
&lt;p data-start=&quot;3364&quot; data-end=&quot;3412&quot;&gt;файл відкривався за &lt;code data-start=&quot;3384&quot; data-end=&quot;3411&quot;&gt;https://твійдомен/ads.txt&lt;/code&gt;;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3413&quot; data-end=&quot;3447&quot;&gt;<br />
&lt;p data-start=&quot;3415&quot; data-end=&quot;3447&quot;&gt;не було зайвих пробілів/помилок;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3448&quot; data-end=&quot;3496&quot;&gt;<br />
&lt;p data-start=&quot;3450&quot; data-end=&quot;3496&quot;&gt;оновлення підтягнулося (інколи це займає час).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;3498&quot; data-end=&quot;3542&quot;&gt;Політики і ризики: що може &amp;ldquo;вбити&amp;rdquo; акаунт&lt;/h2&gt;<br />
&lt;p data-start=&quot;3543&quot; data-end=&quot;3632&quot;&gt;Найболючіша тема &amp;mdash; &lt;strong data-start=&quot;3562&quot; data-end=&quot;3582&quot;&gt;недійсний трафік&lt;/strong&gt; і порушення політик. Щоб не втратити монетизацію:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3633&quot; data-end=&quot;3886&quot;&gt;<br />
&lt;li data-start=&quot;3633&quot; data-end=&quot;3685&quot;&gt;<br />
&lt;p data-start=&quot;3635&quot; data-end=&quot;3685&quot;&gt;не стимулюй кліки (&amp;ldquo;підтримай нас кліком&amp;rdquo; &amp;mdash; табу);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3686&quot; data-end=&quot;3742&quot;&gt;<br />
&lt;p data-start=&quot;3688&quot; data-end=&quot;3742&quot;&gt;не став рекламу на сторінки з дуже &amp;ldquo;тонким&amp;rdquo; контентом;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3743&quot; data-end=&quot;3786&quot;&gt;<br />
&lt;p data-start=&quot;3745&quot; data-end=&quot;3786&quot;&gt;уникай піратського/забороненого контенту;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3787&quot; data-end=&quot;3886&quot;&gt;<br />
&lt;p data-start=&quot;3789&quot; data-end=&quot;3886&quot;&gt;стеж за джерелами трафіку: &amp;ldquo;сіра&amp;rdquo; закупка, боти, мотивований трафік часто закінчується санкціями.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;3888&quot; data-end=&quot;3932&quot;&gt;Де розміщувати рекламу: практичні позиції&lt;/h2&gt;<br />
&lt;p data-start=&quot;3933&quot; data-end=&quot;3973&quot;&gt;Для контентних сайтів зазвичай працюють:&lt;/p&gt;<br />
&lt;ul data-start=&quot;3974&quot; data-end=&quot;4221&quot;&gt;<br />
&lt;li data-start=&quot;3974&quot; data-end=&quot;4037&quot;&gt;<br />
&lt;p data-start=&quot;3976&quot; data-end=&quot;4037&quot;&gt;&lt;strong data-start=&quot;3976&quot; data-end=&quot;3992&quot;&gt;перший екран&lt;/strong&gt; (але без агресії і без перекриття контенту);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4038&quot; data-end=&quot;4117&quot;&gt;<br />
&lt;p data-start=&quot;4040&quot; data-end=&quot;4117&quot;&gt;&lt;strong data-start=&quot;4040&quot; data-end=&quot;4054&quot;&gt;in-article&lt;/strong&gt; блок після 1&amp;ndash;2 абзаців і далі по тексту через рівні інтервали;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4118&quot; data-end=&quot;4160&quot;&gt;<br />
&lt;p data-start=&quot;4120&quot; data-end=&quot;4160&quot;&gt;&lt;strong data-start=&quot;4120&quot; data-end=&quot;4136&quot;&gt;після статті&lt;/strong&gt; (добре добирає покази);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4161&quot; data-end=&quot;4221&quot;&gt;<br />
&lt;p data-start=&quot;4163&quot; data-end=&quot;4221&quot;&gt;&lt;strong data-start=&quot;4163&quot; data-end=&quot;4174&quot;&gt;in-feed&lt;/strong&gt; у списках матеріалів (особливо на мобільному).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;4223&quot; data-end=&quot;4387&quot;&gt;Погана ідея &amp;mdash; &amp;ldquo;обліпити&amp;rdquo; сторінку банерами, якщо читабельність падає: короткостроково це може дати приріст, але довгостроково знижує SEO та повернення користувачів.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;4389&quot; data-end=&quot;4434&quot;&gt;Оптимізація доходу: на що реально впливати&lt;/h2&gt;<br />
&lt;p data-start=&quot;4435&quot; data-end=&quot;4526&quot;&gt;Ти не можеш керувати ставками рекламодавців напряму, але можеш впливати на показники сайту:&lt;/p&gt;<br />
&lt;ol data-start=&quot;4528&quot; data-end=&quot;5032&quot;&gt;<br />
&lt;li data-start=&quot;4528&quot; data-end=&quot;4624&quot;&gt;<br />
&lt;p data-start=&quot;4531&quot; data-end=&quot;4624&quot;&gt;&lt;strong data-start=&quot;4531&quot; data-end=&quot;4562&quot;&gt;Швидкість і Core Web Vitals&lt;/strong&gt;: повільні сторінки знижують перегляди та видимість реклами.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4625&quot; data-end=&quot;4709&quot;&gt;<br />
&lt;p data-start=&quot;4628&quot; data-end=&quot;4709&quot;&gt;&lt;strong data-start=&quot;4628&quot; data-end=&quot;4647&quot;&gt;Мобільна версія&lt;/strong&gt;: більшість трафіку зараз мобільна; тестуй позиції саме там.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4710&quot; data-end=&quot;4813&quot;&gt;<br />
&lt;p data-start=&quot;4713&quot; data-end=&quot;4813&quot;&gt;&lt;strong data-start=&quot;4713&quot; data-end=&quot;4733&quot;&gt;Глибина контенту&lt;/strong&gt;: довші, структуровані матеріали часто дають більше переглядів і точок показу.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4814&quot; data-end=&quot;4930&quot;&gt;<br />
&lt;p data-start=&quot;4817&quot; data-end=&quot;4930&quot;&gt;&lt;strong data-start=&quot;4817&quot; data-end=&quot;4842&quot;&gt;Географія та тематика&lt;/strong&gt;: різні ніші мають різний RPM &amp;mdash; фінанси/бізнес зазвичай дорожчі, ніж загальні розваги.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;4931&quot; data-end=&quot;5032&quot;&gt;<br />
&lt;p data-start=&quot;4934&quot; data-end=&quot;5032&quot;&gt;&lt;strong data-start=&quot;4934&quot; data-end=&quot;4950&quot;&gt;Експерименти&lt;/strong&gt;: змінюй по одному параметру (позицію/формат/частоту), фіксуй результат 7&amp;ndash;14 днів.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h2 data-start=&quot;5034&quot; data-end=&quot;5060&quot;&gt;Виплати і &amp;ldquo;бухгалтерія&amp;rdquo;&lt;/h2&gt;<br />
&lt;p data-start=&quot;5061&quot; data-end=&quot;5282&quot;&gt;Підготуйся до верифікації: платіжні дані, адреса, інколи підтвердження особи. У багатьох країнах потрібні податкові налаштування (форми). Краще заповнити все одразу, щоб не зупиняти виплати на етапі, коли дохід уже пішов.&lt;/p&gt;<br />
&lt;h2 data-start=&quot;5284&quot; data-end=&quot;5317&quot;&gt;Часті проблеми і як їх уникати&lt;/h2&gt;<br />
&lt;ul data-start=&quot;5318&quot; data-end=&quot;5628&quot;&gt;<br />
&lt;li data-start=&quot;5318&quot; data-end=&quot;5427&quot;&gt;<br />
&lt;p data-start=&quot;5320&quot; data-end=&quot;5427&quot;&gt;&lt;strong data-start=&quot;5320&quot; data-end=&quot;5348&quot;&gt;&amp;ldquo;Реклама не показується&amp;rdquo;&lt;/strong&gt;: перевір код, блокування адблоком, статус сайту в кабінеті, помилки ads.txt.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5428&quot; data-end=&quot;5532&quot;&gt;<br />
&lt;p data-start=&quot;5430&quot; data-end=&quot;5532&quot;&gt;&lt;strong data-start=&quot;5430&quot; data-end=&quot;5447&quot;&gt;&amp;ldquo;Низький RPM&amp;rdquo;&lt;/strong&gt;: слабка географія, тонкі сторінки, неякісні джерела трафіку, невдалі місця показу.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5533&quot; data-end=&quot;5628&quot;&gt;<br />
&lt;p data-start=&quot;5535&quot; data-end=&quot;5628&quot;&gt;&lt;strong data-start=&quot;5535&quot; data-end=&quot;5560&quot;&gt;&amp;ldquo;Відмова в модерації&amp;rdquo;&lt;/strong&gt;: додай контент, оформи сторінки політик, прибери &amp;ldquo;порожні&amp;rdquo; розділи.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h2 data-start=&quot;5630&quot; data-end=&quot;5657&quot;&gt;Чек-лист швидкого старту&lt;/h2&gt;<br />
&lt;ol data-start=&quot;5658&quot; data-end=&quot;5979&quot;&gt;<br />
&lt;li data-start=&quot;5658&quot; data-end=&quot;5727&quot;&gt;<br />
&lt;p data-start=&quot;5661&quot; data-end=&quot;5727&quot;&gt;Оформи сайт і додай ключові сторінки (Про нас/Контакти/Privacy).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5728&quot; data-end=&quot;5770&quot;&gt;<br />
&lt;p data-start=&quot;5731&quot; data-end=&quot;5770&quot;&gt;Підготуй достатньо якісного контенту.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5771&quot; data-end=&quot;5835&quot;&gt;<br />
&lt;p data-start=&quot;5774&quot; data-end=&quot;5835&quot;&gt;Підключи AdSense і встанови код (Auto ads або ручні блоки).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5836&quot; data-end=&quot;5857&quot;&gt;<br />
&lt;p data-start=&quot;5839&quot; data-end=&quot;5857&quot;&gt;Додай &lt;code data-start=&quot;5845&quot; data-end=&quot;5854&quot;&gt;ads.txt&lt;/code&gt;.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5858&quot; data-end=&quot;5912&quot;&gt;<br />
&lt;p data-start=&quot;5861&quot; data-end=&quot;5912&quot;&gt;Запусти 2&amp;ndash;3 розміщення, не перевантажуй сторінки.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;5913&quot; data-end=&quot;5979&quot;&gt;<br />
&lt;p data-start=&quot;5916&quot; data-end=&quot;5979&quot;&gt;Оптимізуй за даними: швидкість, мобільні позиції, експерименти.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;
  <p><strong>Теги:</strong> 
 Google AdSense </p>
  ]]></content:encoded>
 <pubDate>Tue, 23 Dec 2025 14:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>CMS та сайти</category>
  </item>
  <item>
 <title>Як дізнатися свою IP-адресу: приватна та публічна IP на Windows, macOS, Android і iPhone</title>
 <link>https://uhost.online/blog/yak-dznatisya-svoyu-ip-adresu-privatna-ta-publchna-ip-na-windows-macos-android-iphone</link>
 <guid isPermaLink="true">https://uhost.online/blog/yak-dznatisya-svoyu-ip-adresu-privatna-ta-publchna-ip-na-windows-macos-android-iphone</guid>
 <description><![CDATA[Пояснюємо різницю між приватною та публічною IP, IPv4 і IPv6. Покроково: як подивитися IP на Windows, Mac, Android, iPhone та як швидко перевірити зовнішню IP у браузері.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/kak-posmotret-ip-iphone-06_1766478990_5122.webp" alt="Як дізнатися свою IP-адресу: приватна та публічна IP на Windows, macOS, Android і iPhone" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;h3 data-start=&quot;1106&quot; data-end=&quot;1142&quot;&gt;Що таке IP та навіщо її знати&lt;/h3&gt;<br />
&lt;p data-start=&quot;1143&quot; data-end=&quot;1505&quot;&gt;IP-адреса &amp;mdash; це мережевий &amp;ldquo;ідентифікатор&amp;rdquo;, за яким пристрої обмінюються даними в інтернеті або локальній мережі. Знання IP корисне, коли потрібно зайти в адмінку роутера, налаштувати віддалений доступ, під&amp;rsquo;єднати &amp;ldquo;розумні&amp;rdquo; пристрої, перевірити безпеку Wi-Fi або переконатися, що VPN справді змінив ваше мережеве розташування.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1507&quot; data-end=&quot;1550&quot;&gt;Публічна і приватна IP, IPv4 та IPv6&lt;/h3&gt;<br />
&lt;p data-start=&quot;1551&quot; data-end=&quot;1933&quot;&gt;Є &lt;strong data-start=&quot;1553&quot; data-end=&quot;1580&quot;&gt;приватна (внутрішня) IP&lt;/strong&gt; &amp;mdash; її зазвичай роздає роутер або мережа в офісі/дома. Вона працює всередині локальної мережі. І є &lt;strong data-start=&quot;1678&quot; data-end=&quot;1704&quot;&gt;публічна (зовнішня) IP&lt;/strong&gt; &amp;mdash; її надає провайдер, саме її бачать сайти та онлайн-сервіси. Формат IP буває&amp;nbsp;&lt;strong data-start=&quot;1823&quot; data-end=&quot;1831&quot;&gt;IPv4&lt;/strong&gt; (типу 192.168.1.10) або &lt;strong data-start=&quot;1856&quot; data-end=&quot;1864&quot;&gt;IPv6&lt;/strong&gt; (довгий рядок із двокрапками).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1935&quot; data-end=&quot;1981&quot;&gt;Як подивитися приватну IP на комп&amp;rsquo;ютері&lt;/h3&gt;<br />
&lt;p data-start=&quot;1982&quot; data-end=&quot;2670&quot;&gt;&lt;strong data-start=&quot;1982&quot; data-end=&quot;2015&quot;&gt;Windows (через налаштування):&lt;/strong&gt; відкрийте &lt;em data-start=&quot;2026&quot; data-end=&quot;2088&quot;&gt;Параметри &amp;rarr; Мережа й Інтернет &amp;rarr; Wi-Fi/Ethernet &amp;rarr; Властивості&lt;/em&gt; і знайдіть IPv4/IPv6.&lt;/p&gt;<br />
&lt;p data-start=&quot;1982&quot; data-end=&quot;2670&quot;&gt;&lt;strong data-start=&quot;2151&quot; data-end=&quot;2185&quot;&gt;Windows (через &amp;ldquo;Центр мереж&amp;rdquo;):&lt;/strong&gt; &lt;em data-start=&quot;2186&quot; data-end=&quot;2258&quot;&gt;Панель керування &amp;rarr; Центр мережевих підключень &amp;rarr; ваша мережа &amp;rarr; Детально&lt;/em&gt; &amp;mdash; там будуть адреси та параметри адаптера.&lt;/p&gt;<br />
&lt;p data-start=&quot;1982&quot; data-end=&quot;2670&quot;&gt;&lt;strong data-start=&quot;2342&quot; data-end=&quot;2352&quot;&gt;macOS:&lt;/strong&gt; у налаштуваннях мережі відкрийте активне підключення (Wi-Fi або Ethernet) &amp;mdash; IP зазвичай показується в деталях активної мережі.&lt;/p&gt;<br />
&lt;p data-start=&quot;1982&quot; data-end=&quot;2670&quot;&gt;&lt;strong data-start=&quot;2520&quot; data-end=&quot;2555&quot;&gt;Через командний рядок/термінал:&lt;/strong&gt; на Windows часто використовують &lt;code data-start=&quot;2588&quot; data-end=&quot;2598&quot;&gt;ipconfig&lt;/code&gt; (покаже IPv4/IPv6 для адаптерів).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2672&quot; data-end=&quot;2717&quot;&gt;Як подивитися приватну IP на смартфоні&lt;/h3&gt;<br />
&lt;p data-start=&quot;2718&quot; data-end=&quot;3049&quot;&gt;&lt;strong data-start=&quot;2718&quot; data-end=&quot;2730&quot;&gt;Android:&lt;/strong&gt; &lt;em data-start=&quot;2731&quot; data-end=&quot;2825&quot;&gt;Налаштування &amp;rarr; Wi-Fi &amp;rarr; натисніть на активну мережу (або значок &amp;ldquo;i/шестерня&amp;rdquo;) &amp;rarr; деталі мережі&lt;/em&gt; &amp;mdash; там відображається IP (IPv4/IPv6).&lt;/p&gt;<br />
&lt;p data-start=&quot;2718&quot; data-end=&quot;3049&quot;&gt;&lt;strong data-start=&quot;2903&quot; data-end=&quot;2920&quot;&gt;iPhone (iOS):&lt;/strong&gt; &lt;em data-start=&quot;2921&quot; data-end=&quot;2980&quot;&gt;Налаштування &amp;rarr; Wi-Fi &amp;rarr; натисніть (i) біля активної мережі&lt;/em&gt; &amp;mdash; у параметрах буде IP-адреса.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3051&quot; data-end=&quot;3096&quot;&gt;Як перевірити публічну IP за 10 секунд&lt;/h3&gt;<br />
&lt;p data-start=&quot;3097&quot; data-end=&quot;3355&quot;&gt;Найпростіше &amp;mdash; відкрити браузер і ввести запит на кшталт &amp;ldquo;what is my IP&amp;rdquo;: пошуковик покаже зовнішню IP. Так само можна використати спеціальні сервіси, якщо потрібні додаткові дані (провайдер, приблизна геолокація тощо).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;3357&quot; data-end=&quot;3377&quot;&gt;Часті питання&lt;/h3&gt;<br />
&lt;p data-start=&quot;3378&quot; data-end=&quot;3601&quot;&gt;&lt;strong data-start=&quot;3378&quot; data-end=&quot;3407&quot;&gt;Чому IP може змінюватися?&lt;/strong&gt; У багатьох провайдерів публічна IP динамічна й може оновлюватися після перезавантаження роутера або з часом.&lt;br data-start=&quot;3516&quot; data-end=&quot;3519&quot;&gt;&lt;strong data-start=&quot;3519&quot; data-end=&quot;3550&quot;&gt;Чи показує IP точну адресу?&lt;/strong&gt; Зазвичай ні: найчастіше це приблизне місто/регіон.&lt;/p&gt;
  <p><strong>Теги:</strong> 
 IP, IPv4, IPv6 </p>
  ]]></content:encoded>
 <pubDate>Tue, 23 Dec 2025 12:15:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Різне</category>
  </item>
  <item>
 <title>PHP 8.5: що нового і чому варто оновлюватися вже зараз</title>
 <link>https://uhost.online/blog/php-85-shcho-novogo-chomu-varto-onovlyuvatisya-vzhe-zaraz</link>
 <guid isPermaLink="true">https://uhost.online/blog/php-85-shcho-novogo-chomu-varto-onovlyuvatisya-vzhe-zaraz</guid>
 <description><![CDATA[PHP 8.5 &mdash; велике оновлення мови, реліз якого відбувся 20 листопада 2025 року. Версія приносить як помітні зручності для розробників, так і низку змін, що прямо впливають на стабільність та безпеку продакшну.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/tomorrow-november-20-php-8-5-will-be-released-v0-UZk3IUw9c55B9ndbkciI1Zhnjao9YAhEPetwuIWPz4I_1766435426_4029.webp" alt="PHP 8.5: що нового і чому варто оновлюватися вже зараз" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;245&quot; data-end=&quot;494&quot;&gt;PHP 8.5 &amp;mdash; велике оновлення мови, реліз якого відбувся &lt;strong data-start=&quot;299&quot; data-end=&quot;325&quot;&gt;20 листопада 2025 року&lt;/strong&gt;. Версія приносить як помітні зручності для розробників, так і низку змін, що прямо впливають на стабільність та безпеку продакшну.&lt;/p&gt;<br />
&lt;h4 data-start=&quot;496&quot; data-end=&quot;529&quot;&gt;Ключові нововведення PHP 8.5&lt;/h4&gt;<br />
&lt;ol data-start=&quot;530&quot; data-end=&quot;1814&quot;&gt;<br />
&lt;li data-start=&quot;530&quot; data-end=&quot;879&quot;&gt;<br />
&lt;p data-start=&quot;533&quot; data-end=&quot;879&quot;&gt;&lt;strong data-start=&quot;533&quot; data-end=&quot;550&quot;&gt;URI Extension&lt;/strong&gt;. Замість небезпечних &amp;ldquo;самописних&amp;rdquo; парсерів URL та неоднозначної &lt;code data-start=&quot;615&quot; data-end=&quot;628&quot;&gt;parse_url()&lt;/code&gt; з&amp;rsquo;явився вбудований модуль URI для коректного парсингу, нормалізації та роботи з URL/URI за стандартами RFC 3986 та WHATWG. Це знижує ризики помилок у редіректах, валідації callback-URL, підписанні посилань тощо.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;881&quot; data-end=&quot;1109&quot;&gt;<br />
&lt;p data-start=&quot;884&quot; data-end=&quot;1109&quot;&gt;&lt;strong data-start=&quot;884&quot; data-end=&quot;906&quot;&gt;Pipe operator &lt;code data-start=&quot;900&quot; data-end=&quot;904&quot;&gt;|&amp;gt;&lt;/code&gt;&lt;/strong&gt;. Дозволяє читабельно &amp;ldquo;пропускати&amp;rdquo; значення через ланцюжок викликів без проміжних змінних. Менше вкладеності &amp;mdash; менше шансів на помилки під час рефакторингу та рев&amp;rsquo;ю.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;881&quot; data-end=&quot;1109&quot;&gt;<br />
&lt;p data-start=&quot;884&quot; data-end=&quot;1109&quot;&gt;&lt;strong data-start=&quot;1114&quot; data-end=&quot;1165&quot;&gt;&lt;code data-start=&quot;1116&quot; data-end=&quot;1125&quot;&gt;clone()&lt;/code&gt; із зміною властивостей (&amp;ldquo;Clone With&amp;rdquo;)&lt;/strong&gt;. Зручний &amp;ldquo;with-pattern&amp;rdquo; для &lt;code data-start=&quot;1194&quot; data-end=&quot;1204&quot;&gt;readonly&lt;/code&gt;-класів: клонування з точковими змінами робить код чистішим і безпечнішим у доменних моделях.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1337&quot; data-end=&quot;1625&quot;&gt;<br />
&lt;p data-start=&quot;1340&quot; data-end=&quot;1625&quot;&gt;&lt;strong data-start=&quot;1340&quot; data-end=&quot;1383&quot;&gt;Атрибут &lt;code data-start=&quot;1350&quot; data-end=&quot;1365&quot;&gt;#[\NoDiscard]&lt;/code&gt; і каст &lt;code data-start=&quot;1373&quot; data-end=&quot;1381&quot;&gt;(void)&lt;/code&gt;&lt;/strong&gt;. Можна позначати функції, де ігнорування return-значення є багом. Результат &amp;mdash; менше &amp;ldquo;тихих&amp;rdquo; помилок у бізнес-логіці (наприклад, коли повертається новий immutable-об&amp;rsquo;єкт, а ти випадково не присвоїв його).&amp;nbsp;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1627&quot; data-end=&quot;1814&quot;&gt;<br />
&lt;p data-start=&quot;1630&quot; data-end=&quot;1814&quot;&gt;&lt;strong data-start=&quot;1630&quot; data-end=&quot;1688&quot;&gt;Closure та first-class callables у константних виразах&lt;/strong&gt; &amp;mdash; корисно для атрибутів, дефолтів параметрів і констант, менше дублювання конфігурацій.&amp;nbsp;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;h4 data-start=&quot;1816&quot; data-end=&quot;1868&quot;&gt;Нові функції та зміни, які відчуються в проєкті&lt;/h4&gt;<br />
&lt;p data-start=&quot;1869&quot; data-end=&quot;2283&quot;&gt;Додані &lt;code data-start=&quot;1876&quot; data-end=&quot;1891&quot;&gt;array_first()&lt;/code&gt; та &lt;code data-start=&quot;1895&quot; data-end=&quot;1909&quot;&gt;array_last()&lt;/code&gt; для стандартних сценаріїв роботи з масивами, а також низка корисних функцій в Curl/Intl/Reflection тощо.&lt;br data-start=&quot;2052&quot; data-end=&quot;2055&quot;&gt;Також в PHP 8.5 посилено поведінку помилок і попереджень у &amp;ldquo;слизьких&amp;rdquo; місцях: наприклад, з&amp;rsquo;являються попередження при певних кастах float&amp;rarr;int та інших кейсах, що раніше могли маскувати баги.&lt;/p&gt;<br />
&lt;h4 data-start=&quot;2285&quot; data-end=&quot;2330&quot;&gt;Безпека і міграція: на що звернути увагу&lt;/h4&gt;<br />
&lt;p data-start=&quot;2331&quot; data-end=&quot;2411&quot;&gt;PHP 8.5 додає та підсвічує низку моментів, що корисні саме з погляду security:&lt;/p&gt;<br />
&lt;ul data-start=&quot;2412&quot; data-end=&quot;2851&quot;&gt;<br />
&lt;li data-start=&quot;2412&quot; data-end=&quot;2569&quot;&gt;<br />
&lt;p data-start=&quot;2414&quot; data-end=&quot;2569&quot;&gt;депрекейт &lt;strong data-start=&quot;2424&quot; data-end=&quot;2446&quot;&gt;backtick-оператора&lt;/strong&gt; як alias для &lt;code data-start=&quot;2460&quot; data-end=&quot;2474&quot;&gt;shell_exec()&lt;/code&gt; (менше спокус/випадкових RCE-патернів у кодовій базі);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2570&quot; data-end=&quot;2709&quot;&gt;<br />
&lt;p data-start=&quot;2572&quot; data-end=&quot;2709&quot;&gt;депрекейт &lt;code data-start=&quot;2582&quot; data-end=&quot;2590&quot;&gt;&quot;uri:&quot;&lt;/code&gt; DSN у PDO через безпекові ризики, коли DSN може приходити з віддалених джерел;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2710&quot; data-end=&quot;2851&quot;&gt;<br />
&lt;p data-start=&quot;2712&quot; data-end=&quot;2851&quot;&gt;підтримка &lt;strong data-start=&quot;2722&quot; data-end=&quot;2745&quot;&gt;partitioned cookies&lt;/strong&gt; у session/cookie API &amp;mdash; корисно для сучасних браузерних політик.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p data-start=&quot;2853&quot; data-end=&quot;2979&quot;&gt;Окремо перевір міграційний гайд і проганяй тестовий стенд: PHP 8.5 має список BC-змін.&amp;nbsp;&lt;/p&gt;<br />
&lt;h4 data-start=&quot;2981&quot; data-end=&quot;3008&quot;&gt;Чому вигідно оновитися&lt;/h4&gt;<br />
&lt;p data-start=&quot;3009&quot; data-end=&quot;3162&quot;&gt;PHP 8.5 отримує тривалу підтримку, а це означає регулярні security-фікси й менше операційних ризиків у продакшні.&lt;/p&gt;<br />
&lt;ul data-start=&quot;3412&quot; data-end=&quot;3508&quot;&gt;<br />
&lt;li data-start=&quot;3412&quot; data-end=&quot;3440&quot;&gt;<br />
&lt;p data-start=&quot;3414&quot; data-end=&quot;3440&quot;&gt;&lt;a class=&quot;decorated-link cursor-pointer&quot; href=&quot;https://uhost.online/vps&quot; data-start=&quot;3414&quot; data-end=&quot;3438&quot;&gt;https://uhost.online/vps&lt;/a&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3441&quot; data-end=&quot;3475&quot;&gt;<br />
&lt;p data-start=&quot;3443&quot; data-end=&quot;3475&quot;&gt;&lt;a class=&quot;decorated-link cursor-pointer&quot; href=&quot;https://uhost.online/dedicated&quot; data-start=&quot;3443&quot; data-end=&quot;3473&quot;&gt;https://uhost.online/dedicated&lt;/a&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;3476&quot; data-end=&quot;3508&quot;&gt;<br />
&lt;p data-start=&quot;3478&quot; data-end=&quot;3508&quot;&gt;&lt;a class=&quot;decorated-link cursor-pointer&quot; href=&quot;https://uhost.online/hosting&quot; data-start=&quot;3478&quot; data-end=&quot;3506&quot;&gt;https://uhost.online/hosting&lt;/a&gt;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;
  <p><strong>Теги:</strong> 
 PHP </p>
  ]]></content:encoded>
 <pubDate>Mon, 22 Dec 2025 16:00:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>PHP</category>
  </item>
  <item>
 <title>Чим відрізняється виділений сервер від VPS і чому dedicated потужніший</title>
 <link>https://uhost.online/blog/chim-vdrznyatsya-vidleniy-server-vd-vps-chomu-dedicated-potuzhnshiy</link>
 <guid isPermaLink="true">https://uhost.online/blog/chim-vdrznyatsya-vidleniy-server-vd-vps-chomu-dedicated-potuzhnshiy</guid>
 <description><![CDATA[Порівняння VPS і виділеного сервера: продуктивність, ізоляція, стабільність, безпека, ціна. Чому dedicated часто кращий для бізнесу, баз даних і проєктів з ростом.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/a8199aa81dddb5f2275e3a531174d764_1765915480_3303.webp" alt="Чим відрізняється виділений сервер від VPS і чому dedicated потужніший" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;598&quot; data-end=&quot;940&quot;&gt;VPS (Virtual Private Server) &amp;mdash; це віртуальний сервер, що працює на фізичному хості разом з іншими VPS. Виділений сервер (dedicated) &amp;mdash; це &lt;strong data-start=&quot;735&quot; data-end=&quot;760&quot;&gt;окрема фізична машина&lt;/strong&gt;, ресурси якої належать лише тобі. Обидва варіанти підходять для хостингу, але різниця критична, коли йдеться про стабільність, пікові навантаження та передбачувану продуктивність.&lt;/p&gt;<br />
&lt;p&gt;[[UHOST_BANNER:vps]]&lt;/p&gt;<br />
&lt;h3 data-start=&quot;942&quot; data-end=&quot;974&quot;&gt;1) Ресурси та продуктивність&lt;/h3&gt;<br />
&lt;p data-start=&quot;975&quot; data-end=&quot;1308&quot;&gt;На &lt;a href=&quot;https://uhost.online/vps&quot;&gt;VPS&lt;/a&gt; ти отримуєш виділені ліміти (vCPU, RAM, диск), але фізичний процесор і підсистема I/O все одно спільні. У реальних піках це дає ефект &amp;ldquo;сусідів&amp;rdquo; (noisy neighbors): у когось сплеск &amp;mdash; і твій сервіс може відчути затримки.&lt;br data-start=&quot;1199&quot; data-end=&quot;1202&quot;&gt;&lt;strong data-start=&quot;1202&quot; data-end=&quot;1233&quot;&gt;Виділений сервер потужніший&lt;/strong&gt;, бо всі ядра CPU, канали пам&amp;rsquo;яті, диски та шина &amp;mdash; тільки твої. Це означає:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1309&quot; data-end=&quot;1424&quot;&gt;<br />
&lt;li data-start=&quot;1309&quot; data-end=&quot;1355&quot;&gt;<br />
&lt;p data-start=&quot;1311&quot; data-end=&quot;1355&quot;&gt;максимальна швидкість для баз даних і кешів;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1356&quot; data-end=&quot;1391&quot;&gt;<br />
&lt;p data-start=&quot;1358&quot; data-end=&quot;1391&quot;&gt;стабільні IOPS під навантаженням;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1392&quot; data-end=&quot;1424&quot;&gt;<br />
&lt;p data-start=&quot;1394&quot; data-end=&quot;1424&quot;&gt;кращий запас під ріст трафіку.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;1426&quot; data-end=&quot;1452&quot;&gt;2) Ізоляція та безпека&lt;/h3&gt;<br />
&lt;p data-start=&quot;1453&quot; data-end=&quot;1672&quot;&gt;VPS добре ізольований на рівні гіпервізора, але dedicated &amp;mdash; це &lt;strong data-start=&quot;1516&quot; data-end=&quot;1536&quot;&gt;фізична ізоляція&lt;/strong&gt;. Для бізнесу це часто важливо: менше спільних точок ризику, простіше проходити аудит, легше виконувати політики безпеки та сегментацію.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1674&quot; data-end=&quot;1705&quot;&gt;3) Кастомізація та контроль&lt;/h3&gt;<br />
&lt;p data-start=&quot;1706&quot; data-end=&quot;1867&quot;&gt;На &lt;a href=&quot;https://uhost.online/dedicated&quot;&gt;dedicated&lt;/a&gt; ти вільніше в налаштуваннях: RAID, файлові системи, мережеві політики, низькорівневі тюнінги (kernel/sysctl), специфічні драйвери. Це актуально для:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1868&quot; data-end=&quot;2032&quot;&gt;<br />
&lt;li data-start=&quot;1868&quot; data-end=&quot;1903&quot;&gt;<br />
&lt;p data-start=&quot;1870&quot; data-end=&quot;1903&quot;&gt;високонавантажених сайтів та API;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1904&quot; data-end=&quot;1942&quot;&gt;<br />
&lt;p data-start=&quot;1906&quot; data-end=&quot;1942&quot;&gt;PostgreSQL/MySQL з важкими запитами;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1943&quot; data-end=&quot;1988&quot;&gt;<br />
&lt;p data-start=&quot;1945&quot; data-end=&quot;1988&quot;&gt;віртуалізації (Proxmox/KVM) під власні VPS;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1989&quot; data-end=&quot;2032&quot;&gt;<br />
&lt;p data-start=&quot;1991&quot; data-end=&quot;2032&quot;&gt;проєктів, де важлива мінімальна затримка.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;2034&quot; data-end=&quot;2058&quot;&gt;4) Ціна та економіка&lt;/h3&gt;<br />
&lt;p data-start=&quot;2059&quot; data-end=&quot;2347&quot;&gt;VPS дешевший на старті і зручний для MVP, тестів, невеликих проєктів. Але коли бізнес росте, часто виходить так: кілька &amp;ldquo;великих&amp;rdquo; VPS коштують майже як dedicated, а &lt;strong data-start=&quot;2224&quot; data-end=&quot;2263&quot;&gt;продуктивність і стабільність нижчі&lt;/strong&gt;. Якщо тобі потрібен прогнозований результат &amp;mdash; виділений сервер зазвичай вигідніший.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2349&quot; data-end=&quot;2362&quot;&gt;Що обрати&lt;/h3&gt;<br />
&lt;ul data-start=&quot;2363&quot; data-end=&quot;2557&quot;&gt;<br />
&lt;li data-start=&quot;2363&quot; data-end=&quot;2437&quot;&gt;<br />
&lt;p data-start=&quot;2365&quot; data-end=&quot;2437&quot;&gt;&lt;strong data-start=&quot;2365&quot; data-end=&quot;2372&quot;&gt;VPS&lt;/strong&gt;: стартап, невеликий сайт, середні навантаження, швидкий старт.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2438&quot; data-end=&quot;2557&quot;&gt;<br />
&lt;p data-start=&quot;2440&quot; data-end=&quot;2557&quot;&gt;&lt;strong data-start=&quot;2440&quot; data-end=&quot;2453&quot;&gt;Dedicated&lt;/strong&gt;: високі навантаження, БД, e-commerce, CI/CD, віртуалізація, критичні сервіси, де потрібна стабільність.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;[[UHOST_BANNER:dedicated]]&lt;/p&gt;<br />
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
  ]]></content:encoded>
 <pubDate>Mon, 15 Dec 2025 22:04:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>Виділені сервери</category>
  </item>
  <item>
 <title>NVMe чи SSD (SATA): що швидше і що вигідніше</title>
 <link>https://uhost.online/blog/nvme-chi-ssd-sata-shcho-shvidshe-shcho-vigdnshe</link>
 <guid isPermaLink="true">https://uhost.online/blog/nvme-chi-ssd-sata-shcho-shvidshe-shcho-vigdnshe</guid>
 <description><![CDATA[Порівняння NVMe і SATA SSD: швидкість, затримки, IOPS, ціна, ресурс, сценарії використання. Поради, який диск кращий для роботи, ігор, серверів та баз даних.]]></description>
 <content:encoded><![CDATA[
  <img src="https://uhost.online/uploads/blog/images/ChatGPTImage16202521_32_01_1765913585_4565.webp" alt="NVMe чи SSD (SATA): що швидше і що вигідніше" style="max-width: 100%; height: auto; margin-bottom: 1rem;">
  &lt;p data-start=&quot;458&quot; data-end=&quot;785&quot;&gt;SSD &amp;mdash; це загальна назва твердотільних накопичувачів, але вони бувають різні. Найпопулярніші варіанти &amp;mdash; &lt;strong data-start=&quot;561&quot; data-end=&quot;573&quot;&gt;SATA SSD&lt;/strong&gt; (підключення як у &amp;ldquo;старих&amp;rdquo; HDD) та &lt;strong data-start=&quot;609&quot; data-end=&quot;621&quot;&gt;NVMe SSD&lt;/strong&gt; (працює через PCIe). Обидва &amp;mdash; без рухомих частин, обидва значно швидші за HDD, але між ними є суттєва різниця у продуктивності й сценаріях, де ця різниця відчутна.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;787&quot; data-end=&quot;832&quot;&gt;Головна відмінність: інтерфейс і протокол&lt;/h3&gt;<br />
&lt;ul data-start=&quot;833&quot; data-end=&quot;1075&quot;&gt;<br />
&lt;li data-start=&quot;833&quot; data-end=&quot;925&quot;&gt;<br />
&lt;p data-start=&quot;835&quot; data-end=&quot;925&quot;&gt;&lt;strong data-start=&quot;835&quot; data-end=&quot;847&quot;&gt;SATA SSD&lt;/strong&gt; обмежений інтерфейсом SATA: це &amp;ldquo;стеля&amp;rdquo; для швидкості та кількості операцій.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;926&quot; data-end=&quot;1075&quot;&gt;<br />
&lt;p data-start=&quot;928&quot; data-end=&quot;1075&quot;&gt;&lt;strong data-start=&quot;928&quot; data-end=&quot;940&quot;&gt;NVMe SSD&lt;/strong&gt; використовує PCIe та протокол NVMe, який спроєктований саме для флеш-пам&amp;rsquo;яті: менші затримки, вища паралельність і значно більше IOPS.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;1077&quot; data-end=&quot;1101&quot;&gt;Швидкість і затримки&lt;/h3&gt;<br />
&lt;p data-start=&quot;1102&quot; data-end=&quot;1275&quot;&gt;У синтетичних тестах NVMe майже завжди перемагає: вищі послідовні швидкості читання/запису та помітно краща робота з дрібними блоками. У реальному житті це проявляється так:&lt;/p&gt;<br />
&lt;ul data-start=&quot;1276&quot; data-end=&quot;1495&quot;&gt;<br />
&lt;li data-start=&quot;1276&quot; data-end=&quot;1340&quot;&gt;<br />
&lt;p data-start=&quot;1278&quot; data-end=&quot;1340&quot;&gt;швидше відкриваються важкі проєкти, великі архіви, бази даних;&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1341&quot; data-end=&quot;1460&quot;&gt;<br />
&lt;p data-start=&quot;1343&quot; data-end=&quot;1460&quot;&gt;краще тримається навантаження з багатьма одночасними запитами (віртуалізація, контейнеризація, інтенсивні логі/кеші);&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;1461&quot; data-end=&quot;1495&quot;&gt;<br />
&lt;p data-start=&quot;1463&quot; data-end=&quot;1495&quot;&gt;менше &amp;ldquo;фризів&amp;rdquo; під піковими I/O.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;1497&quot; data-end=&quot;1527&quot;&gt;Де різниця майже непомітна&lt;/h3&gt;<br />
&lt;p data-start=&quot;1528&quot; data-end=&quot;1747&quot;&gt;Якщо у вас офісні задачі, браузер, прості програми, то &lt;strong data-start=&quot;1583&quot; data-end=&quot;1620&quot;&gt;SATA SSD вже дає основний приріст&lt;/strong&gt; у порівнянні з HDD. NVMe буде швидшим, але відчуття &amp;ldquo;в рази швидше&amp;rdquo; часто не буде &amp;mdash; упираєтесь у CPU, мережу або самі додатки.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;1749&quot; data-end=&quot;1785&quot;&gt;Надійність, ресурс і температури&lt;/h3&gt;<br />
&lt;p data-start=&quot;1786&quot; data-end=&quot;2109&quot;&gt;Ресурс SSD визначають не &amp;ldquo;NVMe чи SATA&amp;rdquo;, а &lt;strong data-start=&quot;1829&quot; data-end=&quot;1861&quot;&gt;тип пам&amp;rsquo;яті, контролер і TBW&lt;/strong&gt; (гарантований обсяг запису). NVMe частіше гріється сильніше, а за перегріву може знижувати швидкість (thermal throttling). Для стабільних навантажень важливі охолодження, якісні моделі та правильні налаштування (наприклад, TRIM, моніторинг SMART).&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2111&quot; data-end=&quot;2133&quot;&gt;Ціна та вигідність&lt;/h3&gt;<br />
&lt;p data-start=&quot;2134&quot; data-end=&quot;2356&quot;&gt;SATA SSD зазвичай дешевший за гігабайт і підходить там, де потрібен великий обсяг без максимальних IOPS. NVMe вигідний, коли час &amp;mdash; гроші: продуктивність баз даних, збірки, CI/CD, високонавантажені сайти, віртуальні машини.&lt;/p&gt;<br />
&lt;h3 data-start=&quot;2358&quot; data-end=&quot;2371&quot;&gt;Що обрати&lt;/h3&gt;<br />
&lt;ul data-start=&quot;2372&quot; data-end=&quot;2759&quot;&gt;<br />
&lt;li data-start=&quot;2372&quot; data-end=&quot;2517&quot;&gt;<br />
&lt;p data-start=&quot;2374&quot; data-end=&quot;2517&quot;&gt;&lt;strong data-start=&quot;2374&quot; data-end=&quot;2404&quot;&gt;Для домашнього ПК/ноутбука&lt;/strong&gt;: якщо різниця в ціні невелика &amp;mdash; беріть NVMe; якщо бюджет жорсткий &amp;mdash; SATA SSD все одно буде &amp;ldquo;вогонь&amp;rdquo; після HDD.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2518&quot; data-end=&quot;2570&quot;&gt;<br />
&lt;p data-start=&quot;2520&quot; data-end=&quot;2570&quot;&gt;&lt;strong data-start=&quot;2520&quot; data-end=&quot;2561&quot;&gt;Для розробки, монтажу, великих файлів&lt;/strong&gt;: NVMe.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2571&quot; data-end=&quot;2670&quot;&gt;<br />
&lt;p data-start=&quot;2573&quot; data-end=&quot;2670&quot;&gt;&lt;strong data-start=&quot;2573&quot; data-end=&quot;2619&quot;&gt;Для серверів, БД, VPS-вузлів, високого I/O&lt;/strong&gt;: NVMe (краще з хорошим ресурсом і охолодженням).&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;li data-start=&quot;2671&quot; data-end=&quot;2759&quot;&gt;<br />
&lt;p data-start=&quot;2673&quot; data-end=&quot;2759&quot;&gt;&lt;strong data-start=&quot;2673&quot; data-end=&quot;2715&quot;&gt;Для архівів, бекапів, &amp;ldquo;холодних&amp;rdquo; даних&lt;/strong&gt;: SATA SSD або навіть HDD залежно від задач.&lt;/p&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;h3 data-start=&quot;2761&quot; data-end=&quot;2768&quot;&gt;FAQ&lt;/h3&gt;<br />
&lt;p data-start=&quot;2769&quot; data-end=&quot;3120&quot;&gt;&lt;strong data-start=&quot;2769&quot; data-end=&quot;2791&quot;&gt;NVMe &amp;mdash; це теж SSD?&lt;/strong&gt; Так, NVMe SSD &amp;mdash; це SSD, але з іншим інтерфейсом і протоколом.&lt;br data-start=&quot;2853&quot; data-end=&quot;2856&quot;&gt;&lt;strong data-start=&quot;2856&quot; data-end=&quot;2891&quot;&gt;Чи варто переплачувати за NVMe?&lt;/strong&gt; Якщо є багато паралельних I/O або важкі робочі процеси &amp;mdash; так. Для базових задач часто достатньо SATA SSD.&lt;br data-start=&quot;2997&quot; data-end=&quot;3000&quot;&gt;&lt;strong data-start=&quot;3000&quot; data-end=&quot;3032&quot;&gt;Що важливіше за &amp;ldquo;NVMe/SATA&amp;rdquo;?&lt;/strong&gt; Якість моделі: контролер, тип пам&amp;rsquo;яті, TBW, гарантія та стабільність під навантаженням.&lt;/p&gt;
  <p><strong>Теги:</strong> 
 NVMe, SSD, SATA </p>
  ]]></content:encoded>
 <pubDate>Fri, 12 Dec 2025 21:26:00 +0000</pubDate>
  <author>admin@example.com (admin)</author>
   <category>VPS</category>
  </item>
  </channel>
</rss>
