Ρυθμίστε το Nginx στο Ubuntu για ροή ζωντανού βίντεο HLS

Ρυθμίστε το Nginx στο Ubuntu για ροή ζωντανού βίντεο HLS

Το HTTP Live Streaming (HLS) είναι ένα πολύ ισχυρό πρωτόκολλο βίντεο ροής που εφαρμόζεται από την Apple Inc. Το HLS χρησιμοποιεί συναλλαγές HTTP που διασχίζουν τείχη προστασίας, διακομιστή μεσολάβησης και μπορούν να διανεμηθούν μέσω CDN με ευκολία. Επομένως, αυτή η τεχνολογία είναι σε θέση να προσεγγίσει ένα πολύ μεγαλύτερο κοινό προβολής από το RTP ή άλλα πρωτόκολλα που βασίζονται σε UDP. Μεγάλο μέρος της ζωντανής ροής βίντεο στο διαδίκτυο σήμερα φιλοξενείται από ακριβά συστήματα που χρησιμοποιούν HLS, αλλά είναι γενικά ακριβά και απαιτούν πολλούς πόρους διακομιστή. Αυτό το σεμινάριο θα σας δείξει πώς να ρυθμίσετε ένα πολύ προσιτό Ubuntu 14.04 VULTR VPS για να πραγματοποιείτε εκδηλώσεις ζωντανής ροής HLS χρησιμοποιώντας μόνο λογισμικό ανοιχτού κώδικα.

Το πρώτο βήμα είναι να διαβάσετε και να ρυθμίσετε τον διακομιστή σας σύμφωνα με το Vultr Doc " Setup Nginx-RTMP στο Ubuntu 14.04 ". Οι οδηγίες σε αυτό το έγγραφο ήταν οι πιο περιεκτικές για το στάδιο της εγκατάστασης, τη στιγμή που γραφόταν το κείμενο. Θα ήθελα να αναφέρω ότι μπορεί να θέλετε να αντικαταστήσετε το "nginx-1.7.5" με το "nginx-1.9.4" ή οποιαδήποτε άλλη είναι διαθέσιμη η πιο πρόσφατη έκδοση του Nginx. Η άλλη πρόταση είναι να μεταγλωττίσετε το Nginx με τη μονάδα κατάστασης στελέχους HTTP, προκειμένου να δώσετε στον εαυτό σας τη δυνατότητα να παρακολουθεί πόσους ζωντανούς θεατές HLS έχετε αργότερα.

Αντί να γίνει μεταγλώττιση με:

./configure --with-http_ssl_module  --add-module=../nginx-rtmp-module-master

Χρησιμοποιήστε αυτήν τη συμβολοσειρά στη διαδικασία που περιγράφεται στο προαπαιτούμενο έγγραφο:

./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master

Το παράδειγμα σε αυτό το σεμινάριο θα δημιουργήσει τόσο "ζωντανές" και "κινητές" (βελτιστοποιημένες) ροές και θα χρησιμοποιήσει το ffmpeg (εγκατεστημένο στο προηγούμενο σεμινάριο) για τη δημιουργία της προσαρμοσμένης σε ρυθμό μετάδοσης bit, βελτιστοποιημένης για κινητά ροής HLS. Το παράδειγμα θα δείξει επίσης πώς μπορείτε να κάνετε τον διακομιστή να καταγράφει αυτόματα τις ζωντανές ροές σας και να σας επιτρέψει να αναπαράγετε τις εγγραφές ως υπηρεσία επανάληψης βίντεο κατ' απαίτηση (VOD).

Αρχικά, δημιουργήστε τις δομές φακέλων που είναι απαραίτητες για τη διατήρηση των ζωντανών και κινητών εκδηλώσεων HLS και θραυσμάτων βίντεο:

sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings

Είναι πιθανώς καλή ιδέα να ενεργοποιήσετε το τείχος προστασίας σας εάν δεν το έχετε κάνει ήδη. Εάν ναι, πρέπει να επιτρέψετε την κυκλοφορία στις θύρες που χρησιμοποιούνται από το Nginx και το HLS. Εάν θέλετε να τρέξετε χωρίς το τείχος προστασίας προς το παρόν, αγνοήστε την παρακάτω ενότητα ufw.

sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable

Η ροή HLS απαιτεί μια σημαντικά διαφορετική διαμόρφωση Nginx από τη διαμόρφωση RTMP στο πρώτο άρθρο. Επεξεργαστείτε το nginx.confαρχείο σας για να χρησιμοποιήσετε τα ακόλουθα, αντικαθιστώντας τα στοιχεία "my-ip" και "my-stream-key" με τα στοιχεία σας. Μπορείτε να χρησιμοποιήσετε οτιδήποτε θέλετε για το "my-stream-key" είναι απλώς μια λέξη που είναι μοναδική και χρήσιμη για εσάς. Ίσως θελήσετε πρώτα να δημιουργήσετε αντίγραφα ασφαλείας του αρχικού αρχείου διαμόρφωσης και, στη συνέχεια, να επικολλήσετε τις παρεχόμενες πληροφορίες διαμόρφωσης στο πρόγραμμα επεξεργασίας, αντικαθιστώντας όλα όσα υπήρχαν εκεί:

sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf

Νέο nginx.conf:

worker_processes  1;
error_log  logs/error.log debug;
events {
worker_connections  1024;
}
rtmp {
server {
listen 1935;
allow play all;

#creates our "live" full-resolution HLS videostream from our incoming encoder stream and tells where to put the HLS video manifest and video fragments
application live {
allow play all;
live on;
record all;
record_path /video_recordings;
record_unique on;
hls on;
hls_nested on;
hls_path /HLS/live;
hls_fragment 10s;

#creates the downsampled or "trans-rated" mobile video stream as a 400kbps, 480x360 sized video
exec ffmpeg -i rtmp://192.168.254.178:1935/$app/$name -acodec copy -c:v libx264 -preset veryfast -profile:v baseline -vsync cfr -s 480x360 -b:v 400k maxrate 400k -bufsize 400k -threads 0 -r 30 -f flv rtmp://192.168.254.178:1935/mobile/$;
}

#creates our "mobile" lower-resolution HLS videostream from the ffmpeg-created stream and tells where to put the HLS video manifest and video fragments
application mobile {
allow play all;
live on;
hls on;
hls_nested on;
hls_path /HLS/mobile;
hls_fragment 10s;
}

#allows you to play your recordings of your live streams using a URL like "rtmp://my-ip:1935/vod/filename.flv"
application vod {
play /video_recordings;
}
}
}


http {
include       mime.types;
default_type  application/octet-stream;

server {
listen 80;
server_name 192.168.254.178;

#creates the http-location for our full-resolution (desktop) HLS stream - "http://my-ip/live/my-stream-key/index.m3u8"      
location /live {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/live;
add_header Cache-Control no-cache;
}

#creates the http-location for our mobile-device HLS stream - "http://my-ip/mobile/my-stream-key/index.m3u8"        
location /mobile {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/mobile;
add_header Cache-Control no-cache;
}   

#allows us to see how stats on viewers on our Nginx site using a URL like: "http://my-ip/stats"     
location /stats {
stub_status;
}

#allows us to host some webpages which can show our videos: "http://my-ip/my-page.html"     
location / {
root   html;
index  index.html index.htm;
}   
}
}

Πατήστε Ctrl + X για έξοδο. Πείτε "ναι" για να αποθηκεύσετε τις αλλαγές.

Μπορείτε να βρείτε σαφείς οδηγίες και παραδείγματα των δυνατών μεταβλητών σε αυτό το nginx.confαρχείο, εάν ρωτήσετε την αγαπημένη σας μηχανή αναζήτησης για "οδηγίες nginx-rtmp". Χρησιμοποιώ το nginx-rtmp με το HLS εδώ και μερικά χρόνια, χωρίς να χρησιμοποιώ τις οδηγίες "να επιτρέπεται δημοσίευση" και "άρνηση δημοσίευσης" και έχω δει μηδενικές περιπτώσεις ατόμων που χρησιμοποιούν/εισβάλλουν στους διακομιστές βίντεο μου. Επομένως, δεν συμπεριέλαβα αυτές τις οδηγίες εδώ. Διαβάστε και προσθέστε αυτές τις οδηγίες εάν θέλετε.

