socialgekon.com
  • Glavni
  • Okretna
  • Porazdeljene Ekipe
  • Donosnost In Učinkovitost
  • Drugo
Tehnologija

Kako zgraditi strežnik Raspberry Pi za razvoj

The Raspberry Pi je majhen računalnik, ki ga lahko dobite že za 5 USD in na katerem lahko poganjate veliko različnih vrst programske opreme in zgraditi veliko različnih projektov .

V tem članku vas bom vodil skozi postopek, kako ga nastaviti kot strežnik za razvoj doma in uvesti aplikacijo JavaScript s polnim nizom, do katere lahko dostopate zunaj svojega omrežja. To je super za nastavitev lastnega oddaljeni digitalni delovni prostor ali preprosto imeti nadzor nad strojno opremo, ki jo uporabljate za razvoj.

Kaj potrebujete za ta domači strežnik Raspberry Pi?

Čeprav je to zdaj še posebej vadnica Raspberry Pi 3, to bi morali še vedno delajo z modeli, ki se vračajo v prva generacija —Če imate starejši model ali Raspberry Pi Zero, nam v spodnjih komentarjih sporočite svoje izkušnje.



Poleg same plošče Raspberry Pi boste potrebovali še:

  • Polnilnik Micro USB
  • Ethernetni kabel
  • Kartica microSD (najmanj 8 GB in kartice do 32 GB se zdijo v redu)

Ti vam bodo prav prišli tudi med prvotno nastavitvijo:

  • Tipkovnica USB
  • Kabel HDMI in monitor

OS Raspberry Pi: Raspbian

Namestitev operacijskega sistema na Raspberry Pi je preprosta. Najprej z računalnikom namestite zagonsko sliko na kartico microSD. Nato preprosto vstavite kartico v Raspberry Pi in se zaženite od tam.

Raspbian je distribucija Linuxa, prenesena iz Debian 7.0 ( Pihanje ) in je uradni OS za Raspberry Pi, optimiziran za arhitekturo naprave. Čeprav obstajajo še druge možnosti za zagon vašega najljubšega OS na Pi, bomo Raspbian uporabili zaradi njegove preprostosti.

Ta vadnica je bila posodobljena za delo s to različico (ali novejšo različico) Raspbian:

Kernel version : #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) Kernel release : 4.9.0-8-amd64

Če želite namestiti Raspbian, pojdite na uradna stran za prenos in prenesite datoteko zip z najnovejšo različico Raspbian.

Nato vstavite kartico microSD v režo ali adapter kartice SD v računalniku. Upoštevajte navodila na spletnem mestu Raspberry glede na operacijski sistem računalnika Linux , Mac OS , ali Windows .

Ko je postopek končan, odstranite kartico SD iz računalnika in jo vstavite v Raspberry Pi. S kablom Ethernet povežite Raspberry Pi z usmerjevalnikom in priklopite polnilnik Micro USB, ki bo zagnal zagon Raspberry Pi.

Za začetno konfiguracijo obstajata dve možnosti:

  • Če imate tipkovnico USB in monitor HDMI, jih lahko za prvo nastavitev priključite v Raspberry Pi.
    • Vaš Pi bi moral te naprave prepoznati takoj, ko so priključene.
    • Ko se Pi prvič zažene, se samodejno zažene raspi-config. Po prvem zagonu boste morali zagnati sudo raspi-config konfigurirati napravo.
  • Če jih nimate, se lahko med uporabo SSH povežete z Raspberry Pi:
    • Najprej morate poiskati naslov IP vašega Raspberry Pi v vašem lokalnem omrežju. To lahko stori do s povezavo do skrbniške strani usmerjevalnika ali z uporabo omrežnega orodja, kot je nmap .
    • Ko dobite naslov IP naprave, se z njim povežite s pomočjo SSH s svojega terminala (ali prek Kit če uporabljate Windows). Privzeti uporabnik je pi, privzeto geslo pa raspberry. Torej, če je na primer naslov IP 192.168.1.16, zaženite ssh [email protected] in ob pozivu vnesite geslo.
    • Ko ste povezani, zaženite sudo raspi-config.

raspi-config vas bo vodil skozi končno nastavitev. Konfigurirate lahko vse možnosti, najpomembnejši pa sta prvi dve: razširiti datotečni sistem, zagotoviti, da je na voljo ves pomnilnik kartice SD, in spremeniti geslo za privzetega uporabnika Pi, tako da bo vaš strežnik zaščiten pred vsiljivci.

