server { server_name son.clapas.org www.son.clapas.org; root "/home/son/www"; index index.php index.html index.htm; client_max_body_size 10m; access_log /home/son/_logs/access.log; access_log /var/log/nginx-access.log main; error_log /home/son/_logs/error.log; ################################################################################################# # BLOCAGE - Bloquer l'accès à certains robots et extracteurs de contenu # Bloquer l'accès à certains robots if ($http_user_agent ~* (Baiduspider|webalta|nikto|wkito|pikto|scan|acunetix|morfeus|webcollage|youdao) ) { return 401; } # Bloquer l'accès aux extracteurs de contenu if ($http_user_agent ~* (HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) ) { return 401; } ################################################################################################# # PROTECTION - Éviter l'affichage de fichiers sensibles # Éviter l'affichage du contenu des dossiers des gestionnaires de versions location ~ "\.(svn|git|hg|ht|bzr|cvs)" { return 404; } # Eviter l'affichage des fichiers de config en .ini location ~ "\.ini$" { return 404; } # Eviter l'affichage des fichiers senssibles location ~ "\.(htaccess|htpasswd)$" { return 404; } ################################################################################################# # AUTHENTIFICATION HTTP - Zones à accès restreint par mot de passe # Fichiers php de gestion : OpCache, Log, Info PHP... location ~ "/(info|log|op).php" { auth_basic "Zone restreinte. Indiquez un login et mot de passe."; auth_basic_user_file /home/son/www/.htpasswd; include /etc/nginx/fastcgi.conf; fastcgi_pass unix:/run/fpm-son.sock; } ################################################################################################# # Statuts PHP-FPM # ATTENTION : pour voir ces infos, le fichier fpm-son.sock doit avoir un droit de lecture pour l'utilisateur "son" location ~ ^/php-fpm-(status|ping)$ { access_log off; include fastcgi_params; fastcgi_pass unix:/run/fpm-son.sock; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; allow 127.0.0.1; allow 78.193.223.4; deny all; } ################################################################################################# # Sonerezh location /sonerezh/ { alias /home/son/www/sonerezh/app/webroot/; try_files $uri $uri/ /sonerezh//sonerezh/index.php?$args; index index.php; location ~ ^/sonerezh/(.+\.(css|js|ico|jpg|jpeg|png|woff))$ { alias /home/son/www/sonerezh/app/webroot/$1; #try_files $uri $uri/; } # Serve static images from resized folder location ~* \/([^\/]+_[0-9]+x[0-9]+\.[a-z]+) { alias /home/son/www/sonerezh/app/webroot/; try_files /img/resized/$1 /sonerezh/index.php?$args; expires 21d; access_log off; add_header Cache-Control 'public'; } location ~ ^/sonerezh/(.+\.php)$ { alias /home/son/www/sonerezh/app/webroot/$1; #try_files $uri =404 fastcgi_pass unix:/run/fpm-son.sock; fastcgi_index index.php; include fastcgi.conf; } } ################################################################################################# # Réecritures générales location / { try_files $uri $uri/ /index.php$uri?$args; } location ~ "^(.+\.php)($|/)" { try_files $uri =404; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SERVER_NAME $host; if ($uri !~ "^/uploads/") { fastcgi_pass unix:/run/fpm-son.sock; } include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; access_log off; } location ~* \.(html|htm)$ { expires 30m; } }