lumo:debian_configurer_nginx_pour_executer_des_scripts_cgi_bash_api_rest:accueil
Debian, configurer nginx pour exécuter des scripts cgi bash api rest
| Retour | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Intoduction Comment configurer Nginx sur Debian pour exécuter des scripts CGI Bash dans le cadre d'une API REST. Architecture recommandée Nginx ne supporte pas nativement CGI comme Apache. Vous aurez besoin de fcgiwrap pour faire le pont entre Nginx et vos scripts Bash. |
||||||||||||
|
1. Installation des paquets nécessaires sudo apt update sudo apt install nginx fcgiwrap spawn-fcgi |
||||||||||||
|
2. Configuration de fcgiwrap Créez ou modifiez /etc/default/fcgiwrap : FCGI_WRAP_OPTS="--socket /var/run/fcgiwrap.socket" Créez le socket avec les bons permissions : sudo mkdir -p /var/run/fcgiwrap sudo chown www-data:www-data /var/run/fcgiwrap |
||||||||||||
|
3. Configuration Nginx Éditez votre fichier de configuration (ex: /etc/nginx/sites-available/api) : server { listen 80; server_name api.votre-domaine.com; root /var/www/api; index index.cgi; # Scripts CGI location ~ \.cgi$ { fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; include fastcgi_params; } # Sécurité location / { try_files $uri $uri/ =404; } } |
||||||||||||
|
4. Exemple de script Bash REST API Créez /var/www/api/users.cgi : #!/bin/bash # En-têtes CGI echo "Content-Type: application/json" echo "" # Méthode HTTP METHOD="${REQUEST_METHOD:-GET}" case "$METHOD" in GET) echo '{"status": "success", "message": "Liste des utilisateurs"}' ;; POST) # Lire le corps de la requête read -r -n "$CONTENT_LENGTH" BODY echo "{\"status\": \"created\", \"body\": \"$BODY\"}" ;; *) echo '{"status": "error", "message": "Méthode non autorisée"}' ;; esac Rendez-le exécutable : sudo chmod +x /var/www/api/users.cgi sudo chown www-data:www-data /var/www/api/users.cgi |
||||||||||||
|
5. Démarrage du service # Démarrer fcgiwrap sudo systemctl enable fcgiwrap sudo systemctl start fcgiwrap # Tester la configuration Nginx sudo nginx -t # Recharger Nginx sudo systemctl reload nginx |
||||||||||||
|
6. Points de sécurité importants
|
lumo/debian_configurer_nginx_pour_executer_des_scripts_cgi_bash_api_rest/accueil.txt · Dernière modification : de 127.0.0.1