Raspi-config

Na vaš Raspberry Pi namestite spletni strežnik (Nginx)

Nato boste namestili spletni strežnik. Raje imam Nginx, ker ima majhen spominski odtis in ker se dobro igra z Node.js (ki ga boste nastavili kasneje). Drugi spletni strežniki, kot je Apač ali lighttpd , bi tudi delovalo, vendar bomo za to predstavitev uporabili Nginx.

Preden začnete kar koli nameščati, se prepričajte, da je vse posodobljeno, tako da zaženete te ukaze na Pi:

sudo apt-get update sudo apt-get upgrade

Nato lahko namestite Nginx z uporabo apt-get:

sudo apt-get install nginx

Ko je namestitev končana, zaženite strežnik tako, da zaženete:

sudo service nginx start

Če vam v prejšnjem koraku ni bilo treba ugotoviti lokalnega IP-ja vašega Raspberry Pi, je čas, da to ugotovite tako, da zaženete ifconfig Izhod za vaš ethernetni vmesnik bo pod eth0 in z lokalnim naslovom IP z oznako inet addr.

Ko poznate naslov IP, lahko nanj usmerite brskalnik v svojem računalniku, kjer se prikaže privzeto sporočilo »Dobrodošli v Nginxu«.

Odprto za splet: Posredovanje vrat

Ta korak lahko preskočite, če ne nameravate dostopati do Raspberry Pi zunaj lokalnega omrežja. Toda za tiste, ki želijo svoj strežnik dostopati z drugih lokacij, poskrbimo, da je to mogoče.

V tipičnem domačem omrežju so naprave, povezane z usmerjevalnikom, zunanjemu svetu nevidne. Samo vaš usmerjevalnik je dosegljiv od zunaj z uporabo omrežja zunanji IP naslov. Vaš usmerjevalnik je odgovoren za določanje, kateremu dohodnemu prometu je dovoljeno v omrežje in kateri napravi naj bo poslan.

Ko naprava v lokalnem omrežju vzpostavi povezavo (na primer, ko v brskalniku odprete spletno mesto), usmerjevalnik prepozna dohodni odzivni promet kot del te povezave in mu omogoči, da se preusmeri. Če pa usmerjevalnik prejme dohodni promet, ki ni del odprte povezave (na primer, ko zunanja naprava poskuša vzpostaviti povezavo z notranjo napravo), bo dohodnemu prometu preprečil prehod v omrežje. To je pomembna varnostna funkcija za zaščito omrežja!

Torej, kako se lahko od zunaj povežete s svojim Pi? Odgovor je posredovanje vrat . Usmerjevalnik mora biti konfiguriran tako, da omogoča dohodne povezave na določenih vratih in jih pošlje na pravilno napravo. Privzeto protokol HTTP uporablja vrata 80, SSH pa vrata 22, zato sta to dve vrati, ki ju morate odpreti na usmerjevalniku za dostop do svoje spletne aplikacije in omogočiti varne povezave za upravljanje strežnika.

Posredovanje vrat.

Koraki za konfiguriranje usmerjevalnika za odpiranje in posredovanje vrat se lahko razlikujejo glede na vašega internetnega ponudnika in blagovno znamko usmerjevalnika, v vsakem primeru pa bi to morali doseči z naprednimi nastavitvenimi možnostmi skrbniške strani usmerjevalnika. Samo poiščite možnost z imenom, kot je »Posredovanje«, »Posredovanje vrat« ali »Prevajanje omrežnih naslovov«.

Odpreti morate vrata za povezave HTTP in druga za SSH. Osnovna ideja je posredovanje podatkov, naslovljenih na ta dva zunanja vrata, na vaš Raspberry Pi, pri čemer spletni promet preide na vrata 80, kjer posluša Nginx, in SSH promet na vrata 22, kjer strežnik SSH sprejme povezave z zunanjih računalnikov. Tu je primer, kako bi to lahko izgledalo na konfiguracijski strani usmerjevalnika:

Konfiguracijska tabela posredovanja vrat.

Konfiguracija posredovanja vrat, če je notranji naslov IP vašega Raspberry Pi 192.168.1.16 Ves dohodni promet, ki je namenjen za vrata 80 ali 22, se posreduje na ta interni naslov.

