Driftsätta Express App

  • Författare
  • Meddelande
Användarvisningsbild

efo

dbwebb

  • Inlägg: 220
  • Blev medlem: 15 aug 2016, 11:58
  • Ort: Rödeby

Driftsätta Express App

Inlägg07 jun 2018, 15:43

Klas frågade i Gitter chatten om någon hade bra referenser till hur man kan driftsätta en Express App likt internetbanken som avslutar databas-kursen:

Nån som har nåt tips på bra litteratur eller webbplatser, om man vill öka sina "back-end-kunskaper" för att kunna skapa ett projekt likt internetbanken med node.js, express och sql, som är nåbart utanför egen dator?


Jag tänkte berätta hur min driftsättning av Lager-API:t som används i webapp kursen ser ut.

Jag började med att skaffa en debian stretch droplet på Digital Ocean. Jag har en 20$ droplet vilket definitivt är overkill för en express app, men jag kör även min personliga hemsida på den droplet, och lite andra saker.

Första 10 minuter + lite till gick med denna guiden för att säkra upp servern med brandvägg och enbart inloggning med hjälp av ssh-nycklar.

Lager API:t använder en sqlite databas så nästa steg var att installera sqlite på servern. Om man hellre vill använda MySQL eller en annan databas installerar man den istället.

Jag använder nginx som webbserver och reverse proxy för API:t. nginx installeras lättast via apt-get. Kom ihåg att öppna upp portar i brandväggen för nginx.

Då Lager-API:t ligger på GitHub installerar jag det enkelt med git clone och npm install för att installera paketen, som behövs för att API:t ska fungera. API:t startas sedan med npm start eller node app.js. Om man öppnar upp porten som appen körs på kan man nu gå till IP-adressen:port och kan sedan få svar från appen. Men vi vill få till en egen domän för att fixa detta.

Jag använder Loopia som domänregistrar och köpte domänen emilfolino.se där. Jag ställer in hos Loopia att jag vill använda mig av Digital Oceans namnservrar och skapar sedan 'domain records' i Digital Oceans DNS verktyg.

Bild

Konfigurationen för nginx servern blir då följande. Jag använder mig av en reverse proxy som skickar trafiken som kommer in på lager.emilfolino.se:80 till localhost:8111, som är den porten där express appen körs. Detta finns i filen /etc/nginx/sites-available/lager.emilfolino.se.

Kod: Markera allt
server {
    server_name lager.emilfolino.se www.lager.emilfolino.se;

    location /.well-known {
        alias /var/www/lager.emilfolino.se/html/.well-known;
    }

    location / {
        proxy_pass http://localhost:8111;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    listen 80;
}


Gör sedan en symbolisk länk i /etc/nginx/sites-enabled till din konfigurations fil i sites-available. Skapa även webroot katalogen /var/www/lager.emilfolino.se/html/ för att kunna göra nästa steg.

Sista steget är att få till https anslutning till servern och med Let's Encrypt och Certbot är detta busenkelt. Gå till Certbot välj ditt operativsystem på servern och om du kör nginx eller en annan webbserver.

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 6 gäster