Αφού αλλάξετε το nginx.confαρχείο, πρέπει να επανεκκινήσετε το Nginx για να χρησιμοποιήσετε τη νέα διαμόρφωση:

sudo service nginx restart

Παρακολουθήστε προσεκτικά για τυχόν μηνύματα σφάλματος Nginx και αντιμετωπίστε τυχόν σφάλματα που μπορεί να έχουν προκληθεί από προβλήματα ορθογραφίας, ιδιοκτησίας φακέλου ή αδειών. Εάν δεν έχετε μηνύματα σφάλματος, τότε είστε έτοιμοι να δημιουργήσετε τη ροή κωδικοποίησης.

Πρέπει να έχετε έναν κωδικοποιητή βίντεο για να δημιουργήσετε τη ροή. Χρησιμοποιώ OBS (Λογισμικό Open Broadcaster) - το οποίο είναι ανοιχτού κώδικα και λειτουργεί καλά για μένα. Υπάρχουν και άλλες λύσεις από τις οποίες μπορείτε να επιλέξετε, οι οποίες βρίσκονται εκτός του πεδίου αυτού του σεμιναρίου. Δεν θα καλύψω τα πάντα σχετικά με τη διαμόρφωση ενός κωδικοποιητή βίντεο RTMP. Ωστόσο, όλα απαιτούν περίπου τις ίδιες μεταβλητές εισόδου. Οι βασικές ρυθμίσεις που θα χρειαστεί να εισαγάγετε για να χρησιμοποιήσετε την ακριβή μου nginx.confδιαμόρφωση και να λειτουργήσετε καλά στα περισσότερα προγράμματα αναπαραγωγής/προγράμματα περιήγησης/πλατφόρμες είναι οι εξής:

  1. Κωδικοποιητής-x264
  2. Μεταβλητός ρυθμός μετάδοσης bit (όχι CBR ή σταθερός ρυθμός μετάδοσης bit), υψηλότερη ποιότητα
  3. Μέγιστος ρυθμός bit-600 kbps
  4. Audio-Codec-AAC
  5. Μορφή ήχου-44,1 khz
  6. Ρυθμός bit ήχου-64 kbps
  7. URL FMS-"rtmp://my-ip:1935/live"
  8. Κλειδί ροής-"my-stream-key"
  9. Ανάλυση-640x480
  10. FPS (καρέ ανά δευτερόλεπτο)-30
  11. CFR (Σταθερός ρυθμός καρέ) - Ναι
  12. Διάστημα βασικών καρέ-2 δευτερόλεπτα (ένα βασικό καρέ κάθε 2 δευτερόλεπτα)
  13. x264 Κωδικοποίηση προφίλ-βασική γραμμή (μπορεί να λειτουργεί με το main—εξαρτάται από το πρόγραμμα αναπαραγωγής που χρησιμοποιείται)
  14. x264 CPU Παρούσα-πολύ γρήγορη

Συνιστώ να δοκιμάσετε διαφορετικούς κωδικοποιητές και να πειραματιστείτε μαζί τους. Μπορεί να επιθυμείτε μια ευρεία αναλογία εικόνας - ή το υλικό της κάμερας (ή άλλων εκπομπών) μπορεί να το απαιτεί. Εάν ναι, φροντίστε να αλλάξετε αυτές τις πληροφορίες στον κωδικοποιητή σας και επίσης την αναλογία διαστάσεων που αναφέρεται στην ενότητα exec-ffmpeg του nginx.confαρχείου που παρείχα. Διαφορετικά, θα έχετε κάποιες ανόητες ροές βίντεο.

Μόλις ρυθμιστεί ο κωδικοποιητής σας, μπορείτε να τα δοκιμάσετε όλα. Ξεκινήστε τον κωδικοποιητή με την κάμερα web ή κάποιο είδος δοκιμαστικής τροφοδοσίας που τρέχει σε αυτόν. Μπορείτε να δείτε τη μετάδοσή σας σε αυτό το σημείο με τη συσκευή αναπαραγωγής VLC χρησιμοποιώντας διευθύνσεις URL όπως:

