Outils pour utilisateurs

Outils du site


nginx

Nginx + php et echofish

Biblio

Divers

gros bémol: pas de support du htaccess,

globalement plus performant qu'apache

Ne pas oublier les ;

Vérifier la configuration:

nginx -t

Logs

        error_log  /var/log/nginx/maison_error warn;
        access_log /var/log/nginx/maison_access combined ;

Support php

Installer php-fpm

Activer et lancer le service php-fpm

Rajouter la section suivante dans la conf du vhost adéquat:

        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
        #}

yum install –enablerepo=epel nginx php-fpm

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

SSL

Pour avoir une bonne note sur ssllabs

Créer un fichier /etc/nginx/conf.d/0ssl.conf:

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

Le fichier dhparams.pem est généré à l'aide de la commande suivante:

openssl dhparam -out dhparams.pem 2048

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)

#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;
  }
}

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)