Retour : Page Principale > sommaire aide > sommaire aide logiciels
Une erreur 502 bad gateway peut survenir si :
Voir les différentes sources à l'origine de cette erreur et les solutions : http://www.nginxtips.com/502-bad-gateway-using-nginx/
Commande pour ajouter un mot de passe au fichier .htpasswd :
(PASSWORD="mot_de_passe";SALT="$(openssl rand -base64 3)";SHA1=$(printf "$PASSWORD$SALT" | openssl dgst -binary -sha1 | sed 's#$#'"$SALT"'#' | base64);printf "login:{SSHA}$SHA1\n" >> /chemin/vers/fichier/.htpasswd)
S'il existe des hôtes virtuels, il est nécessaire de définir le fichier de log principale pour chacun des vhost dans server {}.
Nginx
▼ Table des matières
À RÉÉCRIRE (2017-07) - cette page mérite d'être conservée, à condition de la mettre à jour
Ressources
- Compiling NginX on Debian - sinon on a le droit d'installer le paquet comme tout le monde
- Script bash pour créer un nouveau domaine virtuel
- Configuration du plugin Nginx pour Munin
Erreur 502 bad gateway
Si cette erreur s'affiche, cela signifie que Nginx n'arrive pas à faire fonctionner le service lié à l'appel.Une erreur 502 bad gateway peut survenir si :
- Nginx fonctionne comme proxy pour Apache.
- Nginx fonctionne avec un daemon PHP-FPM.
- Nginx fonctionne avec d'autres types de service comme "gateway"
- la configuration du buffering/timeout est mauvaise.
Voir les différentes sources à l'origine de cette erreur et les solutions : http://www.nginxtips.com/502-bad-gateway-using-nginx/
Mettre en place une authentification HTTP
Dans le fichier de configuration du site pour Nginx, ajouter les lignes :location /chemin/vers/dossier/a/proteger { auth_basic "Zone restreinte. Indiquez un login et mot de passe."; auth_basic_user_file /chemin/vers/fichier/.htpasswd; }
Commande pour ajouter un mot de passe au fichier .htpasswd :
(PASSWORD="mot_de_passe";SALT="$(openssl rand -base64 3)";SHA1=$(printf "$PASSWORD$SALT" | openssl dgst -binary -sha1 | sed 's#$#'"$SALT"'#' | base64);printf "login:{SSHA}$SHA1\n" >> /chemin/vers/fichier/.htpasswd)
Note sur les logs
Nginx ne permet pas de définir un fichier de log général au niveau de http {}.S'il existe des hôtes virtuels, il est nécessaire de définir le fichier de log principale pour chacun des vhost dans server {}.
Script compilation
#!/bin/bash # Encodage : ISO-8859-15 # Script de compilation de Nginx (compilation de différentes sources) # Licence : GPL v3 # Auteurs : Jean-Pascal MILCENT # Log des modifications de ce script : # 2013-07-10 : création du script echo "Installation des bibliothèques nécessaires à la compilation" sudo apt-get install build-essential libc6 libpcre3 libpcre3-dev libpcrecpp0 libssl0.9.8 libssl-dev zlib1g zlib1g-dev lsb-base echo "Récupération du source de nginx" cd /home/admin/src/targz if [ ! -f nginx-1.4.1.tar.gz ] ; then wget http://nginx.org/download/nginx-1.4.1.tar.gz fi echo "Décompactage de Nginx" cd /home/admin/src # Effacement d'un éventuel ancien dossier rm -rf nginx-1.4.1 # Décompactage et positionnement dans le dossier de source tar xvzf targz/nginx-1.4.1.tar.gz cd nginx-1.4.1 echo "Début de la compilation de Nginx" ./configure \ --sbin-path=/usr/sbin \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --with-debug \ --with-http_stub_status_module \ --with-http_flv_module \ --with-http_ssl_module \ --with-http_dav_module \ --with-ipv6 # Compilation puis installation des binaires make sudo make install echo "Nginx est installé en version : " sudo nginx -v echo "Copie du script demon dans /etc/init.d/nginx et ajout droit d'execution" if [ ! -f /etc/init.d/nginx ] ; then sudo cp /home/admin/script/nginx /etc/init.d/ sudo chmod +x /etc/init.d/nginx fi echo "Pour utiliser Ngninx veuiller le démarrer : /etc/init.d/nginx restart"
Script de lancement de nginx Ă placer dans /etc/init.d
#!/bin/bash ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: starts nginx using start-stop-daemon ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/nginx NAME=nginx DESC=nginx test -x $DAEMON || exit 0 # Include nginx defaults if available if [ -f /etc/default/nginx ] ; then . /etc/default/nginx fi set -e case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true sleep 1 start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; reload) echo -n "Reloading $DESC configuration: " start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true echo "$NAME." ;; configtest) echo -n "Testing $DESC configuration: " if nginx -t > /dev/null 2>&1 then echo "$NAME." else exit $? fi ;; *) echo "Usage: $NAME {start|stop|restart|reload|force-reload|configtest}" >&2 exit 1 ;; esac exit 0
Configure le domaine pour Munin avec Nginx
- Voir l'aide de Munin.