Outils pour utilisateurs

Outils du site


nginx

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

nginx [2017/02/16 21:44] (Version actuelle)
Ligne 1: Ligne 1:
 +{{tag> web tips }}
 +
 +===== Nginx + php et echofish=====
 +==== Biblio ====
 +
 +https://​nginx.org/​en/​docs/​
 +
 +==== Divers ====
 +
 +gros bémol: pas de support du htaccess,
 +
 +globalement plus performant qu'​[[:​apache#​benchmar|apache]]
 +
 +Ne pas oublier les ;
 +
 +Vérifier la configuration:​
 +
 +<​code>​
 +nginx -t
 +</​code>​
 +
 +
 +==== Logs ====
 +<​code>​
 +        error_log ​ /​var/​log/​nginx/​maison_error warn;
 +        access_log /​var/​log/​nginx/​maison_access combined ;
 +</​code>​
 +==== Support php ====
 +
 +Installer php-fpm
 +
 +Activer et lancer le service //php-fpm//
 +
 +Rajouter la section suivante dans la conf du vhost adéquat:
 +<​code>​
 +        #location ~ \.php$ {
 +        #       ​include snippets/​fastcgi-php.conf;​
 +        #
 +        #       # With php5-fpm:
 +        #       ​fastcgi_pass unix:/​var/​run/​php5-fpm.sock;​
 +        #}
 +</​code>​
 +
 +yum install --enablerepo=epel nginx php-fpm
 +<​code>​
 +vim /​etc/​nginx/​conf.d/​default.conf
 +
 +    location / {
 +        root   /​var/​www/​Echofish/​htdocs;​
 +        index  index.php;
 +    }
 +
 +    location ~ \.php$ {
 +        root           /​var/​www/​Echofish/​htdocs ;
 +        fastcgi_pass ​  ​127.0.0.1:​9000;​
 +        fastcgi_index ​ index.php;
 +        fastcgi_param ​ SCRIPT_FILENAME ​ $document_root/​$fastcgi_script_name;​
 +        include ​       fastcgi_params;​
 +    }
 +
 +for s in php-fpm nginx ; do chkconfig $s on ; service $s start ; done
 +</​code>​
 +
 +==== SSL ====
 +
 +Pour avoir une bonne note sur [[https://​www.ssllabs.com/​ssltest/​|ssllabs]]
 +
 +Créer un fichier /​etc/​nginx/​conf.d/​0ssl.conf:​
 +<​code>​
 +ssl_ciphers '​ECDHE-RSA-AES128-GCM-SHA256:​ECDHE-ECDSA-AES128-GCM-SHA256:​ECDHE-RSA-AES256-GCM-SHA384:​ECDHE-ECDSA-AES256-GCM-SHA384:​DHE-RSA-AES128-GCM-SHA256:​DHE-DSS-AES128-GCM-SHA256:​kEDH+AESGCM:​ECDHE-RSA-AES128-SHA256:​ECDHE-ECDSA-AES128-SHA256:​ECDHE-RSA-AES128-SHA:​ECDHE-ECDSA-AES128-SHA:​ECDHE-RSA-AES256-SHA384:​ECDHE-ECDSA-AES256-SHA384:​ECDHE-RSA-AES256-SHA:​ECDHE-ECDSA-AES256-SHA:​DHE-RSA-AES128-SHA256:​DHE-RSA-AES128-SHA:​DHE-DSS-AES128-SHA256:​DHE-RSA-AES256-SHA256:​DHE-DSS-AES256-SHA:​DHE-RSA-AES256-SHA:​AES128-GCM-SHA256:​AES256-GCM-SHA384:​AES128-SHA256:​AES256-SHA256:​AES128-SHA:​AES256-SHA:​AES:​CAMELLIA:​DES-CBC3-SHA:​!aNULL:​!eNULL:​!EXPORT:​!DES:​!RC4:​!MD5:​!PSK:​!aECDH:​!EDH-DSS-DES-CBC3-SHA:​!EDH-RSA-DES-CBC3-SHA:​!KRB5-DES-CBC3-SHA';​
 +
 +ssl_prefer_server_ciphers on;
 +
 +ssl_dhparam /​etc/​nginx/​dhparams.pem ;
 +
 +ssl_protocols TLSv1 TLSv1.1 TLSv1.2
 +</​code>​
 +
 +Le fichier dhparams.pem est généré à l'aide de la commande suivante:
 +<​code>​
 +openssl dhparam -out dhparams.pem 2048
 +</​code>​
 +
 +==== SSL offloading ====
 +
 +Le principe consiste à configurer nginx comme proxy reverse en frontal https. C'est lui qui gère la partie chiffrement et qui communique ensuite en clair avec le(s) backend(s)
 +
 +C'est mis en place sur [[:​gelatine]] (2017-02-16)
 +
 +<​code>​
 +#definition du backend
 +upstream backends_infra {
 +        server infra ;
 +        }
 +
 +server {
 +  listen 443 ssl;
 +  server_name infra.opendoor.fr;​
 +
 +  ssl_certificate ​      /​etc/​letsencrypt/​live/​infra.opendoor.fr/​fullchain.pem ;
 +  ssl_certificate_key ​  /​etc/​letsencrypt/​live/​infra.opendoor.fr/​privkey.pem;​
 +
 +  # Fichier de log
 +  access_log /​var/​log/​nginx/​infra-access.log;​
 +  error_log /​var/​log/​nginx/​infra-error.log ;
 +
 +  location / {
 +# Ajout de header liés à la sécurité
 +          add_header Strict-Transport-Security "​max-age=15768000;​ includeSubDomains;​ preload;";​
 +          add_header X-Content-Type-Options nosniff;
 +          add_header X-Frame-Options "​SAMEORIGIN";​
 +          add_header X-XSS-Protection "1; mode=block";​
 +          add_header X-Download-Options "​noopen"​ ;
 +          add_header X-Permitted-Cross-Domain-Policies "​none"​ ;
 +          add_header X-Robots-Tag none;
 +          proxy_pass http://​backends_infra;​
 +#         ​sub_filter http://​infra.opendoor.fr https://​infra.opendoor.fr:​443;​
 +          #​sub_filter_once off;
 +          proxy_redirect http://​infra.opendoor.fr https://​infra.opendoor.fr:​443;​
 +          proxy_set_header Accept-Encoding "";​
 +          proxy_buffering 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;​
 +  }
 +}
 +
 +</​code>​
 +
 +La directive sub_filter va réécrire les urls en interne en https, utile pour les plateforme qui utilise des liens absolus (n'​est-ce pas wordpress)
 +
 +# vim: set filetype=dokuwiki:​
  
nginx.txt · Dernière modification: 2017/02/16 21:44 (modification externe)