http://my-ip/live/my-stream-key/index.m3u8
http://my-ip/mobile/my-stream-key/index.m3u8

Αυτά είναι για τις κύριες και τις ροές βίντεο για κινητά, αντίστοιχα. Αντικαταστήστε το IP και το κλειδί ροής ανάλογα.

Αφού μεταδώσετε με επιτυχία την πρώτη σας ροή, ελέγξτε (μέσω ssh ή ftp) ότι η ζωντανή μετάδοσή σας καταγράφηκε στο /video_recordingsφάκελο του Vultr VPS. Μπορείτε επίσης να δοκιμάσετε να παίξετε αυτό το εγγεγραμμένο αρχείο σε VLC με μια διεύθυνση URL όπως:

rtmp://my-ip/vod/filename.flv

Τα στατιστικά Nginx είναι επίσης διαθέσιμα (με Nginx stub_status). Για να δείτε τα στατιστικά των επισκεπτών/θεατών, αποκτήστε πρόσβαση:

http://my-ip/stats

Για να δείτε το βίντεό σας σε μια ιστοσελίδα, θα χρειαστείτε ένα πρόγραμμα αναπαραγωγής με δυνατότητα ενσωμάτωσης. Υπάρχουν πολλές διαθέσιμες ενσωματωμένες συσκευές αναπαραγωγής που θα αναπαράγουν βίντεο HLS. Χρησιμοποιώ το JW Player εδώ και μερικά χρόνια, αλλά η δωρεάν έκδοση δεν θα παίζει HLS. Το Flowplayer και το Bitdash της Bitmovin (μεταξύ άλλων λύσεων) είναι αρκετά γενναιόδωρα ώστε να προσφέρουν μια μη εμπορική έκδοση των παικτών τους δωρεάν, η οποία θα καταστήσει τη ροή HLS σας ενσωματωμένη σε μια ιστοσελίδα. Για αυτό το άρθρο, τα δοκίμασα και τα δύο και βρήκα ότι και τα δύο λειτουργούν αρκετά καλά με τον διακομιστή βίντεο που βασίζεται σε Vultr/Nginx. Θα δείξω εν συντομία πώς έφτιαξα το Flowplayer με το μηχάνημα δοκιμαστικής κλίνης μου.

Εάν πρόκειται να χρησιμοποιήσετε τη ζωντανή ροή HLS με οποιονδήποτε κανονικό, διαρκή ή εμπορικό τρόπο, θα σας συνιστούσα να αγοράσετε μια άδεια από το Flowplayer ή όποιον παίκτη αποφασίσετε να χρησιμοποιήσετε. Θα λάβετε ένα πρόγραμμα αναπαραγωγής που έχει λιγότερους περιορισμούς, περισσότερες δυνατότητες και μπορεί να χαρακτηριστεί για τον οργανισμό σας. Θα λάβετε επίσης υποστήριξη - κάτι που μπορεί να είναι πολύ σημαντικό. Εκτός από το Vultr VPS, αυτό είναι πραγματικά το μόνο κόστος που σχετίζεται με το έργο.

Προτού κάνετε οτιδήποτε άλλο, είναι σημαντικό να φροντίσετε τους λεγόμενους περιορισμούς "διατομής", οι οποίοι διαφορετικά θα απέκλειαν τη δυνατότητά σας να μεταδίδετε ροή σε μια ιστοσελίδα/ιστότοπο. Δημιουργήστε ένα crossdomain.xmlαρχείο στο nginx/htmlφάκελό σας και βάλτε οδηγίες σε αυτό για να επιτρέψετε τη ροή δεδομένων μεταξύ των τομέων:

sudo nano /usr/local/nginx/html/crossdomain.xml

Πρώτα αντιγράψτε (από αυτήν τη σελίδα) και, στη συνέχεια, επικολλήστε (κάντε δεξί κλικ) στο πεδίο επεξεργασίας nano τα ακόλουθα δεδομένα XML:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

