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.