Како распоредити React апликацију са Nginx-ом на Ubuntu-у

Implementacija vaše React aplikacije na server predstavlja ključan korak u procesu razvoja. Nginx se ističe kao izuzetno efikasan i široko rasprostranjen veb server koji se često bira za hostovanje React aplikacija, dok je Ubuntu popularan operativni sistem za veb servere. Ovaj vodič će vam detaljno objasniti proces postavljanja vaše React aplikacije sa Nginx-om na Ubuntu serveru, uz primenu najboljih praksi.

1. Preduslovi

Pre nego što započnemo, uverite se da ispunjavate sledeće uslove:

  • Ubuntu server: Možete koristiti virtuelno okruženje ili fizički server.
  • Node.js i npm: React aplikacija zahteva Node.js i npm za izradu i pokretanje.
  • Git: Neophodan je za preuzimanje vašeg koda iz Git repozitorijuma.
  • Nginx: Nginx veb server je potreban za hostovanje vaše React aplikacije.

2. Instalacija Node.js i npm

Na Ubuntu sistemu, Node.js i npm se jednostavno instaliraju pomoću menadžera paketa apt:

sudo apt update
sudo apt install nodejs

Proverite da li je instalacija uspešno obavljena:

node -v
npm -v

3. Instalacija Nginx-a

Instalirajte Nginx pomoću apt komande:

sudo apt update
sudo apt install nginx

Proverite da li je Nginx pokrenut:

sudo systemctl status nginx

Ako Nginx nije pokrenut, startujte ga:

sudo systemctl start nginx

4. Kreiranje React aplikacije

Možete kreirati novu React aplikaciju koristeći create-react-app:

npx create-react-app my-react-app

Zatim se prebacite u direktorijum vaše aplikacije:

cd my-react-app

5. Instaliranje zavisnosti

Pre nego što napravite build vaše aplikacije, uverite se da su instalirane sve potrebne zavisnosti:

npm install

6. Izrada build-a React aplikacije

Izradite build vaše React aplikacije za produkciju:

npm run build

Ovo će kreirati direktorijum build koji sadrži vaš optimizovani kod za produkciju.

7. Konfigurisanje Nginx-a

Konfigurišite Nginx da služi vašu React aplikaciju. Otvorite konfiguracioni fajl nginx.conf:

sudo nano /etc/nginx/sites-available/default

Zamenite sadržaj fajla sa sledećim:


server {
    listen 80;
    server_name your-domain.com;

    root /path/to/your/react/app/build;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

Zamenite your-domain.com sa vašim domenskim imenom i /path/to/your/react/app/build sa putanjom do direktorijuma build vaše React aplikacije.

8. Ponovno pokretanje Nginx-a

Ponovo pokrenite Nginx da biste primenili promene konfiguracije:

sudo systemctl reload nginx

9. Provera

Otvorite vaš veb pretraživač i unesite vaš domen your-domain.com. Trebalo bi da vidite vašu React aplikaciju koja radi.

Zaključak

Implementacija React aplikacije sa Nginx-om na Ubuntu-u je relativno jednostavan proces. Prateći ove korake, možete postaviti vašu React aplikaciju na veb server i učiniti je dostupnom korisnicima širom sveta.

Često postavljana pitanja

  • Kako da konfigurišem Nginx za SSL sertifikate?
  • Možete koristiti ssl_certificate i ssl_certificate_key direktive u vašem nginx.conf fajlu.

        
    server {
        listen 443 ssl;
        server_name your-domain.com;
    
        ssl_certificate /path/to/your/certificate.crt;
        ssl_certificate_key /path/to/your/key.key;
    
        root /path/to/your/react/app/build;
        index index.html;
    
        location / {
            try_files $uri $uri/ /index.html;
        }
    }
        
        

    Zamenite /path/to/your/certificate.crt i /path/to/your/key.key sa putanjama do vaših SSL sertifikata.

  • Kako da konfigurišem Nginx za više React aplikacija?
  • Možete kreirati odvojene server blokove u vašem nginx.conf fajlu za svaku React aplikaciju, koristeći server_name direktivu za različite domene.

        
    server {
        listen 80;
        server_name app1.your-domain.com;
    
        root /path/to/app1/build;
        index index.html;
    
        location / {
            try_files $uri $uri/ /index.html;
        }
    }
    
    server {
        listen 80;
        server_name app2.your-domain.com;
    
        root /path/to/app2/build;
        index index.html;
    
        location / {
            try_files $uri $uri/ /index.html;
        }
    }
        
        
  • Kako da konfigurišem Nginx za React Router?
  • Za React Router, Nginx ne mora da radi ništa posebno. React Router rutira zahteve na klijentskoj strani, a Nginx samo služi statički sadržaj.

  • Kako da postavim React aplikaciju na produkcioni server?
  • Možete koristiti platforme za postavljanje kao što su Heroku, Netlify, Vercel, AWS, Google Cloud Platform, Azure za jednostavno postavljanje vaše React aplikacije. Ove platforme nude automatsko postavljanje, skaliranje, nadgledanje, sigurnost i bezbednost.

  • Kako da nadgledam Nginx?
  • Nginx ima ugrađenu funkcionalnost za nadgledanje. Možete koristiti fajl access.log da biste pratili pristup veb serveru.

  • Kako da optimizujem Nginx?
  • Postoji mnogo načina da optimizujete Nginx, uključujući optimizaciju konfiguracije, keširanje, kompresiju, korišćenje CDN-a i optimizaciju React aplikacije.

  • Kako da ažuriram React aplikaciju nakon postavljanja?
  • Kada ažurirate vašu React aplikaciju, samo ponovo napravite build aplikacije, kopirajte build fajl na server i ponovo pokrenite Nginx.

  • Kako da pristupim Nginx konzoli?
  • Možete pristupiti Nginx konzoli pomoću ssh (Secure Shell) klijenta. Kroz SSH možete koristiti sudo komande za upravljanje Nginx-om.

  • Kako da debagujem Nginx?
  • Postoje mnogi alati za debagovanje Nginx-a, uključujući nginx -t komandu za proveru konfiguracije, nginx -V komandu za proveru verzije, nginx -s reload komandu za ponovno pokretanje Nginx-a, kao i korišćenje fajla error.log za greške.

  • Kako da obezbedim Nginx?
  • Možete obezbediti Nginx koristeći HTTPS, koristeći zaštitni zid, uključivanje ngx_http_auth_basic_module za osnovnu autentifikaciju i korišćenje ngx_http_access_module za upravljanje pristupom.

Tagovi: React, Nginx, Ubuntu, Postavljanje, Veb Aplikacije, Server, Veb Razvoj, Konfiguracija, Debagovanje, HTTPS, SSL, Veb Sigurnost, CDN