Πατήστε Ctrl + O για να γράψετε έξω και μετά Ctrl + X για να αποθηκεύσετε το αρχείο στο δίσκο και να βγείτε.

Έπιασα την HTML5 (έκδοση 6.0.3) του Flowplayer που μου έδωσε έναν αριθμό αρχείων και έναν φάκελο όταν αποσυμπιέστηκε. Ανέβασα όλα τα αρχεία και τον φάκελο σε έναν υποφάκελο του ριζικού φακέλου Nginx/HTML τον οποίο ονόμασα "flowplayer". Η ακριβής διαδρομή ήταν /usr/local/nginx/html/flowplayer.

Για να δοκιμάσετε το βίντεό μας όταν είναι ενσωματωμένο σε μια ιστοσελίδα, δημιουργήστε μερικά αρχεία HTML στη ρίζα του φακέλου Nginx/HTML χρησιμοποιώντας το nano και συμπληρώστε τα με τα ακόλουθα περιεχόμενα.

Αρχείο:

sudo nano /usr/local/nginx/html/hls.html

Κώδικας HTML:

<!doctype html>
<head>
<link rel="stylesheet" href="#">
</head>

<body>
640x480 664kbps (live) Desktop Browsers<br>
<div style="width:640px;" class="flowplayer" data-swf="flowplayer/flowplayer.swf" data-ratio="0.75">
<video>
<source type="application/x-mpegurl" src="">
</video>
</div>
<br><br>
480x360 464kbps (mobile) Mobile Browsers <br>
<div style="width:480px;" class="flowplayer" data-swf="flowplayer/flowplayer.swf" data-ratio="0.75">
<video>
<source type="application/x-mpegurl" src="">
</video>
</div>
</body>

Αρχείο:

sudo nano /usr/local/nginx/html/hls_progressive.html

Κώδικας HTML:

<!doctype html>
<head>
<link rel="stylesheet" href="#">
<style> .flowplayer { width: 640px; } </style>
</head>

<body>
<div class="flowplayer" data-swf="flowplayer/flowplayer.swf" data-ratio="0.75">
<video>
<source type="application/x-mpegurl" src=""> 
<source type="application/x-mpegurl" src="">
</video>
</div>
<br>
</body>

Φροντίστε να αντικαταστήσετε τα "my-ip" και "my-stream-key" με τα δεδομένα σας.

Πρέπει να αντικαταστήσετε τη διαδρομή flowplayer/skin/functional.cssγια το σύμβολο "#" στο φύλλο στυλ href="#". Το λογισμικό εκμάθησης αφαιρεί τη διαδρομή. Πρέπει να συμπληρώσετε μια διεύθυνση URL στο src=""τμήμα - αφαιρείται από το λογισμικό εκμάθησης, χρήση http://my-ip/live/my-stream-key/index.m3u8και http://my-ip/mobile/my-stream-key/index.m3u8, αντίστοιχα. Πρέπει επίσης να προσθέσετε srcετικέτες σεναρίου στο κεφάλι και για τα δύο jquery-1.11.2.min.jsκαι για το flowplayer.min.js. Οι ετικέτες αφαιρούνται από το λογισμικό εκμάθησης. Μπορείτε να βρείτε πώς να δημιουργήσετε αυτές τις ετικέτες κοιτάζοντας το example htmlαρχείο που περιλαμβάνεται στο κιτ Flowplayer.

Ξεκινήστε τον κωδικοποιητή με την κάμερα web ή κάποιο είδος δοκιμαστικής τροφοδοσίας που τρέχει σε αυτόν. Μπορείτε να δείτε τη μετάδοσή σας σε ένα πρόγραμμα περιήγησης χρησιμοποιώντας τις ακόλουθες διευθύνσεις URL:

http://my-ip/hls.html
http://my-ip/hls_progressive.html

