<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: KabyNode</title>
    <description>The latest articles on DEV Community by KabyNode (@kabynode).</description>
    <link>https://dev.to/kabynode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4108683%2Fd0b033ea-1139-406f-b55d-3cb1fae6e900.png</url>
      <title>DEV Community: KabyNode</title>
      <link>https://dev.to/kabynode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kabynode"/>
    <language>en</language>
    <item>
      <title>HTTPS pentru aplicația ta: de ce contează și cum îl configurezi corect</title>
      <dc:creator>KabyNode</dc:creator>
      <pubDate>Fri, 04 Sep 2026 06:32:04 +0000</pubDate>
      <link>https://dev.to/kabynode/https-pentru-aplicatia-ta-de-ce-conteaza-si-cum-il-configurezi-corect-4epk</link>
      <guid>https://dev.to/kabynode/https-pentru-aplicatia-ta-de-ce-conteaza-si-cum-il-configurezi-corect-4epk</guid>
      <description>&lt;p&gt;Când termini de scris cod și deploy-uiești prima dată în producție, unul dintre primele lucruri pe care le verifici e dacă site-ul se încarcă pe &lt;code&gt;https://&lt;/code&gt;. Și totuși, HTTPS rămâne una dintre cele mai prost înțelese părți ale infrastructurii web. Am văzut aplicații perfect arhitecturate care pierdeau ranking și încredere doar din cauza unui certificat expirat sau a unui mix de resurse HTTP/HTTPS.&lt;/p&gt;

&lt;p&gt;În acest ghid trec prin ce se întâmplă de fapt la nivel de protocol, ce tipuri de certificate există, cum configurezi corect redirectul și HSTS și ce greșeli evit eu în proiectele de producție.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ce se întâmplă de fapt când browserul se conectează la site-ul tău
&lt;/h2&gt;

&lt;p&gt;Când un utilizator accesează &lt;code&gt;https://aplicatia-ta.ro&lt;/code&gt;, în spate are loc un &lt;strong&gt;TLS handshake&lt;/strong&gt; — o negociere care durează câteva milisecunde, dar face mult mai mult decât să „cripteze" datele:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;ClientHello&lt;/strong&gt; — browserul trimite serverului versiunile de TLS pe care le suportă și lista de cipher suites.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ServerHello + Certificate&lt;/strong&gt; — serverul răspunde cu versiunea aleasă și își trimite certificatul, care conține cheia publică și numele de domeniu (SAN).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verificarea lanțului de încredere&lt;/strong&gt; — browserul verifică că certificatul e semnat de o autoritate de certificare (CA) pe care o are în lista de încredere. Dacă lanțul e rupt sau certificatul e expirat, vezi ecranul roșu „Your connection is not private".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schimbul de chei&lt;/strong&gt; — clientul și serverul calculează o cheie de sesiune simetrică (de obicei prin ECDHE, care oferă forward secrecy).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP peste TLS&lt;/strong&gt; — de acum, tot traficul HTTP e criptat cu cheia de sesiune.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Partea importantă pentru tine ca dezvoltator: TLS nu e doar criptare, ci și &lt;strong&gt;autentificare&lt;/strong&gt;. Certificatul dovedește că serverul care răspunde la &lt;code&gt;aplicatia-ta.ro&lt;/code&gt; chiar e al tău. Fără el, oricine poate face un server care pretinde că e domeniul tău (atac man-in-the-middle).&lt;/p&gt;

&lt;h2&gt;
  
  
  Ce conține un certificat și de ce contează SAN
&lt;/h2&gt;

&lt;p&gt;Un certificat TLS e un fișier X.509 care conține:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cheia publică a serverului;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;numele de domenii&lt;/strong&gt; pentru care e valid (câmpul SAN — Subject Alternative Name);&lt;/li&gt;
&lt;li&gt;emitentul (CA-ul care l-a semnat);&lt;/li&gt;
&lt;li&gt;perioada de valabilitate;&lt;/li&gt;
&lt;li&gt;semnătura digitală a CA-ului.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cel mai frecvent motiv pentru care un certificat „nu merge": &lt;strong&gt;SAN lipsă&lt;/strong&gt;. Instalezi certificatul pentru &lt;code&gt;www.aplicatia-ta.ro&lt;/code&gt;, dar site-ul e accesat pe &lt;code&gt;aplicatia-ta.ro&lt;/code&gt; (fără www) — sau invers. Browserul refuză conexiunea pentru că numele nu se potrivește cu SAN-ul.&lt;/p&gt;

