Richten Sie mit OpenVPN Ihr eigenes privates Netzwerk ein
Vultr bietet Ihnen eine hervorragende Konnektivität für private Netzwerke für Server, die am selben Standort ausgeführt werden. Aber manchmal möchten Sie zwei Server in verschiedenen Ländern
Nginx ist eine Open-Source-Webserver-Software, die für hohe Parallelität entwickelt wurde und als HTTP / HTTPS-Server, Reverse-Proxy-Server, Mail-Proxy-Server, Software-Load-Balancer, TLS-Terminator, Caching-Server und mehr verwendet werden kann!
Es ist eine sehr modulare Software. Sogar einige der scheinbar "eingebauten" Teile der Software, wie GZIP oder SSL, werden tatsächlich als Module erstellt, die während der Erstellungszeit aktiviert und deaktiviert werden können.
Es verfügt über Kernmodule (native Module) und (externe) Module von Drittanbietern, die von der Community erstellt wurden. Derzeit gibt es über hundert Module von Drittanbietern, die wir verwenden können.
In C geschrieben, ist es eine schnelle und leichte Software.
Die Installation von Nginx aus dem Quellcode ist relativ einfach - laden Sie die neueste Version des Nginx-Quellcodes herunter, konfigurieren, erstellen und installieren Sie sie.
Sie müssen wählen, ob Sie die Hauptleitung oder eine stabile Version herunterladen möchten, aber das Erstellen ist dieselbe.
In diesem Handbuch werden wir eine Hauptversion von Nginx unter Debian 10 (Buster) kompilieren. Wir werden alle verfügbaren Module in der Open-Source-Version von Nginx verwenden.
Sie fragen sich wahrscheinlich, warum man Nginx aus einer Quelle kompilieren sollte, wenn Sie vorbereitete Pakete verwenden können. Hier sind einige Gründe, warum Sie bestimmte Software selbst kompilieren möchten:
Nginx Open Source ist in zwei Versionen erhältlich:
Nginx verfügt über zwei Modultypen, die Sie verwenden können: Kernmodule und Module von Drittanbietern.
Die Kernentwickler von Nginx erstellen Kernmodule und sind Teil der Software selbst.
Die Community erstellt Module von Drittanbietern, mit denen Sie die Funktionalität erweitern können. Es gibt viele hilfreiche Module von Drittanbietern.
Statische Module sind in Nginx ab der ersten Version vorhanden. Dynamische Module wurden im Februar 2016 mit Nginx 1.9.11+ eingeführt.
Bei statischen Modulen wird eine Reihe von Modulen, die eine Nginx-Binärdatei bilden, zur Kompilierungszeit vom ./configure
Skript festgelegt. Statische Module verwenden --with-foo_bar_module
oder --add-module=PATH
Syntax.
Um ein Kernmodul (Standardmodul) als dynamisch zu kompilieren, fügen wir =dynamic
beispielsweise hinzu --with-http_image_filter_module=dynamic
.
Um ein Modul eines Drittanbieters als dynamisch zu kompilieren, verwenden wir die --add-dynamic-module=/path/to/module
Syntax und laden sie dann mithilfe der load_module
Direktive im globalen Kontext der nginx.conf
Datei.
Im Vergleich zu anderen UNIX / Linux-Programmen ist Nginx ziemlich leicht und weist nicht viele Bibliotheksabhängigkeiten auf. Die Standard-Build-Konfiguration hängt von nur 3 zu installierenden Bibliotheken ab: OpenSSL / LibreSSL / BoringSSL, Zlib und PCRE.
1.0.2
- 1.1.1
oder LibreSSL- Bibliothek oder BoringSSL- Bibliothek1.1.3
-1.2.11
4.4
-8.43
HINWEIS : Nginx kann anstelle von OpenSSL auch für LibreSSL- und BoringSSL-Kryptobibliotheken kompiliert werden.
Überprüfen Sie die Debian-Version.
lsb_release -ds
# Debian GNU/Linux 10 (buster)
Erstellen Sie einen regulären Benutzer mit sudo
Zugriff.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
HINWEIS : Ersetzen Sie johndoe
durch Ihren Benutzernamen .
Wechseln Sie zu einem neuen Benutzer.
su - johndoe
Richten Sie die Zeitzone ein.
sudo dpkg-reconfigure tzdata
Aktualisieren Sie die Software Ihres Betriebssystems.
sudo apt update && sudo apt upgrade -y
Installieren Sie die erforderlichen Pakete.
sudo apt install -y software-properties-common ufw
Nginx ist ein in C geschriebenes Programm, daher müssen Sie zuerst ein Compiler-Tool installieren. Installieren build-essential
, git
und tree
.
sudo apt install -y build-essential git tree
Laden Sie die neueste Hauptversion des Nginx-Quellcodes herunter und entpacken Sie das Quellcodearchiv. Nginx-Quellcode wird wie die meisten Unix- und Linux-Programme als komprimiertes Archiv verteilt.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Laden Sie den Quellcode der obligatorischen Nginx-Abhängigkeiten herunter und extrahieren Sie ihn.
# PCRE version 8.43
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.tar.gz
# zlib version 1.2.11
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
# OpenSSL version 1.1.1c
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz
Installieren Sie optionale Nginx-Abhängigkeiten.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Bereinigen Sie alle .tar.gz
Dateien. Wir brauchen sie nicht mehr.
rm -rf *.tar.gz
Geben Sie das Nginx-Quellverzeichnis ein.
cd ~/nginx-1.17.2
Für gute Maßnahmen Listenverzeichnisse und Dateien, mit denen Nginx-Quellcode erstellt wird tree
.
tree -L 2 .
Kopieren Sie die Handbuchseite nach /usr/share/man/man8/
.
sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8
sudo gzip /usr/share/man/man8/nginx.8
ls /usr/share/man/man8/ | grep nginx.8.gz
# Check that man page for Nginx is working
man nginx
Um Hilfe zu erhalten, können Sie eine vollständige Liste der aktuellen Nginx-Optionen zur Kompilierungszeit anzeigen, indem Sie Folgendes ausführen.
./configure --help
# To see want core modules can be built as dynamic run:
./configure --help | grep -F =dynamic
Konfigurieren, kompilieren und installieren Sie Nginx.
./configure --prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--build=Debian \
--builddir=nginx-1.17.2 \
--with-select_module \
--with-poll_module \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-perl_modules_path=/usr/share/perl/5.26.1 \
--with-perl=/usr/bin/perl \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre=../pcre-8.43 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.1c \
--with-openssl-opt=no-nextprotoneg \
--with-debug
make
sudo make install
Navigieren Sie nach der Kompilierung zu Ihrem home ( ~
) -Verzeichnis.
cd ~
Symlink /usr/lib/nginx/modules
zu /etc/nginx/modules
. Dies ist ein Standardplatz für Nginx-Module.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Drucken Sie die Nginx-Version, die Compiler-Version und konfigurieren Sie die Skriptparameter.
sudo nginx -V
# nginx version: nginx/1.17.2 (Debian)
# built by gcc 8.3.0 (Debian 8.3.0-6)
# built with OpenSSL 1.1.1c 28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . .
# . . .
# . . .
Erstellen Sie eine Nginx-Systemgruppe und einen Benutzer.
sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx
# Check that user and group are created
sudo tail -n 1 /etc/passwd /etc/group /etc/shadow
Überprüfen Sie die Nginx-Syntax und mögliche Fehler.
sudo nginx -t
# Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
# Create NGINX cache directories and set proper permissions
sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*
# Re-check syntax and potential errors.
sudo nginx -t
Erstellen Sie eine Nginx-Systemd-Einheitendatei.
sudo vim /etc/systemd/system/nginx.service
Füllen Sie die /etc/systemd/system/nginx.service
Datei mit dem folgenden Inhalt.
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
Aktivieren Sie Nginx, um beim Booten zu starten und Nginx sofort zu starten.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Überprüfen Sie, ob Nginx nach einem Neustart automatisch gestartet wird.
sudo systemctl is-enabled nginx.service
# enabled
Überprüfen Sie den Status.
sudo systemctl status nginx.service
HINWEIS : Sie können überprüfen, ob Nginx ausgeführt wird, indem Sie in einem Webbrowser zur Domain oder IP-Adresse Ihrer Site wechseln. Sie sehen die Nginx-Begrüßungsseite. Dies ist ein Indikator dafür, dass Nginx auf Ihrem VPS aktiv ist.
Erstellen Sie ein UFW Nginx-Anwendungsprofil.
sudo vim /etc/ufw/applications.d/nginx
Kopieren Sie den folgenden Inhalt und fügen Sie ihn in die /etc/ufw/applications.d/nginx
Datei ein.
[Nginx HTTP]
title=Web Server (Nginx, HTTP)
description=Small, but very powerful and efficient web server
ports=80/tcp
[Nginx HTTPS]
title=Web Server (Nginx, HTTPS)
description=Small, but very powerful and efficient web server
ports=443/tcp
[Nginx Full]
title=Web Server (Nginx, HTTP + HTTPS)
description=Small, but very powerful and efficient web server
ports=80,443/tcp
Überprüfen Sie, ob UFW-Anwendungsprofile erstellt und erkannt werden.
sudo ufw app list
# Available applications:
# Nginx Full
# Nginx HTTP
# Nginx HTTPS
# OpenSSH
Nginx generiert standardmäßig Sicherungsdateien .default
in /etc/nginx
. .default
Dateien aus dem /etc/nginx
Verzeichnis entfernen .
sudo rm /etc/nginx/*.default
Platzieren Sie die Syntaxhervorhebung der Nginx-Konfiguration für den Vim-Editor in ~/.vim
.
# For regular non-root user
mkdir ~/.vim/
cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/
# For root user
sudo mkdir /root/.vim/
sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/
HINWEIS : Wenn Sie den obigen Schritt ausführen, erhalten Sie eine schöne Syntaxhervorhebung, wenn Sie Nginx-Konfigurationsdateien im Vim-Editor bearbeiten.
Erstellen Sie conf.d
, snippets
, sites-available
und sites-enabled
Verzeichnisse in /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Ändern Sie die Berechtigungen und den Gruppenbesitz von Nginx-Protokolldateien.
sudo chmod 640 /var/log/nginx/*
sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Erstellen Sie eine Protokollrotationskonfiguration für Nginx.
sudo vim /etc/logrotate.d/nginx
Füllen Sie die Datei mit dem folgenden Text, speichern Sie sie und beenden Sie sie.
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Entfernen Sie alle heruntergeladenen Dateien aus dem Home-Verzeichnis.
cd ~
rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
Das ist es. Jetzt haben Sie die neueste Version von Nginx installiert. Es wird statisch gegen einige wichtige Bibliotheken wie OpenSSL kompiliert. Oft ist die vom System bereitgestellte Version von OpenSSL veraltet. Mit dieser Installationsmethode mit einer neueren Version von OpenSSL können Sie moderne Chiffren wie CHACHA20_POLY1305
und Protokolle wie TLS 1.3 nutzen, die in OpenSSL verfügbar sind 1.1.1
. Darüber hinaus können Sie durch Kompilieren Ihrer eigenen Binärdatei anpassen, welche Funktionen Ihr Nginx bietet. Dies ist viel flexibler als die Installation einer vorgefertigten Binärdatei.
Vultr bietet Ihnen eine hervorragende Konnektivität für private Netzwerke für Server, die am selben Standort ausgeführt werden. Aber manchmal möchten Sie zwei Server in verschiedenen Ländern
Dieses Tutorial führt Sie durch die Installation des Yunohost Complete Server-Kontrollfelds unter Debian. Folgen Sie einfach dem Tutorial und Ihr Server wird in Betrieb sein
In diesem Artikel erfahren Sie, wie Sie unter Debian ein Chroot-Gefängnis einrichten. Ich gehe davon aus, dass Sie Debian 7.x verwenden. Wenn Sie Debian 6 oder 8 ausführen, funktioniert dies möglicherweise, bu
Einführung Eine einfache Möglichkeit, einen VPN-Server unter Debian einzurichten, ist PiVPN. PiVPN ist ein Installationsprogramm und ein Wrapper für OpenVPN. Es werden einfache Befehle für Sie erstellt
Einführung Cacti ist ein Open-Source-Überwachungs- und Grafiktool, das vollständig auf RRD-Daten basiert. Mit Cacti können Sie nahezu jede Art von Gerät überwachen
Dieser Artikel zeigt Ihnen, wie Sie einen Teamspeak 3-Server unter Debian Wheezy ausführen. Bevor Sie damit beginnen können, sollten Sie einige Vorbereitungen für Ihr VPS treffen. ich
Einführung MySQL verfügt über eine großartige Funktion, die als Ansichten bezeichnet wird. Ansichten sind gespeicherte Abfragen. Stellen Sie sich diese als Alias für eine ansonsten lange Abfrage vor. In diesem Handbuch
ModSecurity ist ein WAF-Modul (Open Source Web Application Firewall), mit dem Apache, Nginx und IIS vor verschiedenen Cyberangriffen geschützt werden können
Hiawatha ist ein Webserver, der Einfachheit, Benutzerfreundlichkeit und Sicherheit im Auge hat. Es ist die perfekte Lösung für kleinere Server, ältere Hardware oder Embedde
Einführung Lynis ist ein kostenloses Open-Source-Tool zur Systemprüfung, das von vielen Systemadministratoren verwendet wird, um die Integrität zu überprüfen und ihre Systeme zu härten. ich
Munin ist ein Überwachungstool zur Überwachung von Prozessen und Ressourcen in Ihrer Maschine und präsentiert die Informationen in Diagrammen über eine Weboberfläche. Verwenden Sie die folgenden
Verwenden Sie ein anderes System? NodeBB ist ein Node.js-basiertes Forum. Es verwendet Web-Sockets für sofortige Interaktionen und Echtzeitbenachrichtigungen. NodeBB-Quellcode i
Verwenden Sie ein anderes System? BigTree CMS 4.2 ist ein schnelles und leichtes, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen mit umfangreichen Funktionen
Verwenden Sie ein anderes System? Koel ist eine einfache webbasierte persönliche Audio-Streaming-App, die auf der Clientseite in Vue und auf der Serverseite in Laravel geschrieben wurde. Koe
Verwenden Sie ein anderes System? Einführung Docker Swarm verwandelt Ihre einzelnen Server in einen Computercluster. Erleichterung der Skalierung, Hochverfügbarkeit an
Verwenden Sie ein anderes System? Paste 2.1 ist eine einfache und flexible, kostenlose und Open-Source-Pastebin-Anwendung zum Speichern von Code, Text und mehr. Es war ursprünglich
Hier bei Vultr haben wir die Option, IPv6 auf allen bereitstellbaren VPS zu aktivieren. Aber damit bevorzugen einige Programme und Befehle den einen oder anderen Witz
Verwenden Sie ein anderes System? Einführung Automad ist ein Open Source File-basiertes Content Management System (CMS) und eine in PHP geschriebene Template Engine. Automa
Verwenden Sie ein anderes System? Apache Cassandra ist ein kostenloses und Open-Source-NoSQL-Datenbankverwaltungssystem, das Skalierbarkeit bietet
Snort ist ein kostenloses Network Intrusion Detection System (IDS). In weniger offiziellen Begriffen können Sie Ihr Netzwerk in Echtzeit auf verdächtige Aktivitäten überwachen
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.