Η πρώτη σελίδα δείχνει απλώς κάθε ροή σας - την κύρια και την πλατφόρμα για κινητά. Θα μπορείτε να τα ξεκινήσετε και τα δύο και να τα δείτε. Θα παρατηρήσετε ότι η ροή της πλατφόρμας για κινητά είναι μικρότερη σε μέγεθος. Αυτά τα βήματα είναι απλώς για να βεβαιωθείτε ότι όλα λειτουργούν.

Η δεύτερη σελίδα δείχνει μια ενιαία ροή. Αλλά έχει στηθεί με έναν τρόπο που ονομάζεται "προοδευτική ροή". Αυτό σημαίνει ότι όταν ένας θεατής παίζει το βίντεο, τόσο ο διακομιστής όσο και το πρόγραμμα αναπαραγωγής προσπαθούν να δώσουν στον θεατή τη ροή υψηλής ταχύτητας bit και υψηλής ποιότητας, εάν η σύνδεση των θεατών μπορεί να τη διατηρήσει. Εάν η σύνδεσή τους είναι κακή και δεν μπορεί να διατηρήσει τη σύνδεση, μεταβαίνει προς τα κάτω για να εμφανίσει τη ροή χαμηλότερου bitrate (κινητό) που είναι 200 ​​kbps χαμηλότερο σε εύρος ζώνης. Εάν το επιθυμείτε, θα μπορούσατε να δημιουργήσετε πιο διαβαθμισμένες, προοδευτικές ροές με το ffmpeg και να τις διαμορφώσετε χρησιμοποιώντας το παράδειγμά μου.

Δοκίμασα αυτήν τη διαμόρφωση σε έναν πυρήνα, 1 GB Vultr VPS και διαπίστωσα ότι με μία μόνο ζωντανή ροή, συν τη ροή κινητής τηλεφωνίας με trans-rated που δημιουργεί με το ffmpeg, η χρήση της CPU ήταν μικρότερη από 35% και είχε καταναλώσει μόνο 100 MB το 1 GB της ram μου. Τώρα αυτό είναι μια πολύ αποτελεσματική ρύθμιση.

Εάν σκοπεύετε να κάνετε ροή βίντεο που είναι πολύ μεγαλύτερο σε διαστάσεις pixel από το SD, μπορεί να διαπιστώσετε ότι πρέπει να χρησιμοποιήσετε ένα πιο ισχυρό VPS. Ήμουν περίεργος για αυτό και έτρεξα την κύρια ροή μου έως και 1280x960 pixel και 2Mbps - επιβαρύνοντας επιπλέον τα πράγματα. Αλλά το VPS εξακολουθούσε να χρησιμοποιεί μόνο 50% CPU και η χρήση μνήμης παρέμεινε στα 100 MB. Πρόσθεσα μια ντουζίνα θεατές/προγράμματα περιήγησης και δεν είχε σχεδόν καμία διαφορά στο φόρτο στο VPS—μόνο το εύρος ζώνης που χρησιμοποιήθηκε αυξήθηκε. Είμαι βέβαιος ότι η δημιουργία πρόσθετων ροών μεταφρασμένης αξιολόγησης με το ffmpeg θα συνεχίσει να επιβαρύνει επιπλέον το σύστημα.

Έχω χρησιμοποιήσει αυτόν τον τύπο διακομιστή σε περιβάλλοντα παραγωγής με μεταξύ 50 και 100 ταυτόχρονους χρήστες και διαπίστωσα ότι η χρήση των πόρων αυξήθηκε πολύ λίγο με την αύξηση των συνδέσεων θεατών. Πειραματιστείτε με αυτό. Αλλά νομίζω ότι οι περισσότεροι χρήστες θα ήταν ευχαριστημένοι χρησιμοποιώντας ένα μονοπύρηνο VPS 1 GB. Απολαύστε τον νέο σας διακομιστή ροής HLS!


Δημιουργία ιστολογίου Jekyll στο Ubuntu 16.04

Δημιουργία ιστολογίου Jekyll στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Jekyll είναι μια εξαιρετική εναλλακτική λύση στο WordPress για blogging ή κοινή χρήση περιεχομένου. Δεν απαιτεί βάσεις δεδομένων και είναι πολύ εύκολο

