Nginx est toujours
plus populaire et est utilisé comme : serveur HTTP bien sûr,
reverse proxy avec ou sans cache, réécriture d’URL, de protéger
et masquer son infrastructure.
Dernièrement, je
l'ai utilisé comme reverse proxy afin de regrouper sur un même
adresse IP plusieurs sites web (plusieurs serveurs et technos : IIS,
Apache, Tomcat) et de préparer une future migration de data center.
Utilisé comme
reverse proxy la config est très simple.
Sous Debian télécharger la dernière version.
Ajouter à  /etc/apt/sources.list
deb http://nginx.org/packages/debian/ squeeze nginx deb-src http://nginx.org/packages/debian/ squeeze nginx
Puis installer
nginx et openssl
apt-get install nginx openssl
Configurer nginx
/etc/nginx/nginx.conf
user  nginx;
worker_processes  2;
error_log  /var/log/nginx/error.log
warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include      
/etc/nginx/mime.types;
    default_type 
application/octet-stream;
    log_format  main  '$remote_addr -
$remote_user [$time_local] "$request" '
                      '$status
$body_bytes_sent "$http_referer" '
                     
'"$http_user_agent" "$http_x_forwarded_for"';
    access_log 
/var/log/nginx/access.log  main;
    server_names_hash_bucket_size 64;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip  on;
    include /etc/nginx/conf.d/*.conf;
    include
/etc/nginx/sites-enabled/*;
    send_timeout 5m;
}
Créer le site
dans /etc/nginx/sites-available
server
{
 listen
80;
 server_name www.nomdusite.com
*.nomdusite.com nomdusite.com;
 access_log /var/log/nginx/nomdusite
.com.log;
 error_log /var/log/nginx/nomdusite
.com.error.log notice;
 location
/ {
  proxy_pass http://www.nomdusite.com;
 }
}
J'ai
déclarer dans le /etc/hosts l'adresse privée de  nomdusite.com
192.168.0.1 
www.nomdusite.com
Utiliser SSL
Pour
gérer le reverse proxy avec SSL
Créer  une répertoire contenant le certificat SSL.
mkdir -p /etc/nginx/ssl/nomdusite
cd /etc/nginx/ssl/nomdusite
Générer le certificat SSL à faire signer par une autorité de confiance.
openssl req -new -newkey rsa:2048 -nodes -keyout
nomdusite.com.key
-out nomdusite.com.csr
Copier
le contenu du fichier nomdusite.com.csr au près de votre CA, dans
mon cas Godaddy.
Récupérer
le certificat nomdusite.com.crt et déclarer le dans la configuration
de Nginx avec la clé nomdusite.com.key obtenue lors de la génération du fichier
csr.
server
{
listen 443;
 ssl on;
server_name     www.nomdusite.com *.nomdusite.com nomdusite.com;
 ssl_certificate
/etc/nginx/ssl/nomdusite/nomdusite.com.crt;
 ssl_certificate_key 
/etc/nginx/ssl/nomdusite/nomdusite.key;
access_log      /var/log/nginx/nomdusite
.com.log;
error_log      
/var/log/nginx/nomdusite.com.error.log notice;
location / {
proxy_pass     
https://www.nomdusite.com:443;
proxy_redirect off;
proxy_set_header        Host    $host;
proxy_set_header        X-Forwarded-For
$proxy_add_x_forwarded_for;
}
}
Il
est parfois nécessaire de chaîner les certificats, je vous renvoi à
la documentation de Nginx.
Pour
tester la syntaxe de la configuration de nginx :
nginx
-t
Pour activer le site, créer un alias dans /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/nomdusite.com /etc/nginx/sites-enabled/nomdusite.com
Puis
ensuite pour appliquer la nouvelle configuration :
/etc/init.d/nginx
reload
 
Aucun commentaire:
Enregistrer un commentaire