{"id":460,"date":"2026-06-04T12:20:00","date_gmt":"2026-06-04T11:20:00","guid":{"rendered":"https:\/\/masterymesh.com\/blog\/?p=460"},"modified":"2026-06-02T09:33:24","modified_gmt":"2026-06-02T08:33:24","slug":"postaviti-react-aplikaciju-na-vps-uz-nginx","status":"publish","type":"post","link":"https:\/\/masterymesh.com\/blog\/web-development\/postaviti-react-aplikaciju-na-vps-uz-nginx\/","title":{"rendered":"Kako postaviti React aplikaciju na VPS uz Nginx (2026)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Postavljanje <strong>React aplikacije na VPS uz Nginx<\/strong> odli\u010dan je na\u010din da preuzmete potpunu kontrolu nad hostingom, smanjite tro\u0161kove i pobolj\u0161ate performanse svoje web aplikacije. Dok servisi poput Vercela, Netlifyja ili Rendera nude jednostavan deployment, VPS vam daje ve\u0107u fleksibilnost i mogu\u0107nost hostanja vi\u0161e projekata na jednom serveru.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mnogi developeri smatraju deployment najstresnijim dijelom projekta, no uz pravilnu konfiguraciju React aplikaciju mo\u017eete postaviti na VPS za svega nekoliko minuta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>U ovom vodi\u010du pokazat \u0107emo vam to\u010dno kako deployati React aplikaciju na VPS koriste\u0107i Nginx, SSL certifikat i najbolje prakse za 2026. godinu.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Sadr\u017eaj<\/h2><nav><ul><li class=\"\"><a href=\"#sto-vam-je-potrebno\">\u0160to vam je potrebno?<\/a><\/li><li class=\"\"><a href=\"#prijava-na-vps\">Prijava na VPS<\/a><\/li><li class=\"\"><a href=\"#instalacija-node-js\">Instalacija Node.js<\/a><\/li><li class=\"\"><a href=\"#upload-react-aplikacije-na-server\">Upload React aplikacije na server<\/a><\/li><li class=\"\"><a href=\"#instalacija-paketa\">Instalacija paketa<\/a><\/li><li class=\"\"><a href=\"#build-react-aplikacije\">Build React aplikacije<\/a><\/li><li class=\"\"><a href=\"#instalacija-nginxa\">Instalacija Nginxa<\/a><\/li><li class=\"\"><a href=\"#kreiranje-nginx-konfiguracije\">Kreiranje Nginx konfiguracije<\/a><\/li><li class=\"\"><a href=\"#aktiviranje-konfiguracije\">Aktiviranje konfiguracije<\/a><\/li><li class=\"\"><a href=\"#konfiguracija-react-routera\">Konfiguracija React Routera<\/a><\/li><li class=\"\"><a href=\"#spajanje-domene\">Spajanje domene<\/a><\/li><li class=\"\"><a href=\"#instalacija-ssl-certifikata\">Instalacija SSL certifikata<\/a><\/li><li class=\"\"><a href=\"#automatsko-obnavljanje-ssl-certifikata\">Automatsko obnavljanje SSL certifikata<\/a><\/li><li class=\"\"><a href=\"#gzip-kompresija\">Gzip kompresija<\/a><\/li><li class=\"\"><a href=\"#cache-konfiguracija\">Cache konfiguracija<\/a><\/li><li class=\"\"><a href=\"#deployment-novih-verzija\">Deployment novih verzija<\/a><\/li><li class=\"\"><a href=\"#bonus-jednostavan-deployment-script\">Bonus: Jednostavan deployment script<\/a><\/li><li class=\"\"><a href=\"#najcesce-greske\">Naj\u010de\u0161\u0107e gre\u0161ke<\/a><\/li><li class=\"\"><a href=\"#faq\">FAQ<\/a><\/li><li class=\"\"><a href=\"#zakljucak\">Zaklju\u010dak<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"sto-vam-je-potrebno\" class=\"wp-block-heading\">\u0160to vam je potrebno?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prije po\u010detka pripremite:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>VPS server (Ubuntu 24.04 ili noviji)<\/li>\n\n\n\n<li>registriranu domenu<\/li>\n\n\n\n<li>React aplikaciju<\/li>\n\n\n\n<li>SSH pristup serveru<\/li>\n\n\n\n<li>instaliran Node.js<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Odabir VPS servera<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Za ovaj vodi\u010d koristit \u0107emo VPS server, a jedna od najpopularnijih opcija me\u0111u developerima danas je <a href=\"https:\/\/www.hostinger.com?REFERRALCODE=XNLMOMCILQVA\" target=\"_blank\" rel=\"noreferrer noopener sponsored nofollow\">Hostinger VPS<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prednosti Hostinger VPS-a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>jednostavno kreiranje VPS instance u nekoliko minuta<\/li>\n\n\n\n<li>odli\u010dan omjer cijene i performansi<\/li>\n\n\n\n<li>potpuni root pristup serveru<\/li>\n\n\n\n<li>podr\u0161ka za Node.js, React, Next.js i druge moderne tehnologije<\/li>\n\n\n\n<li>mogu\u0107nost hostanja vi\u0161e aplikacija na jednom serveru<\/li>\n\n\n\n<li>ugra\u0111eni alati za backup i monitoring<\/li>\n\n\n\n<li>podatkovni centri na vi\u0161e lokacija diljem svijeta<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Za manje React projekte \u010desto je dovoljan po\u010detni VPS paket, dok za zahtjevnije aplikacije mo\u017eete jednostavno nadograditi resurse bez migracije na drugi server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">U ovom vodi\u010du koristit \u0107emo Ubuntu Linux na VPS serveru, no isti postupak vrijedi i za ve\u0107inu drugih VPS providera.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"prijava-na-vps\" class=\"wp-block-heading\">Prijava na VPS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prijavite se putem SSH-a:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nssh root@your-server-ip\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ili:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nssh deployer@your-server-ip\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nakon prijave a\u017eurirajte server:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo apt update\nsudo apt upgrade -y\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"instalacija-node-js\" class=\"wp-block-heading\">Instalacija Node.js<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Provjerite je li Node.js instaliran:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nnode -v\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ako nije:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\ncurl -fsSL https:\/\/deb.nodesource.com\/setup_22.x | sudo -E bash -\n\nsudo apt install -y nodejs\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Provjera:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nnode -vnpm -v\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"upload-react-aplikacije-na-server\" class=\"wp-block-heading\">Upload React aplikacije na server<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Postoji vi\u0161e na\u010dina:<\/p>\n\n\n\n<h3 id=\"git-clone\" class=\"wp-block-heading\">Git Clone<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Naj\u010de\u0161\u0107i na\u010din:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\ngit clone https:\/\/github.com\/username\/project.git\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ulazak u direktorij:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\ncd project\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"scp-upload\" class=\"wp-block-heading\">SCP Upload<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ako ne koristite Git:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nscp -r .\/project deployer@server-ip:\/home\/deployer\/\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"instalacija-paketa\" class=\"wp-block-heading\">Instalacija paketa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unutar projekta:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nnpm install\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">ili<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\npnpm install\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"build-react-aplikacije\" class=\"wp-block-heading\">Build React aplikacije<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Za produkciju napravite build:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nnpm run build\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Nakon builda dobit \u0107ete:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndist\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">ili<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nbuild\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">ovisno o frameworku.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"instalacija-nginxa\" class=\"wp-block-heading\">Instalacija Nginxa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Instalirajte Nginx:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo apt install nginx -y\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Pokrenite servis:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo systemctl enable nginxsudo systemctl start nginx\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Provjera:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo systemctl status nginx\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"kreiranje-nginx-konfiguracije\" class=\"wp-block-heading\">Kreiranje Nginx konfiguracije<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Napravite novu konfiguraciju:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo nano \/etc\/nginx\/sites-available\/myapp\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Primjer konfiguracije:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nserver {\n    listen 80;\n    server_name example.com www.example.com;\n\n    root \/home\/deployer\/project\/dist;\n    index index.html;\n\n    location \/ {\n        try_files $uri \/index.html;\n    }\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Spremite datoteku.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"aktiviranje-konfiguracije\" class=\"wp-block-heading\">Aktiviranje konfiguracije<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kreirajte symbolic link:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo ln -s \/etc\/nginx\/sites-available\/myapp \\\n\/etc\/nginx\/sites-enabled\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Provjerite konfiguraciju:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo nginx -t\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ako nema gre\u0161aka:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo systemctl reload nginx\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"konfiguracija-react-routera\" class=\"wp-block-heading\">Konfiguracija React Routera<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ako koristite React Router, direktno otvaranje URL-a mo\u017ee vratiti 404 gre\u0161ku.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zato koristimo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nlocation \/ {\n    try_files $uri \/index.html;\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ovo osigurava da React preuzima routing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"spajanje-domene\" class=\"wp-block-heading\">Spajanje domene<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kod svog registrara postavite:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nA Record\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Primjer:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n@123.123.123.123\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">i<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nwww123.123.123.123\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Pri\u010dekajte DNS propagaciju.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"instalacija-ssl-certifikata\" class=\"wp-block-heading\">Instalacija SSL certifikata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Instalirajte Certbot:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo apt install certbot \\\npython3-certbot-nginx -y\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Pokrenite:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo certbot --nginx\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Odaberite domenu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Certbot \u0107e automatski:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>generirati SSL<\/li>\n\n\n\n<li>konfigurirati HTTPS<\/li>\n\n\n\n<li>postaviti redirect<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"automatsko-obnavljanje-ssl-certifikata\" class=\"wp-block-heading\">Automatsko obnavljanje SSL certifikata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Provjera:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo certbot renew --dry-run\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Certbot automatski obnavlja certifikate svakih 90 dana.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"gzip-kompresija\" class=\"wp-block-heading\">Gzip kompresija<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dodajte u Nginx:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\ngzip on;\ngzip_types text\/plain text\/css application\/json;\ngzip_types application\/javascript;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Prednosti:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>manje datoteke<\/li>\n\n\n\n<li>br\u017ee u\u010ditavanje<\/li>\n\n\n\n<li>bolji Core Web Vitals<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"cache-konfiguracija\" class=\"wp-block-heading\">Cache konfiguracija<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Za stati\u010dke datoteke:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nlocation ~* \\.(js|css|png|jpg|jpeg|gif|svg|woff2)$ {\n    expires 1y;\n    add_header Cache-Control &quot;public, immutable&quot;;\n}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">To zna\u010dajno smanjuje broj zahtjeva prema serveru.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"deployment-novih-verzija\" class=\"wp-block-heading\">Deployment novih verzija<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nakon promjena:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\ngit pull\nnpm install\nnpm run build\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Zatim:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo systemctl reload nginx\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ako koristite CI\/CD, ovaj proces mo\u017ee biti potpuno automatiziran.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"bonus-jednostavan-deployment-script\" class=\"wp-block-heading\">Bonus: Jednostavan deployment script<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Primjer:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n#!\/bin\/bash\n\ngit pull\n\nnpm install\n\nnpm run build\n\nsudo systemctl reload nginx\n\necho &quot;Deployment uspje\u0161no zavr\u0161en.&quot;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Pokretanje:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nchmod +x deploy.sh\n\n.\/deploy.sh\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"najcesce-greske\" class=\"wp-block-heading\">Naj\u010de\u0161\u0107e gre\u0161ke<\/h2>\n\n\n\n<h3 id=\"404-na-refresh-stranice\" class=\"wp-block-heading\">404 na refresh stranice<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Uzrok:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ntry_files\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">nije konfiguriran.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"ssl-ne-radi\" class=\"wp-block-heading\">SSL ne radi<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Provjerite:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo certbot certificates\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"nginx-ne-ucitava-promjene\" class=\"wp-block-heading\">Nginx ne u\u010ditava promjene<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pokrenite:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nsudo nginx -t\n\nsudo systemctl reload nginx\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"build-folder-ne-postoji\" class=\"wp-block-heading\">Build folder ne postoji<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Provjerite:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; gutter: false; title: ; notranslate\" title=\"\">\nnpm run build\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">i putanju definiranu u Nginx konfiguraciji.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"faq\" class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<h3 id=\"trebam-li-pm-2-za-react-aplikaciju\" class=\"wp-block-heading\">Trebam li PM2 za React aplikaciju?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ako deployate stati\u010dki React build preko Nginxa, PM2 nije potreban.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"je-li-vps-brzi-od-netlifyja-ili-vercela\" class=\"wp-block-heading\">Je li VPS br\u017ei od Netlifyja ili Vercela?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ovisi o konfiguraciji, ali VPS vam daje ve\u0107u kontrolu i mogu\u0107nost hostanja vi\u0161e projekata.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"mogu-li-hostati-vise-react-aplikacija-na-jednom-vps-u\" class=\"wp-block-heading\">Mogu li hostati vi\u0161e React aplikacija na jednom VPS-u?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Da. Dovoljno je kreirati zasebnu Nginx konfiguraciju za svaku domenu ili subdomenu.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"koji-vps-je-najbolji-za-react-aplikacije\" class=\"wp-block-heading\">Koji VPS je najbolji za React aplikacije?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Za manje projekte dovoljan je VPS s 1\u20132 GB RAM-a. Za ve\u0107e aplikacije preporu\u010duje se najmanje 4 GB RAM-a.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"zakljucak\" class=\"wp-block-heading\">Zaklju\u010dak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deployanje React aplikacije na VPS uz Nginx mo\u017eda na prvi pogled djeluje komplicirano, ali jednom kada postavite infrastrukturu, dobivate potpunu kontrolu nad svojim projektom.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uz pravilnu konfiguraciju:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>aplikacija \u0107e biti brza<\/li>\n\n\n\n<li>HTTPS \u0107e biti automatski rije\u0161en<\/li>\n\n\n\n<li>React Router \u0107e raditi bez problema<\/li>\n\n\n\n<li>hosting tro\u0161kovi bit \u0107e ni\u017ei<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Za developere koji \u017eele ve\u0107u fleksibilnost i profesionalniji pristup hostanju, VPS i Nginx i dalje su jedno od najboljih rje\u0161enja u 2026. godini. \ud83d\ude80<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Postavljanje React aplikacije na VPS uz Nginx odli\u010dan je na\u010din da preuzmete potpunu kontrolu nad&#8230;<\/p>\n","protected":false},"author":1,"featured_media":462,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-460","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-development"],"_links":{"self":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts\/460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/comments?post=460"}],"version-history":[{"count":3,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts\/460\/revisions"}],"predecessor-version":[{"id":464,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/posts\/460\/revisions\/464"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/media\/462"}],"wp:attachment":[{"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/media?parent=460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/categories?post=460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/masterymesh.com\/blog\/wp-json\/wp\/v2\/tags?post=460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}