&lt;p&gt;Verifică întotdeauna cu ce nume e accesat site-ul în producție și asigură-te că ambele variante (cu și fără www, sau subdomeniile folosite) sunt în certificat.&lt;/p&gt;

&lt;h2&gt;
  
  
  DV, OV, EV: care e diferența și de care ai nevoie
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DV (Domain Validation)&lt;/strong&gt; — validează doar că deții domeniul. Se emite automat, în câteva minute, prin protocolul ACME (Let's Encrypt). Pentru 95% dintre site-uri și aplicații e suficient: oferă exact aceeași criptare ca unul scump.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OV (Organization Validation)&lt;/strong&gt; — validează și datele firmei. Afișează compania în certificat. Folosit de business-uri care vor să arate identitatea juridică.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EV (Extended Validation)&lt;/strong&gt; — cel mai strict; practic a dispărut din UI-ul browserelor moderne (Chrome și Firefox nu mai afișează bara verde distinctă), deci rar mai justifică prețul.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Concluzia practică: dacă nu ai o cerință explicită de OV/EV, &lt;strong&gt;un certificat DV cu reînnoire automată e alegerea corectă&lt;/strong&gt;. Economisești timp și nu mai depinzi de reînnoire manuală.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-SSL: de ce e standardul în 2026
&lt;/h2&gt;

&lt;p&gt;Emisiunea automată de certificate DV prin Let's Encrypt și alți CA-uri ACME a schimbat complet peisajul. Un hosting modern instalează și reînnoiește singur certificatele, fără intervenția ta. La proiectele mele, regula e:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dacă trebuie să-mi amintesc să reînnoiesc un certificat, configurarea e greșită.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Când alegi un host pentru aplicațiile clienților, caută explicit &lt;strong&gt;SSL automat&lt;/strong&gt; (auto-issuance + auto-renew). E o diferență uriașă între „am SSL instalat" și „SSL-ul se reînnoiește singur, la timp, și am notificare dacă ceva eșuează".&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurarea corectă: redirect, HSTS și mixed content
&lt;/h2&gt;

&lt;p&gt;Instalarea certificatului e doar jumătate din treabă. Iată configurația pe care o aplic constant:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Redirect permanent HTTP → HTTPS
&lt;/h3&gt;

&lt;p&gt;În Nginx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;aplicatia-ta.ro&lt;/span&gt; &lt;span class="s"&gt;www.aplicatia-ta.ro&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;301&lt;/span&gt; &lt;span class="s"&gt;https://&lt;/span&gt;&lt;span class="nv"&gt;$host$request_uri&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;În Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight apache"&gt;&lt;code&gt;&lt;span class="nc"&gt;RewriteEngine&lt;/span&gt; &lt;span class="ss"&gt;On&lt;/span&gt;
&lt;span class="nc"&gt;RewriteCond&lt;/span&gt; %{HTTPS} &lt;span class="ss"&gt;off&lt;/span&gt;
&lt;span class="nc"&gt;RewriteRule&lt;/span&gt; ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. HSTS — spune browserului să nu mai încerce HTTP deloc
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;add_header&lt;/span&gt; &lt;span class="s"&gt;Strict-Transport-Security&lt;/span&gt; &lt;span class="s"&gt;"max-age=31536000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;includeSubDomains"&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HSTS îi spune browserului: „pentru următorul an, accesează direct HTTPS, fără să mai treci prin HTTP". Elimină riscul unui downgrade attack și o cerere HTTP redundantă la prima vizită. Activează-l doar când ești sigur că HTTPS funcționează perfect — cu &lt;code&gt;includeSubDomains&lt;/code&gt;, un subdomeniu fără certificat va deveni inaccesibil.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Mixed content — inamicul tăcut
&lt;/h3&gt;

&lt;p&gt;După ce site-ul e pe HTTPS, orice resursă încărcată pe &lt;code&gt;http://&lt;/code&gt; (imagine, script, iframe) e blocată de browser. Simptom: pagina se încarcă, dar un script nu rulează și nu înțelegi de ce. Deschide DevTools → Console și vei vedea &lt;code&gt;Mixed Content: The page at 'https://...' was loaded over HTTPS, but requested an insecure resource&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Soluția: nu mai folosi URL-uri absolute cu protocol în cod. Scrie &lt;code&gt;/assets/app.js&lt;/code&gt; sau &lt;code&gt;//cdn.example.com/lib.js&lt;/code&gt; (protocol-relative), sau mai bine, lasă browserul să moștenească protocolul paginii.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. HTTP/2 și HTTP/3
&lt;/h3&gt;

&lt;p&gt;HTTP/2 necesită TLS și oferă multiplexing — mai multe resurse pe aceeași conexiune. HTTP/3 (QUIC) merge mai departe, cu multiplexing peste UDP și toleranță mai bună la pierderea de pachete. Ambele sunt activate automat de serverele moderne când TLS e configurat corect. Le verifici cu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sI&lt;/span&gt; https://aplicatia-ta.ro &lt;span class="nt"&gt;--http2&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dacă vezi &lt;code&gt;HTTP/2 200&lt;/code&gt;, ești pe drumul cel bun.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cum testezi configurarea ca un profesionist
&lt;/h2&gt;

&lt;p&gt;Nu te baza pe „se încarcă în browser". Folosește instrumente care îți arată exact ce se întâmplă:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Vezi lanțul de certificate, datele de expirare și cipher-urile&lt;/span&gt;
curl &lt;span class="nt"&gt;-vI&lt;/span&gt; https://aplicatia-ta.ro 2&amp;gt;&amp;amp;1 | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s2"&gt;"SSL|subject|expire"&lt;/span&gt;

&lt;span class="c"&gt;# Verifici expirarea direct&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; | openssl s_client &lt;span class="nt"&gt;-servername&lt;/span&gt; aplicatia-ta.ro &lt;span class="nt"&gt;-connect&lt;/span&gt; aplicatia-ta.ro:443 2&amp;gt;/dev/null | openssl x509 &lt;span class="nt"&gt;-noout&lt;/span&gt; &lt;span class="nt"&gt;-dates&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Și cel mai important: &lt;strong&gt;configurează monitorizarea expirării certificatului&lt;/strong&gt;. Un certificat expirat oprește site-ul complet și e prima cauză de incidente „de ce nu merge site-ul?" pe care o văd în support. Un simplu script cron care verifică datele de expirare și trimite un alert e suficient:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;DOMAIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"aplicatia-ta.ro"&lt;/span&gt;
&lt;span class="nv"&gt;DAYS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; | openssl s_client &lt;span class="nt"&gt;-servername&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-connect&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;:443 2&amp;gt;/dev/null &lt;span class="se"&gt;\&lt;/span&gt;
  | openssl x509 &lt;span class="nt"&gt;-noout&lt;/span&gt; &lt;span class="nt"&gt;-enddate&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | &lt;span class="nb"&gt;sed&lt;/span&gt; &lt;span class="s1"&gt;'s/notAfter=//'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | xargs &lt;span class="nt"&gt;-I&lt;/span&gt;&lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="nb"&gt;date&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; +%s&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;NOW&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%s&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;LEFT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;DAYS &lt;span class="o"&gt;-&lt;/span&gt; NOW&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;86400&lt;/span&gt; &lt;span class="k"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$LEFT&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-lt&lt;/span&gt; 14 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Certificatul pentru &lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt; expiră în &lt;/span&gt;&lt;span class="nv"&gt;$LEFT&lt;/span&gt;&lt;span class="s2"&gt; zile!"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cu SSL automat nu ai nevoie de asta — dar dacă gestionezi servere proprii, îl vrei.&lt;/p&gt;

&lt;h2&gt;
  
  
  Greșelile pe care le văd cel mai des
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Certificat instalat, dar resursele rămân pe HTTP&lt;/strong&gt; → mixed content, pagini rupte.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reînnoire manuală&lt;/strong&gt; → la un moment dat uiți; site-ul pică într-o duminică.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SAN fără varianta www sau fără subdomeniul folosit&lt;/strong&gt; → erori intermitente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redirect 302 în loc de 301&lt;/strong&gt; → SEO-ul pierde equity, iar Google vede două versiuni.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fără HSTS&lt;/strong&gt; → fiecare vizită nouă riscă o cerere HTTP în clar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TLS 1.0/1.1 rămase active&lt;/strong&gt; → compatibilitate falsă, securitate slabă. În 2026, TLS 1.2 și 1.3 sunt singurele care ar trebui să existe.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Când ai nevoie de mai mult decât auto-SSL
&lt;/h2&gt;

&lt;p&gt;Dacă ai mai multe subdomenii, un certificat &lt;strong&gt;wildcard&lt;/strong&gt; (&lt;code&gt;*.aplicatia-ta.ro&lt;/code&gt;) acoperă totul cu un singur certificat. Dacă ai un business care vinde servicii B2B și partenerii cer dovada identității, un certificat OV face treaba. În rest, DV auto e noul standard.&lt;/p&gt;

&lt;p&gt;Iar dacă nu vrei să-ți bați capul cu gestionarea serverului, un hosting care include SSL automat, certificate gratuite nelimitate și reînnoire fără intervenție economisește ore bune pe an. Eu pun preț pe chestiile astea la recomandările mele — la fel cum verific NVMe și LiteSpeed înainte să recomand un host pentru aplicații în producție, verific și cum e gestionat TLS-ul.&lt;/p&gt;

&lt;p&gt;Dacă vrei detalii despre cum arată SSL-ul automat și restul configurației de producție la &lt;a href="https://kabynode.ro/gazduire-web/" rel="noopener noreferrer"&gt;KabyNode&lt;/a&gt;, pagina de &lt;a href="https://kabynode.ro/certificat-ssl/" rel="noopener noreferrer"&gt;certificate SSL&lt;/a&gt; și cea de &lt;a href="https://kabynode.ro/securitate/" rel="noopener noreferrer"&gt;securitate&lt;/a&gt; explică exact ce primești. SSL automat, backup zilnic 30 de zile și suport tehnic în română 24/7 sunt incluse — lucruri care contează când aplicația ta e în producție, nu doar în development.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Articol scris de KabyNode — hosting NVMe cu LiteSpeed și SSL automat, din România, din 2022.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>De la `npm run dev` la producție: cum alegi infrastructura de hosting potrivită aplicației tale</title>
      <dc:creator>KabyNode</dc:creator>
      <pubDate>Thu, 03 Sep 2026 21:54:49 +0000</pubDate>
      <link>https://dev.to/kabynode/de-la-npm-run-dev-la-productie-cum-alegi-infrastructura-de-hosting-potrivita-aplicatiei-tale-4n34</link>
      <guid>https://dev.to/kabynode/de-la-npm-run-dev-la-productie-cum-alegi-infrastructura-de-hosting-potrivita-aplicatiei-tale-4n34</guid>
      <description>&lt;p&gt;Când termini o aplicație și vrei să o muți în producție, apare întrebarea pe care fiecare developer o amână cât poate: &lt;em&gt;ce hosting aleg?&lt;/em&gt; După ce am mutat zeci de aplicații (de la boturi Discord și API-uri Node.js până la magazine online), am ajuns la câteva reguli simple care salvează timp și nervi.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Începe de la stack, nu de la preț
&lt;/h2&gt;

&lt;p&gt;Prețul e ultimul criteriu. Întâi verifici dacă platforma suportă ce folosești deja: versiunea de PHP, Node.js, baza de date, extensiile. Nimic nu e mai frustrant decât să descoperi după migrare că hostul tău rulează PHP 7.4 când tu ai scris cod cu PHP 8.3.&lt;/p&gt;

&lt;p&gt;Un mediu modern ar trebui să includă:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PHP 8.x&lt;/strong&gt; cu opcache activat&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MariaDB/MySQL 11&lt;/strong&gt; (sau mai nou)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSH&lt;/strong&gt; pentru comenzi reale, nu doar un manager de fișiere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Staging&lt;/strong&gt; ca să testezi înainte să spargi producția&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Viteza nu se negociază: NVMe și LiteSpeed
&lt;/h2&gt;

&lt;p&gt;Dacă aplicația ta răspunde în 800ms local dar 3 secunde în producție, problema e aproape mereu infrastructura: discuri lente (HDD), Apache fără cache, fără HTTP/2. Discurile &lt;strong&gt;NVMe Gen4&lt;/strong&gt; și serverele &lt;strong&gt;LiteSpeed Enterprise&lt;/strong&gt; fac o diferență pe care o vezi direct în timpii de răspuns — mai ales sub sarcină.&lt;/p&gt;

&lt;p&gt;Testează orice provider cu un &lt;code&gt;curl -w&lt;/code&gt; sau un tool de benchmark înainte să te legi contractual. Dacă un host nu îți poate spune ce fel de discuri folosește, ai deja răspunsul.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Backup-urile și restore-ul se testează, nu se presupun
&lt;/h2&gt;

&lt;p&gt;„Facem backup zilnic" e fraza pe care o auzi de la toți. Întrebarea corectă e: &lt;em&gt;cât durează un restore și cine îl face?&lt;/em&gt; Ideal: backup automat zilnic, reținut minim 30 de zile, cu opțiune de restore dintr-un singur click. Testează un restore în primele 30 de zile — mai bine să descoperi atunci o problemă decât după un incident real.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Suportul care chiar rezolvă
&lt;/h2&gt;

&lt;p&gt;Ca developer, nu ai timp de ticket-uri care mor în coadă 48 de ore. Suportul 24/7 care răspunde în română și poate vorbi tehnic (nu doar să recite un manual) e o diferență uriașă când aplicația ta e down la 2 dimineața.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Shared hosting vs VPS — când muți aplicația?
&lt;/h2&gt;

&lt;p&gt;Regula mea pragmatică:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shared hosting cu LiteSpeed&lt;/strong&gt; — pentru aplicații PHP/WordPress, site-uri de prezentare, API-uri mici. E de ajuns pentru 95% din cazuri și nu trebuie să administrezi un server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPS&lt;/strong&gt; — când ai nevoie de root, de procese long-running (workers, crons grele, boturi), de software custom sau de izolare reală. Gândește-te la el ca la „propriul tău server, fără să cumperi un server".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedicat&lt;/strong&gt; — abia când scalarea pe VPS nu mai e suficientă și ai un motiv clar (resurse constante, cerințe de conformitate, performanță extremă).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Securitatea implicită, nu opțională
&lt;/h2&gt;

&lt;p&gt;SSL automat, firewall la nivel de aplicație, protecție malware și actualizări gestionate ar trebui să fie incluse, nu vândute separat. Un host care îți lasă site-ul fără SSL „pentru că nu ai plătit" nu își face treaba.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concluzie
&lt;/h2&gt;

&lt;p&gt;Alegerea infrastructurii nu e despre cel mai mic preț, ci despre cel mai mic timp total petrecut cu operațiuni: deploy fără frică, restore care merge, suport care răspunde. Dacă vrei să compari opțiunile de la un singur furnizor care acoperă toate cele trei trepte (shared, VPS, dedicat), am scris mai multe detalii despre &lt;a href="https://kabynode.ro/gazduire-web/" rel="noopener noreferrer"&gt;găzduirea web și planurile disponibile&lt;/a&gt; și despre &lt;a href="https://kabynode.ro/servere-virtuale/" rel="noopener noreferrer"&gt;servere virtuale&lt;/a&gt; la KabyNode.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Articol scris de KabyNode — hosting românesc cu servere proprii, NVMe Gen4 și suport 24/7.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
