Внесем дополнения к предыдущей конфигурации, касающиеся логирования, оптимизаций, балансировки и пр.
Вариант-7
#Рабочая конфигурация c HTTPS и редиректами на него + кэширование динамики php, с поддержкой http2
fastcgi_cache_path /tmp/nginx_cache levels=2 keys_zone=phpCache:5m inactive=77h max_size=1500m;
server {
listen 443 ssl http2; #добавили поддержку http2
server_name velo;
root /var/www/velo;
location ~ \\w+.(js|gif|jpg|png|css|htm)$ { #статика, отдаваемая напрямую
try_files $uri @php_fpm; #404-ю страницу будет выдавать CMS
expires 24h;
}
location ~ ^/(robots.txt|sitemap.xml|favicon.ico)$ { #статика, отдаваемая напрямую
try_files $uri @php_fpm; #404-ю страницу будет выдавать CMS
expires 48h;
}
location / {#все остальные запросы направляются на index_FC.php
rewrite (.+)/$ $1 permanent; #убираем '/' на конце URI
try_files 1 @php_fpm; #(С) похоже на хак:-)
}
location @php_fpm {#единственный скрипт для FastCGI-server
fastcgi_param SCRIPT_FILENAME $document_root/index_FC.php;
#кэширование-начало
fastcgi_cache phpCache;
fastcgi_cache_lock on;
fastcgi_cache_valid 200 301 302 100h;
fastcgi_cache_key "$host$request_uri$cookie_SID";
fastcgi_cache_use_stale error timeout invalid_header;
fastcgi_cache_revalidate on;
#кэширование-конец
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params; #было - include fastcgi.conf;
}
ssl_certificate /etc/nginx/ssl/velo.crt;
ssl_certificate_key /etc/nginx/ssl/velo.key;
}
server { # редиректы http://www.velo -> https://velo и https://www.velo -> https://velo
listen 443 ssl;
listen 80;
server_name www.velo;
return 301 https://velo$request_uri;
}
server { # редирект: http://velo -> https://velo
listen 80;
server_name velo;
return 301 https://velo$request_uri;
}