Configurez votre propre réseau privé avec OpenVPN
Vultr vous offre une connectivité réseau privée impressionnante pour les serveurs fonctionnant au même endroit. Mais parfois, vous voulez deux serveurs dans des pays différents
Nginx est un logiciel de serveur Web open source conçu avec un haut niveau de simultanéité à l'esprit, qui peut être utilisé comme serveur HTTP / HTTPS, serveur proxy inverse, serveur proxy de messagerie, équilibreur de charge logicielle, terminateur TLS, serveur de mise en cache et plus encore!
Il s'agit d'un logiciel très modulaire. Même certaines des parties apparemment «intégrées» du logiciel, telles que GZIP ou SSL, sont en fait créées en tant que modules qui peuvent être activés et désactivés pendant la construction.
Il a des modules de base (natifs) et des modules tiers (externes) créés par la communauté. À l'heure actuelle, il existe plus d'une centaine de modules tiers que nous pouvons utiliser.
Écrit en C, c'est un logiciel rapide et léger.
L'installation de Nginx à partir du code source est relativement facile - téléchargez la dernière version du code source Nginx, configurez, compilez et installez-la.
Vous devrez choisir de télécharger la version principale ou une version stable, mais leur construction est la même.
Dans ce guide, nous allons compiler une version principale de Nginx sur Debian 10 (buster). Nous utiliserons tous les modules disponibles dans la version open-source de Nginx.
Vous vous demandez probablement pourquoi compiler Nginx à partir d'une source alors que vous pouvez utiliser des packages préparés. Voici quelques raisons pour lesquelles vous voudrez peut-être compiler vous-même un logiciel spécifique:
Nginx Open Source est disponible en deux versions:
Nginx propose deux types de modules que vous pouvez utiliser: les modules de base et les modules tiers.
Les développeurs principaux de Nginx construisent des modules de base et ils font partie du logiciel lui-même.
La communauté crée des modules tiers et vous pouvez les utiliser pour étendre les fonctionnalités. Il existe de nombreux modules tiers utiles.
Des modules statiques existent dans Nginx depuis la toute première version. Des modules dynamiques ont été introduits avec Nginx 1.9.11+ en février 2016.
Avec les modules statiques, un ensemble de modules qui constituent un binaire Nginx est fixé au moment de la compilation par le ./configure
script. Utilisation de modules statiques --with-foo_bar_module
ou --add-module=PATH
syntaxe.
Pour compiler un module de base (standard) comme dynamique, nous ajoutons =dynamic
par exemple --with-http_image_filter_module=dynamic
.
Pour compiler un module tiers comme dynamique, nous utilisons la --add-dynamic-module=/path/to/module
syntaxe, puis nous les chargeons en utilisant la load_module
directive dans le contexte global du nginx.conf
fichier.
En comparaison avec certains autres logiciels UNIX / Linux, Nginx est assez léger et n'a pas beaucoup de dépendances de bibliothèque. La configuration de construction par défaut dépend de seulement 3 bibliothèques à installer: OpenSSL / LibreSSL / BoringSSL, Zlib et PCRE.
REMARQUE : Nginx peut également être compilé avec les bibliothèques de chiffrement LibreSSL et BoringSSL au lieu d'OpenSSL.
Vérifiez la version Debian.
lsb_release -ds
# Debian GNU/Linux 10 (buster)
Créez un utilisateur régulier avec sudo
accès.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
REMARQUE : remplacez johndoe
par votre nom d'utilisateur .
Passez à un nouvel utilisateur.
su - johndoe
Configurez le fuseau horaire.
sudo dpkg-reconfigure tzdata
Mettez à jour le logiciel de votre système d'exploitation.
sudo apt update && sudo apt upgrade -y
Installez les packages nécessaires.
sudo apt install -y software-properties-common ufw
Nginx est un programme écrit en C, vous devrez donc d'abord installer un outil de compilation. Installez build-essential
, git
et tree
.
sudo apt install -y build-essential git tree
Téléchargez la dernière version principale du code source Nginx et décompressez l'archive du code source. Le code source de Nginx est distribué sous forme d'archive compressée, comme la plupart des logiciels Unix et Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Téléchargez le code source des dépendances Nginx obligatoires et extrayez-le.
# 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
Installez les dépendances Nginx facultatives.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Nettoyez tous les .tar.gz
fichiers. Nous n'en avons plus besoin.
rm -rf *.tar.gz
Entrez dans le répertoire source de Nginx.
cd ~/nginx-1.17.2
Pour une bonne mesure, répertoriez les répertoires et les fichiers qui composent le code source de Nginx avec tree
.
tree -L 2 .
Copiez la page de manuel dans /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
Pour obtenir de l'aide, vous pouvez voir une liste complète des options de compilation Nginx à jour en exécutant ce qui suit.
./configure --help
# To see want core modules can be built as dynamic run:
./configure --help | grep -F =dynamic
Configurez, compilez et installez 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
Après la compilation, accédez à votre ~
répertoire home ( ).
cd ~
Lien symbolique /usr/lib/nginx/modules
vers /etc/nginx/modules
. Il s'agit d'un emplacement standard pour les modules Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Imprimez la version Nginx, la version du compilateur et configurez les paramètres de script.
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 . . .
# . . .
# . . .
Créez un groupe système et un utilisateur Nginx.
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
Vérifiez la syntaxe Nginx et les erreurs potentielles.
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
Créez un fichier d'unité systemd Nginx.
sudo vim /etc/systemd/system/nginx.service
Remplissez le /etc/systemd/system/nginx.service
fichier avec le contenu suivant.
[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
Activez Nginx pour démarrer au démarrage et démarrez Nginx immédiatement.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Vérifiez si Nginx démarre automatiquement après un redémarrage.
sudo systemctl is-enabled nginx.service
# enabled
Vérifiez le statut.
sudo systemctl status nginx.service
REMARQUE : vous pouvez vérifier que Nginx fonctionne en accédant au domaine ou à l'adresse IP de votre site dans un navigateur Web. Vous verrez la page d'accueil de Nginx. C'est un indicateur que Nginx est opérationnel sur votre VPS.
Créez un profil d'application UFW Nginx.
sudo vim /etc/ufw/applications.d/nginx
Copiez / collez le contenu suivant dans le /etc/ufw/applications.d/nginx
fichier.
[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
Validez que les profils d'application UFW sont créés et reconnus.
sudo ufw app list
# Available applications:
# Nginx Full
# Nginx HTTP
# Nginx HTTPS
# OpenSSH
Nginx, par défaut, génère des .default
fichiers de sauvegarde dans /etc/nginx
. Supprimez les .default
fichiers du /etc/nginx
répertoire.
sudo rm /etc/nginx/*.default
Placez la coloration syntaxique de la configuration Nginx pour l'éditeur Vim dans ~/.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/
REMARQUE : En effectuant l'étape ci-dessus, vous obtiendrez une belle coloration syntaxique lors de la modification des fichiers de configuration Nginx dans l'éditeur Vim.
Créer conf.d
, snippets
, sites-available
et sites-enabled
répertoires /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Modifiez les autorisations et la propriété de groupe des fichiers journaux Nginx.
sudo chmod 640 /var/log/nginx/*
sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Créez une configuration de rotation des journaux pour Nginx.
sudo vim /etc/logrotate.d/nginx
Remplissez le fichier avec le texte suivant, puis enregistrez et quittez.
/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
}
Supprimez tous les fichiers téléchargés du répertoire personnel.
cd ~
rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
C'est tout. Maintenant, vous avez installé la dernière version de Nginx. Il est compilé statiquement par rapport à certaines bibliothèques importantes comme OpenSSL. Souvent, la version d'OpenSSL fournie par le système est obsolète. En utilisant cette méthode d'installation avec une version plus récente d'OpenSSL, vous pouvez tirer parti des chiffrements modernes comme CHACHA20_POLY1305
et des protocoles comme TLS 1.3 qui sont disponibles dans OpenSSL 1.1.1
. De plus, en compilant votre propre binaire, vous êtes en mesure de personnaliser les fonctionnalités de votre Nginx, ce qui est beaucoup plus flexible que d'installer un binaire pré-construit.
Vultr vous offre une connectivité réseau privée impressionnante pour les serveurs fonctionnant au même endroit. Mais parfois, vous voulez deux serveurs dans des pays différents
Cet article vous apprendra comment configurer une prison chroot sur Debian. Je suppose que vous utilisez Debian 7.x. Si vous utilisez Debian 6 ou 8, cela peut fonctionner, bu
Introduction Un moyen facile de configurer un serveur VPN sur Debian est avec PiVPN. PiVPN est un installateur et un wrapper pour OpenVPN. Il crée des commandes simples pour vous t
Vous utilisez un système différent? Introduction Kanboard est un logiciel de gestion de projet gratuit et open source conçu pour faciliter et visualiser
Vous utilisez un système différent? Neos est une plate-forme dapplication de contenu avec un CMS et un cadre dapplication en son cœur. Ce guide vous montrera comment installer
Introduction Cacti est un outil de surveillance et de création de graphiques open source entièrement basé sur les données RRD. Grâce à Cacti, vous pouvez surveiller presque nimporte quel type de périphérique
Cet article vous montrera comment exécuter un serveur Teamspeak 3 sous Debian Wheezy. Avant de commencer, vous devez préparer votre VPS. je
Java est un langage de programmation / machine virtuelle indépendant de la plate-forme. Dans ce tutoriel, nous allons installer limplémentation OpenJDK de Java 8 sur une Debian
Introduction MySQL a une grande fonctionnalité connue sous le nom de vues. Les vues sont des requêtes stockées. Considérez-les comme un alias pour une requête autrement longue. Dans ce guide,
ModSecurity est un module de pare-feu dapplications Web open source (WAF) qui est idéal pour protéger Apache, Nginx et IIS contre diverses cyberattaques qui ciblent
Vous utilisez un système différent? Matomo (anciennement Piwik) est une plate-forme danalyse open source, une alternative ouverte à Google Analytics. La source Matomo est hébergée o
Hiawatha est un serveur Web qui a à lesprit la simplicité, la facilité dutilisation et la sécurité. Cest la solution parfaite pour les petits serveurs, le matériel plus ancien ou lembedde
Munin est un outil de surveillance pour étudier les processus et les ressources de votre machine et présente les informations sous forme de graphiques via une interface Web. Utilisez le suivi
Vous utilisez un système différent? NodeBB est un forum basé sur Node.js. Il utilise des sockets Web pour des interactions instantanées et des notifications en temps réel. Code source NodeBB i
Vous utilisez un système différent? Plesk est un panneau de contrôle dhôte Web propriétaire qui permet aux utilisateurs dadministrer leurs sites Web personnels et / ou clients, bases de données
Vous utilisez un système différent? Koel est une simple application de streaming audio personnel basée sur le Web écrite en Vue côté client et Laravel côté serveur. Koe
Vous utilisez un système différent? Introduction Docker Swarm transforme vos serveurs individuels en un cluster dordinateurs; faciliter la mise à léchelle, la haute disponibilité et
Vous utilisez un système différent? Paste 2.1 est une application pastebin simple et flexible, gratuite et open source pour stocker du code, du texte et plus encore. Cétait initial
Ici, sur Vultr, nous avons la possibilité dactiver IPv6 sur tous les VPS déployables. Mais avec cela, certains programmes et commandes peuvent préférer lun ou lautre avec
Snort est un système gratuit de détection dintrusion réseau (IDS). En termes moins officiels, il vous permet de surveiller votre réseau pour détecter toute activité suspecte en temps réel
Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau
ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.
Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+
Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.
Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus
13 outils commerciaux d'extraction de données de Big Data
Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true
Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.
Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1
L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.