Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| logiciel:reseau:http:serveur:nginx:raspi:start [2024/09/21 10:43] – supprimée - modification externe (Unknown date) 127.0.0.1 | logiciel:reseau:http:serveur:nginx:raspi:start [2024/09/21 10:43] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ====== Nginx sur RaspBerry Pi : le serveur Web hautes performances (LEMP) ====== | ||
| + | |||
| + | Voir **[[logiciel: | ||
| + | |||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | * **[[tutoriel: | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | < | ||
| + | - Mettez à jour les sources :<cli prompt=' | ||
| + | - Installez Nginx sur le Raspberry :<cli prompt=' | ||
| + | - Démarrez Nginx, activez-le pour être lancé au démarrage et démarrez le service :<cli prompt=' | ||
| + | pi@framboise: | ||
| + | - Vérifiez que Nginx est bien démarré :<cli prompt=' | ||
| + | active</ | ||
| + | - **Vérifiez** que tout fonctionne : sur votre PC, dans votre navigateur Internet, ouvrez votre serveur [[http:// | ||
| + | Quand vous tapez l' | ||
| + | |||
| + | L' | ||
| + | |||
| + | N' | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | L' | ||
| + | < | ||
| + | /etc/nginx/ | ||
| + | ├── nginx.conf | ||
| + | ├── conf.d | ||
| + | ├── modules-available | ||
| + | ├── modules-enabled | ||
| + | │ └── ... | ||
| + | ├── sites-available | ||
| + | │ └── default | ||
| + | ├── sites-enabled | ||
| + | │ └── default -> / | ||
| + | ├── snippets | ||
| + | │ └── ... | ||
| + | └── ... | ||
| + | </ | ||
| + | * Le dossier **sites-available** contient les fichiers de configuration des sites | ||
| + | * Le dossier **sites-enabled** permet de les lancer en production. | ||
| + | </ | ||
| + | |||
| + | ===== Configuration ===== | ||
| + | |||
| + | Le fichier de configuration de **nginx** est / | ||
| + | |||
| + | Au lieu de toucher au fichier / | ||
| + | * **configuration** : des fichiers dans le répertoire **/ | ||
| + | * **hôtes virtuels** : des fichiers dans le répertoire **/ | ||
| + | * Le dossier **/ | ||
| + | |||
| + | ==== Serveur par défaut ==== | ||
| + | |||
| + | < | ||
| + | - **Faites une copie du fichier / | ||
| + | Pour info, en voici le contenu : **[[logiciel: | ||
| + | Pour en savoir plus sur le fichier de configuration, | ||
| + | </ | ||
| + | - **Éditez avec les droits d' | ||
| + | # Serveur par défaut | ||
| + | server { | ||
| + | listen 80 default_server; | ||
| + | listen [::]:80 default_server; | ||
| + | | ||
| + | # Configuration SSL | ||
| + | listen 443 ssl default_server; | ||
| + | listen [::]:443 ssl default_server; | ||
| + | | ||
| + | # Note : Vous devez désactiver gzip pour le trafic SSL. | ||
| + | # Voir : https:// | ||
| + | | ||
| + | # Renseignez-vous sur ssl_ciphers pour garantir une configuration sécurisée | ||
| + | # Voir : https:// | ||
| + | | ||
| + | # Certificats auto-signés générés par le package ssl-cert | ||
| + | # Ne les utilisez pas dans un serveur de production ! | ||
| + | include snippets/ | ||
| + | | ||
| + | server_name _; | ||
| + | root / | ||
| + | | ||
| + | index index.php index.html index.htm index.nginx-debian.html; | ||
| + | | ||
| + | location / { | ||
| + | # Essai de servir la demande comme fichier, puis comme répertoire, | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | | ||
| + | # Passer les scripts PHP au serveur FastCGI | ||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | } | ||
| + | | ||
| + | # Refuser l' | ||
| + | # concorde avec celle de nginx | ||
| + | location ~ /\.ht { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Et voici le modèle pour un serveur virtuel :<code - example.com> | ||
| + | # Modèle de configuration de l' | ||
| + | # Placez ce code dans un fichier sites-available/ | ||
| + | # et créez un lien symbolique vers sites-enabled/ | ||
| + | server { | ||
| + | listen 80; | ||
| + | listen [::]:80; | ||
| + | |||
| + | server_name example.com; | ||
| + | root / | ||
| + | |||
| + | index index.php index.html index.htm; | ||
| + | |||
| + | # Certificats auto-signés générés par le package ssl-cert | ||
| + | # Ne les utilisez pas dans un serveur de production ! | ||
| + | include snippets/ | ||
| + | |||
| + | location / { | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | |||
| + | # Passer les scripts PHP au serveur FastCGI | ||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | } | ||
| + | |||
| + | # Refuser l' | ||
| + | # si la racine du document d' | ||
| + | location ~ /\.ht { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Création d'un site ==== | ||
| + | |||
| + | Le plus simple est de partir de l' | ||
| + | |||
| + | < | ||
| + | - **Recopiez le fichier modèle** :<cli prompt=' | ||
| + | - **Éditez avec les droits d' | ||
| + | server { | ||
| + | listen 80; | ||
| + | listen [::]:80; | ||
| + | | ||
| + | server_name monsite.fr; | ||
| + | root / | ||
| + | |||
| + | index index.php index.html; | ||
| + | |||
| + | location / { | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | } | ||
| + | }</ | ||
| + | - **Créez un dossier qui accueillera les fichiers de votre site** :<cli prompt=' | ||
| + | - **Créez le fichier / | ||
| + | <?php | ||
| + | class Application | ||
| + | { | ||
| + | public function __construct() | ||
| + | { | ||
| + | phpinfo(); | ||
| + | } | ||
| + | } | ||
| + | $application = new Application(); | ||
| + | ?> | ||
| + | </ | ||
| + | - **Activez votre site** en créant un lien dans le dossier sites-enabled :<cli prompt=' | ||
| + | - **Testez la configuration** :<cli prompt=' | ||
| + | nginx: the configuration file / | ||
| + | nginx: configuration file / | ||
| + | - **Si tout est Ok, redémarrez nginx** :<cli prompt=' | ||
| + | - **Pour finir**, sur le PC, allez sur votre serveur à l'aide de votre navigateur Internet. S'il affiche l' | ||
| + | </ | ||
| + | |||
| + | ==== Serveurs virtuels ==== | ||
| + | |||
| + | Pour le PHP, vérifier le contenu du répertoire | ||
| + | total 4,0K | ||
| + | srw-rw---- 1 www-data www-data 0 juil. 20 10:46 php7.3-fpm.sock | ||
| + | -rw-r--r-- 1 root | ||
| + | ===== Utilisation ===== | ||
| + | |||
| + | Exemple sur framboise : | ||
| + | |||
| + | <code - / | ||
| + | # Domaine framboise.parc | ||
| + | |||
| + | # hôte virtuel framboise.parc | ||
| + | server { | ||
| + | listen 80; | ||
| + | listen [::]:80; | ||
| + | |||
| + | server_name framboise.parc; | ||
| + | root / | ||
| + | |||
| + | | ||
| + | |||
| + | location / { | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | #~ fastcgi_pass unix:/ | ||
| + | } | ||
| + | |||
| + | location ~ /\.ht { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | # hôtes virtuels dokuwiki | ||
| + | server { | ||
| + | listen 80; | ||
| + | listen [::]:80; | ||
| + | |||
| + | server_name | ||
| + | root / | ||
| + | |||
| + | location / { | ||
| + | index index.php index.html index.htm index.nginx-debian.html; | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | #~ fastcgi_pass unix:/ | ||
| + | fastcgi_pass unix:/ | ||
| + | } | ||
| + | |||
| + | location ~ / | ||
| + | deny all; | ||
| + | } | ||
| + | |||
| + | location ~ /\.ht { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | # hôte virtuel test.framboise.parc | ||
| + | server { | ||
| + | listen 80; | ||
| + | listen [::]:80; | ||
| + | |||
| + | server_name test.framboise.parc; | ||
| + | root / | ||
| + | |||
| + | location / { | ||
| + | index index.php index.html index.htm index.nginx-debian.html; | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | #~ fastcgi_pass unix:/ | ||
| + | } | ||
| + | |||
| + | location ~ / | ||
| + | deny all; | ||
| + | } | ||
| + | |||
| + | location ~ /\.ht { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | #~ # hôte virtuel dolibarr.framboise.parc | ||
| + | server { | ||
| + | listen 80; | ||
| + | listen [::]:80; | ||
| + | |||
| + | server_name dolibarr.framboise.parc; | ||
| + | root / | ||
| + | |||
| + | location / { | ||
| + | index index.php index.html index.htm index.nginx-debian.html; | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | #~ fastcgi_pass unix:/ | ||
| + | } | ||
| + | |||
| + | location ~ / | ||
| + | deny all; | ||
| + | } | ||
| + | |||
| + | location ~ /\.ht { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | # hôte virtuel *.framboise.parc | ||
| + | server { | ||
| + | listen 80; | ||
| + | listen [::]:80; | ||
| + | |||
| + | # On récupère le sous-domaine dans la variable " | ||
| + | server_name | ||
| + | root / | ||
| + | |||
| + | | ||
| + | |||
| + | location / { | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | include snippets/ | ||
| + | fastcgi_pass unix:/ | ||
| + | #~ fastcgi_pass unix:/ | ||
| + | } | ||
| + | |||
| + | location ~ /\.ht { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Activer cet hôte :<cli prompt=' | ||
| + | |||
| + | |||
| + | ===== Désinstallation ===== | ||
| + | |||
| + | ===== Problèmes connus ===== | ||
| + | |||
| + | ===== Voir aussi ===== | ||
| + | |||
| + | * **(fr)** [[http:// | ||
| + | * **(en)** [[http:// | ||
| + | |||
| + | ---- | ||
| + | //Basé sur << [[http:// | ||