Zunanji naslov IP usmerjevalnika lahko določite preprosto v Google vtipkate »what is my ip address« . Če se nato premaknete zunaj omrežja usmerjevalnika, lahko preizkusite, ali posredovanje vrat deluje, tako da odprete SSH povezavo z ssh [email protected] {external IP address} Posredovanje vrat HTTP lahko preizkusite tudi tako, da v naslovno vrstico brskalnika vnesete zunanji naslov IP. Upoštevajte le, da posredovanje vrat vsem zunaj omogoča dostop do naprave na teh vratih, če pozna zunanji IP vašega usmerjevalnika.

Če nimate statičnega IP-ja, lahko nastavite dinamični DNS. To je zelo preprost in enostaven korak. Z usmerjevalnika lahko nastavite dinamični DNS ali pa zanj konfigurirate Raspberry Pi. Ne bom opisoval, kako tukaj konfigurirati DDNS, ampak BitPi.co ima dobro vadnico na to temo če je potrebno.

Namestite Framework: JavaScript s polnim nizom

Na Nginxu lahko zaženete večino spletnih okvirov, vendar poglejmo, kako uporabljati JavaScript v celoti. Če želite to narediti, morate namestiti Node.js in MongoDB .

Danes je Node.js enostavno namestiti na Raspberry Pi z:

sudo apt-get install nodejs

Ko se namestitev konča, lahko preverite, ali deluje, tako da zaženete node -v.

Zdaj lahko MongoDB namestite samo s tipkanjem:

sudo apt-get install mongodb

Zavedajte se le, da če boste kdaj morali izklopiti Raspberry Pi, morate storitev najprej izklopiti, da se izognete poškodbam zbirke podatkov:

sudo service mongodb stop

Uvedite svojo aplikacijo

Lahko se razvijete na svojem lokalnem računalniku in nato svoje spremembe potisnete v repozitorij Git na BitBucketu. Ker ima Raspbian vnaprej nameščen Git, lahko na napravo povlečete svojo najnovejšo kodo aplikacije in jo zaženete.

Oder projekta

Najprej nastavimo kodo aplikacije in jo potisnemo v repozitorij Git. Obstaja veliko načinov za zagon aplikacije, toda eden mojih najljubših je generator-kotno-polni sklad , ki posname tako strežniško kot odjemalsko kodo.

Namestite generator-angular-fullstack v računalniku:

npm install -g generator-angular-fullstack

Ustvarite nov imenik za svojo aplikacijo:

mkdir my-app cd my-app

In postavite aplikacijo na oder:

yo angular-fullstack my-app

Ustvarite repozitorij in potisnite kodo

Zdaj ustvarite repozitorij v BitBucketu, kot je opisano tukaj . Nato nastavite svoj lokalni imenik:

git init git remote add origin [email protected] :USER/REPO.git

Tako lahko kodo potrdite in potisnete:

git add . git commit -m 'Initial commit' git push -u origin master

Generator je priložen grunt-build-control vtičnik, ki vam omogoča, da gradbeno kodo dodelite določeni veji v vašem skladišču. Preprosto dodajte konfiguracijo za BitBucket v Gruntfile.js v korenskem imeniku aplikacije:

