Docker CE:n asentaminen Ubuntuun 16.04
Käytätkö erilaista järjestelmää? Docker on sovellus, jonka avulla voidaan ottaa käyttöön säilöinä ajettavia ohjelmia. Se kirjoitettiin suositulla Go-ohjelmalla
Beanstalk on nopea ja yksinkertainen työjono. Sen avulla voit suorittaa aikaa vieviä tehtäviä asynkronisesti, kuten sähköpostien lähettämisen, yhteyden muodostamisen ulkoisiin sovellusliittymiin tai kuvien käsittelyyn. Näin lyhennät verkkosovelluksesi viivettä. Laravel tarjoaa valmiin tuen beanstalkd
.
Tässä opetusohjelmassa asennamme beanstalkd
, asennamme Laravel-demosovelluksen ja hallitsemme jonotyöntekijöitä Supervisorin kautta . Demosovellus saa luettelon käytettävissä olevista käyttöjärjestelmistä Vultr API:sta ja valitsee niistä satunnaisesti.
Oletuksena on, että järjestelmässäsi on jo asennettu Supervisor. Jos et, sinun tulee lukea seuraava opetusohjelma Supervisorin asentamisesta : Supervisorin asentaminen ja määrittäminen Ubuntu 16.04:ssä
Oletetaan myös, että sinulla on SSH-käyttöoikeus Vultr-instanssiisi.
Ensimmäinen askel on asentaa beanstalkd
.
sudo apt-get update
sudo apt-get install beanstalkd
Käynnistä palvelu.
sudo systemctl start beanstalkd
Voit myös ottaa palvelun käyttöön järjestelmän alustuksen yhteydessä.
sudo systemctl enable beanstalkd
Tarkista palvelun tila antamalla seuraava komento.
sudo systemctl status beanstalkd
Kuuntelee oletusarvoisesti beanstalkd
porttia 11300
. Beanstalk käyttää yksinkertaista tekstipohjaista protokollaa, joka on kuvattu sen github-arkistossa . Voit testata sen protokollaa suorittamalla telnet
.
telnet localhost 11300
Kirjoita seuraava ja paina ENTER.
list-tubes
Sinun pitäisi nähdä luettelo palvelimella olevista putkista:
OK 14
---
- default
Sulje yhteys kirjoittamalla quit
ja painamalla sitten ENTER.
Beanstalkissa olevat putket edustavat työjonoja. Pavunvarsi koostuu pohjimmiltaan tuottajista , kuluttajista , työpaikoista ja putkista . Tuottajat laittavat työpaikat putkeen, jonka kaikki kuluttajat voivat kuluttaa (prosessoida). Huomaa, että sekä tuottajat että kuluttajat ovat yksinkertaisesti Beanstalk-palvelimen asiakkaita ja ovat täysin riippumattomia toisistaan. Käytännössä tämä tarkoittaa, että Beanstalkin avulla voit tuottaa työsi PHP-sovelluksessasi ja käsitellä ne esimerkiksi NodeJS-sovelluksessa. Onneksi Laravel tiivistää kaiken tämän ja tarjoaa meille erittäin yksinkertaisen sovellusliittymän töiden lähettämiseen ja käsittelemiseen, kuten näemme seuraavaksi.
Esimerkkiprojektimme rakentamiseksi meidän on ensin asennettava sen riippuvuudet. Asennamme PHP:n ja Composerin.
sudo apt-get install php php-mbstring php-xml php-common php-zip composer
Luo nyt projekti Laravel 5.5:n perusteella.
composer create-project --prefer-dist laravel/laravel vultr "5.5.*"
Seuraavaksi cd
äskettäin luotuun kansioon. Työskentelemme tästä lähtien tässä hakemistossa. Tähän kansioon voidaan viitata myöhemmin nimellä PROJECT_ROOT
.
cd vultr/
Käyttääksemme Beanstalkia Laravelissa meidän on asennettava vielä yksi riippuvuus, PHP Beanstalk -asiakas.
composer require pda/pheanstalk ~3.0
Meidän on myös luotava Job-edustus. Laravelissa tämä on app/Jobs
kansion sisällä oleva luokka . Laravelilla on konsolikomento, joka auttaa meitä luomaan Job-luokan. Luodaan mallityömme.
php artisan make:job FindFavoriteOS
Päivitä app/Jobs/FindFavoriteOS.php
tiedosto seuraavaan.
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Log;
class FindFavoriteOS implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$rawData = file_get_contents('https://api.vultr.com/v1/os/list');
$list = json_decode($rawData, true);
shuffle($list);
$key = array_rand($list);
$favorite = $list[$key];
Log::info('My Favorite OS is: ' . $favorite['name']);
}
}
Käsittelymenetelmä on se, mikä suoritetaan tehokkaasti, kun työ kuluu. Täällä noudetaan tiedot Vultr API:sta, valitaan satunnaisesti käyttöjärjestelmä ja kirjoitetaan valittu käyttöjärjestelmä lokitiedostoon. Lokitiedosto sijaitsee osoitteessa storage/logs/laravel.log
.
Olemme jo asentaneet Beanstalkin ja määrittäneet sen suorittaman työn. Nyt on aika käskeä Laravelia käyttämään Beanstalkia oletustyöjonona. Kopioi .env
Laravel-asennuksen tarjoama oletustiedosto.
cp .env.example .env
Avaa nyt .env
tiedosto ja päivitä rivi, jossa jonoohjain on määritetty.
QUEUE_DRIVER=beanstalkd
Luo lopuksi sovellusavain.
php artisan key:generate
Olemme nyt valmiita lähettämään töitä Beanstalk-työjonoon.
Työn lähettäminen Laravelissa on melko yksinkertaista. Päivitä routes/web.php
tiedosto.
<?php
Route::get('/', function () {
for ($i = 0; $i < 50; $i++) {
\App\Jobs\FindFavoriteOS::dispatch();
}
return '50 Jobs dispatched!';
});
Vaikka sisäänrakennettua palvelinta ei suositella käytettäväksi tuotannossa, käytämme sitä tässä lyhyyden vuoksi.
php artisan serve --host 0.0.0.0 --port 8000
Siirry nyt verkkoselaimessa kohtaan http://[vultr-instance-ip]:8000
. Näet seuraavan viestin.
50 Jobs dispatched!
Avaa uusi SSH-yhteys palvelimellesi ja suorita projektimme juuren sisällä seuraava.
php artisan queue:work --once
Tämä on odotettu tulos:
[2018-02-14 00:03:52] Processing: App\Jobs\FindFavoriteOS
[2018-02-14 00:03:53] Processed: App\Jobs\FindFavoriteOS
Vahvista, että loki on luotu.
cat storage/logs/laravel.log
Jotta jonoa ei tarvitse käsitellä manuaalisesti, käytämme supervisord
. Luo seuraavat ohjelmakokoonpanot sovelluksessa /etc/supervisor/conf.d/vultr.conf
.
[program:vultr]
process_name=%(program_name)s_%(process_num)02d
command=php [PROJECT_ROOT]/artisan queue:work
autostart=true
autorestart=true
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/worker.log
Huomaa, että oikea polku Supervisor-määritystiedoston sijoittamiseen riippuu asetuksistasi. Muista myös korvata [PROJECT_ROOT]
koko polku PROJECT_ROOT
järjestelmässäsi olevaan polkuun .
Tässä konfiguroimme Supervisorin aloittamaan automaattisesti jonon käsittelyn ja käynnistämään sen uudelleen, mikäli komentosarja katkeaa. Huomaa myös, että emme instantoi yhtä työntekijää, vaan 8 prosessia. Voit vapaasti instantoida monia prosesseja, jotka katsot tarpeellisiksi sovelluksestasi riippuen.
Jotta valvoja voi hallita työntekijäämme, pakota se lukemaan kokoonpanonsa uudelleen.
sudo supervisorctl reread
sudo supervisorctl update
Jos Supervisor-palvelua ei ole käynnistetty, monien on käynnistettävä se.
sudo systemctl start supervisord
Katsotaan nyt, ovatko työt käsittelyssä.
tail -f storage/logs/laravel.log
Siirry verkkoselaimella kohtaan http://[vultr-instance-ip]:8000
. Näet lokit, joita luodaan konsolissasi.
Olemme onnistuneesti konfiguroineet Laravel-sovelluksen käyttämään Beanstalkia työjonona. Esitimme myös, kuinka Supervisoria käytetään työntekijöiden johtamiseen.
Käytätkö erilaista järjestelmää? Docker on sovellus, jonka avulla voidaan ottaa käyttöön säilöinä ajettavia ohjelmia. Se kirjoitettiin suositulla Go-ohjelmalla
Mikä on Dirty Cow (CVE-2016-5195)? Dirty Cow -haavoittuvuutta hyödynnetään siinä, miten Linux käsittelee koodia. Se mahdollistaa etuoikeutettujen käyttäjien gai:n
Vultr-palvelimia ei välttämättä oteta käyttöön palvelimellasi tarvitsemallasi aikavyöhykkeellä/päivämäärällä/-ajalla. Onneksi voimme asettaa aikavyöhykkeen manuaalisesti ongelmien estämiseksi
Tämä artikkeli opastaa sinua Meteor-sovelluksen käyttöönotossa Vultr VPS:ssä, jossa on Ubuntu 14.04. Se voi toimia myös muissa Linux-jakeluissa (yritä a
Käytätkö erilaista järjestelmää? osTicket on avoimen lähdekoodin asiakastuen lippujärjestelmä. osTicket-lähdekoodia isännöidään julkisesti Githubissa. Tässä opetusohjelmassa
Jotkut korkean käytettävyyden arkkitehtuurit vaativat kelluvan IP-osoitteen. Tämä toiminto on käytettävissä Vultr-alustalla, kun yksityinen verkko on toiminut
Johdanto Tietyt skenaariot edellyttävät, että luot käyttäjiä, joilla on luku- ja kirjoitusoikeudet yhteen hakemistoon vain FTP:n kautta. Tämä kirjoitus näyttää sinulle, kuinka t
Node.js-sovellukset ovat suosittuja skaalautumiskykynsä vuoksi. Useiden samanaikaisten prosessien suorittaminen useilla palvelimilla tuottaa pienemmän viiveen ja pidemmän käytettävyyden
iptables on palomuuriohjelmisto, joka löytyy monista jakeluista, mukaan lukien CentOS ja Ubuntu. Tässä asiakirjassa näet, kuinka voit estää samanaikaisuuden
Using a Different System? BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. BookStack is fully free and open
Tietojen palauttaminen SFTP:n kautta Tapauksissa, joissa asennettu käyttöjärjestelmä kohtaa virheen, joka ei salli käyttöjärjestelmän käynnistymistä normaalisti, data voi olla tarpeen noutaa
Johdanto OpenVPN on suojattu VPN, joka käyttää SSL:ää (Secure Socket Layer) ja tarjoaa laajan valikoiman ominaisuuksia. Tässä oppaassa on hyvä kattaa prosessi
Asenna rakennustyökalut Tarvitaan useita työkaluja. Suorita seuraava komento: apt-get install make g++ libssl-dev git Lataa Node.js lähde Se i
Käytätkö erilaista järjestelmää? Johdanto Bro on tehokas avoimen lähdekoodin verkkoanalyysikehys. Bros keskittyy ensisijaisesti verkkoturvallisuuden valvontaan. Br
Devtools-paketti tehtiin alun perin luotettaville käyttäjille, jotta he voivat luoda paketteja oikein virallisiin tietovarastoihin. Tavallinen käyttäjä voi kuitenkin käyttää sitä
Jos käytät makepkg:a suoraan, se saastuttaa järjestelmääsi jonkin verran. Peruskehityksen pakettiryhmä on asennettava. Tällä tavalla oletusarvoisesti riippuvuuksia tarvitaan vain
Vultr VPS:n pitäminen ajan tasalla on tärkeää turvallisuuden ja suorituskyvyn kannalta. Tämän prosessin ydin on varmistaa, että järjestelmäsi toimii uusimpien versioiden kanssa
GNU/Linux-järjestelmissä hienoutta käytetään määrittämään prosessin suorittimen prioriteetti. Pohjimmiltaan se on prioriteetin vastakohta. Joten mitä mukavampi prosessi on, th
PM2 on erittäin suosittu Node-prosessinhallinta, joka tekee NodeJS-sovellusten suorittamisesta helppoa. PM2 helpottaa sovellusten uudelleenkäynnistämistä, käynnistää kaatumisen automaattisesti uudelleen
Using a Different System? Apache OpenMeetings is an open source web conferencing application. It is written in Java and supports multiple database servers. I
Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.
Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.
Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.
Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.
Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…
Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.
Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.
Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.
Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.
Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja