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