Dans ce guide, nous allons apprendre à installer Nginx dans OpenSUSE Leap 15.3 et à le configurer en tant que serveur proxy. Nous allons mettre en place un hôte virtuel Nginx qui transmettra une requête d'un domaine à un service écoutant sur un port.
Contenu associé
- Comment installer et configurer PHP et Nginx (LEMP) sur Ubuntu 20.04
- Comment installer la pile Apache PHP 7.4 (LAMP) sur Rocky Linux/Centos 8
- Comment installer et configurer PHP et Nginx (LEMP) sur Debian 11
- Comment installer et configurer PHP et Apache (pile LAMP) sur Debian 11
Table des matières
- S'assurer que le serveur est à jour
- Installer Nginx sur OpenSUSE Leap 15.3
- Démarrer et activer le service Nginx dans OpenSUSE
- Configuration du service proxy
- Création d'un hôte virtuel Nginx pour proxy la demande
- Tester la configuration
1. S'assurer que le serveur est à jour
Avant de continuer, il est toujours recommandé de s'assurer que le serveur est à jour. Utilisez ces commandes pour y parvenir
sudo zypper refresh
sudo zypper update -y
2. Installation de Nginx sur OpenSUSE Leap 15.3
Nginx, en tant que serveur Web stable, performant et avec une très faible consommation de ressources. Nginx a une architecture asynchrone beaucoup plus évolutive, basée sur les événements.
Nginx est disponible dans les dépôts UpenSUSE par défaut. Installez-le à l'aide de cette commande :
sudo zypper install -y nginx
Confirmez le nginx installé
~> zypper info nginx
Loading repository data...
Reading installed packages...
Information for package nginx:
------------------------------
Repository : Main Repository
Name : nginx
Version : 1.19.8-3.6.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed : Yes
Status : up-to-date
Source package : nginx-1.19.8-3.6.1.src
Summary : A HTTP server and IMAP/POP3 proxy server
Description :
nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
It has been running on many heavily loaded Russian sites for more than two years.
3. Démarrage et activation du service nginx
Le service Nginx installé n'est pas démarré par défaut. Pour démarrer le service, utilisez cette commande :
sudo systemctl start nginx
Confirmez que le service est opérationnel à l'aide de cette commande :
~> sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2021-12-20 18:56:15 UTC; 36s ago
Process: 31740 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 31741 (nginx)
Tasks: 2 (limit: 4587)
CGroup: /system.slice/nginx.service
├─31741 nginx: master process /usr/sbin/nginx -g daemon off;
└─31742 nginx: worker process
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Started The nginx HTTP and reverse proxy server.
Pour activer le service au démarrage, utilisez cette commande :
sudo systemctl enable nginx
4. Configuration du service de proxy
Dans cet exemple, nous allons utiliser un service simple que j'ai déjà construit. J'ai un service golang ici mais n'hésitez pas à utiliser votre service.
➜ /tmp/gosimple
2021/12/20 23:38:34 service running, listening on 3000
Testez le service
➜ curl -iL http://127.0.0.1:3000/
HTTP/1.1 200 OK
Date: Mon, 20 Dec 2021 20:39:01 GMT
Content-Length: 12
Content-Type: text/plain; charset=utf-8
Hello World!
5. Création d'un hôte virtuel Nginx pour proxy la requête
Nginx vous permet de desservir plusieurs sites à l'aide d'hôtes virtuels. Le concept d'hôtes virtuels autorise plusieurs sites Web sur un système ou un serveur Web. Les serveurs sont différenciés par leur nom d'hôte. Les visiteurs du site Web sont acheminés par nom d'hôte ou adresse IP vers l'hôte virtuel approprié. L'hébergement virtuel permet aux entreprises partageant un serveur d'avoir chacune leur propre nom de domaine.
Un bloc de serveur Nginx peut être utilisé pour encapsuler les détails de configuration et héberger plusieurs domaines sur un même serveur. Nous allons créer un hébergeur virtuel pour notre site (site1.citizix.com
).
Les configurations des hôtes virtuels Nginx sont stockées dans le répertoire /etc/nginx/conf.d/
. Créons une configuration pour notre site :
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Ajoutez le contenu suivant
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /opt/simpleapp;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass http://127.0.0.1:3000;
}
}
Redémarrons le nginx pour que la configuration s'applique :
sudo systemctl restart nginx
6. Test de la configuration
Dans cet exemple, nous utiliserons le domaine site1.citizix.com
pour l'hôte virtuel mais soyez libre d'utiliser le domaine de votre choix. Veuillez noter que le DNS du domaine à utiliser doit déjà être configuré pour pointer vers l'adresse IP du serveur. Confirmez cela avec :
dig -t A site1.citizix.com
Si vous n'avez pas encore configuré vos paramètres DNS ou si vous ne voulez tout simplement pas que le site soit encore en ligne, vous pouvez modifier le fichier hosts de votre ordinateur. Pour ce faire, utilisez la commande suivante dans la CLI de votre ordinateur local
sudo vim /etc/hosts
Ensuite, ajoutez l'adresse IP de votre serveur actuel suivie du nom de domaine que vous configurez, par exemple :
10.2.11.11 site1.citizix.com
Avec cette configuration, nous pouvons faire une demande à notre domaine. Pour moi ça marche bien !
➜ curl -iL http://site1.citizix.com
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Dec 2021 20:51:42 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 12
Connection: keep-alive
Hello World!
Conclusion
Nous avons réussi à installer et à configurer Nginx pour qu'il agisse en tant que proxy dans ce guide !