buildcontrol: { options: { dir: 'dist', commit: true, push: true, connectCommits: false, message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%' }, bitbucket: { options: { remote: ' [email protected] :USER/REPO.git', branch: 'build' } } }, // ...

Zdaj zaženite:

grunt build

… Za ustvarjanje distribucijske mape, čemur sledi to:

grunt buildcontrol:bitbucket

… Za prevzem in potiskanje kode v vejo gradnje v vašem repozitoriju.

Ustvari ključ SSH

Zdaj gostite kodo. Preden ga lahko namestite v svoj Raspberry Pi, morate ustvariti SSH ključ za Raspberry Pi in ga dodati v svoj račun BitBucket. Ta korak bomo hitro izvedli, vendar če imate kakršne koli težave, sledite BitBucket vodnik . Torej, prijavite se nazaj v svoj terminal Raspberry Pi in ustvarite par javnih / zasebnih ključev:

ssh-keygen

Nato zaženite agent:

ssh-agent /bin/bash

In agentu dodajte ključ:

ssh-add /home/pi/.ssh/id_rsa

Zdaj morate samo izpisati vsebino javnega ključa:

cat /home/pi/.ssh/id_rsa.pub

... tako da ga lahko kopirate in prilepite v BitBucket.

V BitBucket kliknite sliko profila in pojdite na Upravljanje računa . Spodaj VARNOST , najti SSH tipke in kliknite gumb Dodaj ključ .

Kloniraj Repozitorij

Ni pravila, kam naj se postavi koda vaših aplikacij, vendar lahko ustvarite /var/www in shranite vse svoje projekte.

cd /var sudo mkdir www

Da bi se izognili uporabi sudo ko želite datoteke postaviti v spletno korenino, lahko lastnika spremenite v svojega uporabnika Pi, skupino pa v www-data, ki jo uporablja Nginx:

sudo chown -R pi:www-data www cd www

Zdaj lahko klonirate vejo gradnje vašega skladišča in namestite odvisnosti:

git clone [email protected] :USER/REPO.git --branch build --single-branch cd REPO npm install --production

Ko končate, lahko zaženete aplikacijo in nastavite okolje na produkcijsko:

export NODE_ENV=production; node server/app.js &

Zdaj usmerite računalniški brskalnik na naslov IP naprave, da preverite, ali deluje.

Želite, da bi imeli dev strežnik, ki bi ga lahko poklicali sami? Lahko, z #RaspberryPi. Tweet

Konfigurirajte povratni proxy Nginx

Še en korak je, da omogočite dostop do aplikacije od zunaj. Čeprav Nginx posluša na vratih 80, kjer bo prejel zahteve HTTP za vaš Pi, aplikacija Node sama posluša na druga vrata (na primer vrata 8080). Zato morate Nginx konfigurirati tako, da deluje kot povratni proxy , prepoznavanje zahtev, namenjenih vaši aplikaciji, in njihovo posredovanje Nodeu.

Nginx hrani konfiguracijsko datoteko za vsako aplikacijo, ki jo služi, v sites-available mapa:

cd /etc/nginx/sites-available/

Tukaj lahko kopirate default konfiguracijsko datoteko in jo uredite:

sudo cp default my-app sudo nano my-app

Končna konfiguracijska datoteka bi morala izgledati tako, Nginx pa deluje kot posrednik strežnika Node.js:

server { listen 80; root /var/www/my-app/; # identifies the location of the application you are configuring server_name my-app.dev; # identifies the hostname used by this application's traffic location / { proxy_pass http://localhost:8080/; # configures the back-end destination for this traffic } }

Če želite omogočiti to konfiguracijo, morate v sites-enabled ustvariti simbolno povezavo mapo, kjer Nginx išče aktivne konfiguracije med izvajanjem:

sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/my-app

In ponovno naložite storitev, da aktivirate te spremembe:

sudo service nginx reload

Na tej točki je vaša aplikacija pripravljena na sprejem HTTP prometa, namenjenega my-app.dev domena (zahvaljujoč zgoraj konfigurirani direktivi server_name my-app.dev). Končno vprašanje, ki ga morate rešiti, je, kako doseči, da se promet, ki ga pošiljate od zunaj, ujema s tem domenskim imenom. Čeprav bi lahko kupili domensko ime in ga usmerili na svoj IP, bo hosts datoteka priskoči na pomoč in to naredi nepotrebno.

Na delovno postajo, s katere boste dostopali do spletnega mesta, preprosto dodajte zunanji naslov IP usmerjevalnika in ga povežite z imenom gostitelja my-app.dev Vsak promet HTTP, ki ga ustvarite za my-app.dev bo nato poslano neposredno na vaš usmerjevalnik s pravilnim imenom gostitelja v Host Glava HTTP.

V operacijskem sistemu Windows lahko s skrbniškimi pravicami urejate datoteko v c:windowssystem32driversetchosts z beležko. V Linuxu in Macu lahko terminal uporabljate z sudo nano /etc/hosts in sudo nano /private/etc/hosts oz.

## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 212.124.126.242 my-app.dev # add your host name to the list

Kaj je naslednje?

Zdaj, ko je vse nastavljeno, lahko v Raspberry Pi razmestite poljubno število aplikacij in namestite za vedno ali pm2 da bodo vaši strežniki Node.js ostali živi.

In samo zapomnite si, da če gre kaj narobe, lahko samo obrišete kartico SD in začnete znova iz nič!

Razvojni strežnik Raspberry Pi v akciji.

Razumevanje osnov

Kaj moram začeti z Raspberry Pi?

Monitor s pravilnim kablom in adapterjem; napajalnik micro USB; žična tipkovnica in miška - ali brezžična tipkovnica in miška z vmesnikom Bluetooth; mikro SD kartica; in seveda Raspberry Pi.

Ali lahko zaženete Windows na Raspberry Pi?

Za Raspberry Pi ni neposrednega namiznega operacijskega sistema Windows. Windows ima zmanjšano različico, namenjeno napravam interneta stvari (IoT). Namenjen je predvsem razvijalcem in hekerjem strojne opreme, ki želijo prototipirati naprave IoT.

Zakaj uporabljati Raspberry Pi?

Raspberry Pi lahko uporabimo za veliko stvari. Izdelujemo lahko strežnike za avtomatizacijo doma, robote z daljinskim upravljanjem, naprave, povezane z omrežjem (NAS), mini spletne strežnike, medijske centre, glasbene skrinjice, retro igralne konzole, strežnike Raspberry cluster, strežnike VPN in še veliko več.

Kaj je Raspberry Pi za internet stvari (IoT)?

Nič takega. IoT je sestavljen iz specializiranih in-situ naprav, povezanih z internetom, v nasprotju s splošnimi napravami, kot so telefoni in prenosniki. Ena ključnih platform za IoT je Raspberry Pi. To je priljubljena platforma, saj ponuja popoln Linux strežnik v majhnem vdelanem paketu za zelo nizke stroške.

Kaj je Raspberry Pi in kaj počne?

To je enokrmilni računalnik ali mu nekateri pravijo mini računalnik. Z njim lahko naredite karkoli - skoraj vse, kar si lahko zamislite z namizjem ali strežniškim računalnikom.

Kakšna je razlika med Arduino in Raspberry Pi?

Arduino je mikrokrmilnik in lastni gostiteljski čip - ni popoln računalnik, zato potrebujete ločen računalnik za pisanje kode zanj. Raspberry Pi je resničen računalnik: ima CPU, GPU in vrata za HDMI, zvok, zaslon in LAN. Za shranjevanje potrebuje OS (npr. Linux) in trdi disk (ali SD kartico).

Kakšna je uporaba domačega strežnika?

Raspberry Pi lahko uporabite kot domači strežnik za več namenov, na primer za večpredstavnostno shrambo, ali kot rezervno delovno postajo, e-poštni strežnik, nadzorno kamero, testno mesto, Jenkinsov gostitelj, subverzijski strežnik, wiki gostitelj in še veliko več.

Ali lahko zaženete strežnik na Raspberry Pi?

Da, na Raspberry Pi lahko zaženete skoraj vse vrste strežnikov.

Kako izvesti sprint na daljavo

Orodja In Vaje

Kako izvesti sprint na daljavo
Raziskovanje geštaltskih načel oblikovanja

Raziskovanje geštaltskih načel oblikovanja

Ux Oblikovanje

Priljubljene Objave
Predvidevanje: Kako ustvariti čarobne uporabniške izkušnje
Predvidevanje: Kako ustvariti čarobne uporabniške izkušnje
Navdihnite se s temi vizualizacijami podatkov
Navdihnite se s temi vizualizacijami podatkov
Legalne športne stave: novo gospodarstvo, zgrajeno na podlagi vice
Legalne športne stave: novo gospodarstvo, zgrajeno na podlagi vice
10 pristnih načinov, kako pridobiti več všečkov na Instagramu
10 pristnih načinov, kako pridobiti več všečkov na Instagramu
Kako izdelati uspešno tržno strategijo
Kako izdelati uspešno tržno strategijo
 
Kako preklicati naročnine na iPhone
Kako preklicati naročnine na iPhone
Globoko poglobitev v uspešnost entitetnega okvira pri uporabi 'Contains'
Globoko poglobitev v uspešnost entitetnega okvira pri uporabi 'Contains'
Siva zadeva - kaj je miselni zemljevid v procesu oblikovanja?
Siva zadeva - kaj je miselni zemljevid v procesu oblikovanja?
Showdown Design Tool - Adobe XD vs. Sketch (2019)
Showdown Design Tool - Adobe XD vs. Sketch (2019)
Obvladajte vroče trende oblikovanja s temi vajami za Photoshop
Obvladajte vroče trende oblikovanja s temi vajami za Photoshop
Kategorije
Ljudje In EkipeIzdelki In EkipeNamigi In OrodjaUx OblikovanjeOdpravljanje težavPrihodnost DelaUi DesignSpletno MestoProces In OrodjaPostopek Oblikovanja

© 2023 | Vse Pravice Pridržane

socialgekon.com