Πώς να εγκαταστήσετε το Squid Proxy στο CentOS

Πώς να εγκαταστήσετε το Squid Proxy στο CentOS

Το Squid είναι ένα δημοφιλές, δωρεάν πρόγραμμα Linux που σας επιτρέπει να δημιουργήσετε έναν διακομιστή μεσολάβησης web προώθησης. Σε αυτόν τον οδηγό, θα δείτε πώς να εγκαταστήσετε το Squid στο CentOS για να σας μετατρέψει

Πώς να εγκαταστήσετε το Memcached στο Ubuntu 14.04

Πώς να εγκαταστήσετε το Memcached στο Ubuntu 14.04

Το Memcached είναι ένα σύστημα βάσης δεδομένων υψηλής απόδοσης που μπορεί να βοηθήσει στην υπερφόρτιση της εφαρμογής σας. Είναι πολύ γρήγορο καθώς δεν γράφει στο δίσκο, αλλά αντίθετα t

Εγκατάσταση του InfluxDB στο Ubuntu 14

Εγκατάσταση του InfluxDB στο Ubuntu 14

Εισαγωγή Το InfluxDB είναι μια βάση δεδομένων ανοιχτού κώδικα, κατανεμημένης χρονολογικής σειράς, χωρίς εξωτερικές εξαρτήσεις. Ναι, διαβάσατε την παρ. χωρίς εξωτερικές εξαρτήσεις

Ρύθμιση Fail2ban Ubuntu x64

Ρύθμιση Fail2ban Ubuntu x64

Το Fail2ban είναι ένα πρόγραμμα που παρακολουθεί τη δραστηριότητα σύνδεσης στον διακομιστή σας και αποκλείει τις προσβλητικές διευθύνσεις IP. Από προεπιλογή, θα μπλοκάρει τις διευθύνσεις IP για 10 λεπτά

Ρύθμιση του Red5 Media Server στο Ubuntu 16.04

Ρύθμιση του Red5 Media Server στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Red5 είναι ένας διακομιστής πολυμέσων ανοιχτού κώδικα που υλοποιείται σε Java που σας επιτρέπει να εκτελείτε εφαρμογές Flash πολλών χρηστών, όπως η ζωντανή ροή

Πώς να εγκαταστήσετε το Vanilla Forum στο Ubuntu 16.04

Πώς να εγκαταστήσετε το Vanilla Forum στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Vanilla forum είναι μια εφαρμογή φόρουμ ανοιχτού κώδικα γραμμένη σε PHP. Είναι πλήρως προσαρμόσιμο, εύκολο στη χρήση και υποστηρίζει εξωτερικά

Πώς να εγκαταστήσετε το Kanboard στο Ubuntu 18.04 LTS

Πώς να εγκαταστήσετε το Kanboard στο Ubuntu 18.04 LTS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Kanboard είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα λογισμικού διαχείρισης έργων που έχει σχεδιαστεί για να διευκολύνει και να οπτικοποιήσει

Πώς να εγκαταστήσετε το Kanboard στο Debian 9

Πώς να εγκαταστήσετε το Kanboard στο Debian 9

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το Kanboard είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα λογισμικού διαχείρισης έργων που έχει σχεδιαστεί για να διευκολύνει και να οπτικοποιήσει

Πώς να εγκαταστήσετε το Tiny Tiny RSS Reader σε ένα FreeBSD 11 FAMP VPS

Πώς να εγκαταστήσετε το Tiny Tiny RSS Reader σε ένα FreeBSD 11 FAMP VPS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Tiny Tiny RSS Reader είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα ανάγνωσης και συγκέντρωσης ειδήσεων (RSS/Atom) που φιλοξενείται από τον εαυτό του και έχει σχεδιαστεί για

Πώς να εγκαταστήσετε το Gitea στο Debian 9

Πώς να εγκαταστήσετε το Gitea στο Debian 9

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Gitea είναι ένα εναλλακτικό ανοιχτού κώδικα, αυτο-φιλοξενούμενο σύστημα ελέγχου έκδοσης που υποστηρίζεται από το Git. Το Gitea είναι γραμμένο στα Golang και είναι

