Kan AI vechten met toenemend aantal ransomware-aanvallen?
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
In deze zelfstudie leren we hoe we een Koa.js-webtoepassing voor productie kunnen instellen met Node.js. We zullen ook een voorbeelddomein, met een omgekeerde proxy, koppelen met behulp van Apache en leren hoe we dit kunnen beheren met een goede procesmanager. Laten we beginnen zonder verder oponthoud.
Node.js is een snel, platformonafhankelijk JavaScript-framework gebaseerd op de V8-engine van Chrome. Het wordt gebruikt in zowel desktop- als servertoepassingen en staat bekend om zijn single-threaded event loop handling. Node.js heeft een pakketregister genaamd Node Package Manager (NPM), dat meer dan een half miljoen pakketten host. NPM-pakketten (of modules) vormen de kernruggengraat van Node.js, omdat het community-gestuurde code is die nuttig kan zijn in uw Node.js-toepassing. In onze Koa.js-app is Node.js het belangrijkste onderdeel van zijn functie.
Koa.js is een minimalistisch webraamwerk, gebouwd op het Node.js-platform. Gemaakt door hetzelfde team achter het populaire Express.js-framework, het doel is om het toch al minimalistische Express.js-framework verder te minimaliseren door middleware uit te sluiten van de kern. Een belangrijk kenmerk van Koa.js is het feit dat er geen terugbelverzoeken zijn. Koa.js is gebouwd op ES6-gebaseerde generatoren en ES6-functies, zoals Promises.
Apache is een populaire open-source webserver, die wordt gebruikt als een zeer eenvoudig startpunt voor webservers. In deze tutorial gebruiken we Apache als een reverse proxy, waardoor we onze applicatie kunnen linken aan een voorbeelddomein. Als je geen domein hebt, zal deze tutorial nog steeds voor je werken, met het enige verschil dat de website draait op je VPS IP, in plaats van een domein.
Zoals met elk Node.js-framework, moet je Node.js op je VPS installeren. In het belang van deze tutorial ga ik ervan uit dat je Node.js al op je systeem hebt geïnstalleerd. Zo niet, volg dan gewoon de instructies hier .
We zullen een map moeten maken met de kernbestanden van onze applicatie.
mkdir site
Voel je vrij om te vervangen site
door een andere naam die je wilt voor de directory. Vervolgens moeten we ons Node.js-pakketbestand initialiseren. Ga naar de map die u zojuist hebt gemaakt, voer deze uit npm init
en voltooi de aanwijzingen. Uiteindelijk zou het er ongeveer zo uit moeten zien:
{
"name": "site",
"version": "1.0.0",
"description": "Koa.js Site",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "yourname",
"license": "ISC"
}
Nu we onze directory hebben ingesteld, kunnen we doorgaan met het installeren van Koa.js. /site
Typ het volgende in de huidige werkdirectory .
npm install koa
Hiermee wordt de Koa.js-module van NPM gedownload en in onze projectdirectory geïnstalleerd voor toekomstig gebruik. Vervolgens maken we ons voorbeeldtoepassingsbestand met onze app-code. Maak hiervoor een index.js
bestand aan.
nano index.js
Eenmaal in het bestand, maak een voorbeeldtoepassing.
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);
console.log('Website is live!')
Sla het bestand op en sluit het. CTRL+ X.
We willen ervoor zorgen dat onze applicatie goed werkt. Om het te starten, voer node index.js
je uit en je zult zien Website is live
in de console.
Nu we weten dat onze website functioneel is, kunnen we doorgaan met het installeren van Apache en zijn afhankelijkheden.
sudo apt install -y libapache2-mod-proxy-html libxml2-dev
Om de reverse proxy-functie van Apache te kunnen gebruiken, moeten we de benodigde modules inschakelen.
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
Sommige van deze modules zijn mogelijk al ingeschakeld, maar het is altijd goed om ze nogmaals te controleren.
Nu moeten we het standaard configuratiebestand voor Apache bewerken.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Hier moeten we een blok toevoegen voor onze applicatie.
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:3000/
ProxyPassReverse / http://0.0.0.0:3000
ServerName localhost
</VirtualHost>
Sla het bestand op, CTRL+ X.
U merkt misschien dat we poort gebruiken 3000
als poort voor ons ProxyPass
en ProxyPassReverse
IP. Aangezien het dezelfde poort is waarop we onze Koa.js-applicatie uitvoeren, is het absoluut noodzakelijk dat we de juiste poort invoeren.
Zodra de wijzigingen zijn aangebracht, moeten we Apache opnieuw opstarten en onze Koa.js-toepassing opnieuw starten.
sudo systemctl restart apache2
Dit zorgt ervoor dat ons configuratiebestand actief is en klaar is om te werken wanneer we onze Koa.js-applicatie starten. Zodra Apache opnieuw is opgestart, navigeert u terug naar uw sitemap en start u de Koa.js-applicatie zoals we eerder deden. Navigeer vanuit uw webbrowser naar http://yourdomain
, of http://yourip:
en u ziet "Hallo wereld".
Nu we de basis hebben behandeld voor het maken van een voorbeeld van een Koa.js-applicatie, beseffen we dat het in een productieomgeving onpraktisch is om de applicatie te starten zoals we nu zijn. Een procesmanager is zeker een vereiste. Dat is waar systemd in het spel komt. Simpel gezegd, systemd bestaat uit software die bouwstenen biedt voor een Linux-systeem. Net als bij "init" biedt het een systeem om gebruikersprocessen te beheren na het opstarten van het systeem. In het geval van onze applicatie stelt systemd ons in staat om onze website automatisch te starten nadat het systeem opnieuw is opgestart, voor het geval er een gebeurtenis is die de uptime van het systeem verstoort. Het biedt ook een set tools die van pas kunnen komen bij het beheer van onze applicatie. Het beste is dat het is ingebouwd in Ubuntu 16.04 LTS, dus we hoeven geen extra software te installeren.
Alles wat we nodig hebben om onze applicatie te starten, staat in een bestand met de naam service
. Het bevat details over onze app, zoals de naam, directory, omgeving en meer. Open een teksteditor om ons systeembestand te maken.
sudo nano /lib/systemd/system/site.service
Bewerk en sla het bestand als volgt op.
[Unit]
Description=desc here
Documentation=https://example.com
After=network.target
[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
Vervang youruser
door de gebruikersnaam van uw server. Hier volgt een kort overzicht van de belangrijke velden:
After
- Dit informeert systemd om te wachten tot de netwerkinterface gereed is voordat we onze applicatie starten.Environment
- Hier kunnen we omgevingsvariabelen voor onze applicatie specificeren. Onze Node.js-poort is daar een van.Type
- Dit informeert systemd dat onze app gewoon kan worden opgestart, zonder gebruikersrechten en dergelijke op te offeren.User
- Dit vertelt systemd dat we de applicatie willen uitvoeren onder ons gebruikersaccount, wat wordt aanbevolen. Toepassingen uitvoeren als rootgebruiker kan leiden tot veel beveiligingsproblemen.ExecStart
- In wezen de opdracht die systemd zal uitvoeren om onze applicatie te starten, vergelijkbaar met hoe we deze eerder handmatig hebben gestart.Restart
- Vertelt onder welke voorwaarden onze applicatie opnieuw moet worden opgestart. In dit geval willen we dat onze website opnieuw wordt opgestart in het geval van een fout.We zijn nu klaar om onze systeemdienst te starten.
sudo systemctl daemon-reload
Dit is nodig wanneer een systemd-servicebestand verandert, zodat systemd nieuwe wijzigingen kan registreren.
Start vervolgens uw aanvraag.
sudo systemctl start site
Navigeer nogmaals naar de site in uw browser om te controleren of alles werkt.
stop
- Stopt de applicatie volledig.restart
- Stopt de applicatie en start deze opnieuw onder een nieuw proces.enable
- Vertelt systemd om de applicatie te starten wanneer u uw computer opstart.status
- Toont informatie over de momenteel actieve applicatie, zoals uptime, applicatiestatus en meer.Voer het volgende uit om een van deze functies te gebruiken.
systemctl <function> site
We hebben met succes een Koa.js-applicatie opgezet en geleerd hoe we de proxy kunnen omkeren en beheren met systemd. U bent nu klaar om uw toepassing uit te breiden en voort te bouwen op dit voorbeeld. Als je meer wilt weten over Koa.js en meer dingen die je ermee kunt doen, bezoek dan hun website voor meer nuttige informatie. Daarnaast, als u meer wilt weten over de procesmanager van systemd, lees dan de documentatie ervoor hier . Als je tenslotte meer wilt weten over de reverse proxy van Apache, kun je ze hier bekijken .
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.
WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+
Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.
Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie
13 Commerciële data-extractietools voor big data
Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true
Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.
Een inzicht in 26 Big Data-analysetechnieken: deel 1
AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.