Πώς να εγκαταστήσετε το Wiki.js στο FreeBSD 11

Πώς να εγκαταστήσετε το Wiki.js στο FreeBSD 11

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Wiki.js είναι μια δωρεάν και ανοιχτού κώδικα, σύγχρονη εφαρμογή wiki που βασίζεται σε Node.js, MongoDB, Git και Markdown. Ο πηγαίος κώδικας του Wiki.js είναι δημόσιος

Πώς να εγκαταστήσετε το Gitea στο Ubuntu 18.04

Πώς να εγκαταστήσετε το Gitea στο Ubuntu 18.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Gitea είναι ένα εναλλακτικό ανοιχτού κώδικα, αυτο-φιλοξενούμενο σύστημα ελέγχου έκδοσης που τροφοδοτείται από το git. Το Gitea είναι γραμμένο στα Golang και είναι

Πώς να εγκαταστήσετε το Thelia 2.3 στο Debian 9

Πώς να εγκαταστήσετε το Thelia 2.3 στο Debian 9

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Thelia είναι ένα εργαλείο ανοιχτού κώδικα για τη δημιουργία ιστοσελίδων ηλεκτρονικού επιχειρείν και τη διαχείριση διαδικτυακού περιεχομένου γραμμένου σε PHP. Πηγαίος κώδικας Thelia i

Πώς να εγκαταστήσετε το Microweber στο CentOS 7

Πώς να εγκαταστήσετε το Microweber στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Microweber είναι ένα ανοικτού κώδικα μεταφοράς και απόθεσης CMS και ηλεκτρονικό κατάστημα. Ο πηγαίος κώδικας Microweber φιλοξενείται στο GitHub. Αυτός ο οδηγός θα σας δείξει

Πώς να εγκαταστήσετε το MODX Revolution σε ένα Ubuntu 16.04 LAMP VPS

Πώς να εγκαταστήσετε το MODX Revolution σε ένα Ubuntu 16.04 LAMP VPS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το MODX Revolution είναι ένα γρήγορο, ευέλικτο, επεκτάσιμο, δωρεάν και ανοιχτού κώδικα, εταιρικό Σύστημα Διαχείρισης Περιεχομένου (CMS) γραμμένο i

Πώς να εγκαταστήσετε το Vanilla Forum στο CentOS 7

Πώς να εγκαταστήσετε το Vanilla Forum στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Vanilla forum είναι μια εφαρμογή φόρουμ ανοιχτού κώδικα γραμμένη σε PHP. Είναι πλήρως προσαρμόσιμο, εύκολο στη χρήση και υποστηρίζει εξωτερικά

Πώς να εγκαταστήσετε το Mattermost 4.1 στο CentOS 7

Πώς να εγκαταστήσετε το Mattermost 4.1 στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Mattermost είναι μια εναλλακτική λύση ανοιχτού κώδικα, που φιλοξενείται από τον εαυτό της στην υπηρεσία ανταλλαγής μηνυμάτων Slack SAAS. Με άλλα λόγια, με το Mattermost, μπορείτε περίπου

Πώς να εγκαταστήσετε το dotCMS στο Ubuntu 16.04

Πώς να εγκαταστήσετε το dotCMS στο Ubuntu 16.04

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το DotCMS είναι ένα ανοιχτού κώδικα, εταιρικό σύστημα διαχείρισης περιεχομένου γραμμένο σε Java. Περιέχει σχεδόν κάθε χαρακτηριστικό που απαιτείται

Πώς να εγκαταστήσετε το Pagekit 1.0 CMS σε ένα FreeBSD 11 FAMP VPS

Πώς να εγκαταστήσετε το Pagekit 1.0 CMS σε ένα FreeBSD 11 FAMP VPS

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Pagekit 1.0 CMS είναι ένα όμορφο, αρθρωτό, επεκτάσιμο και ελαφρύ, δωρεάν και ανοιχτού κώδικα Σύστημα Διαχείρισης Περιεχομένου (CMS) με

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα