Мой текущий конфиг
nginx для instantcms 2.6 (исправлены некоторые проблемы, которые присуствуют даже в демке разработчиков)
# 301 на ssl от letsencrypt
server {
listen 80;
add_header Strict-Transport-Security "max-age=0;";
server_name *.dibbe.ru dibbe.ru;
return 301
Для просмотра ссылки Войди или Зарегистрируйся
}
server {
server_name dibbe.ru;
add_header Strict-Transport-Security "max-age=0;";
listen 0.0.0.0:443 ssl http2;
# заморочки c ssl (можно копипастить с правкой домена)
#
Для просмотра ссылки Войди или Зарегистрируйся - неплохие результаты
ssl on;
ssl_certificate /etc/letsencrypt/live/dibbe.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dibbe.ru/privkey.pem;
#ssl_session_cache shared:SSL:50m;
#ssl_session_cache 50m;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!CBC:!EDH:!kEDH:!PSK:!SRP:!kECDH;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/xxx.crt;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
# логи
access_log /var/log/nginx/access_dibbe.ru_log main;
error_log /var/log/nginx/error_dibbe.ru_log info;
root /var/www/dibbe.ru/htdocs;
index index.php;
# реврайты с старого сайта
include /etc/nginx/rewrites-dibbe.ru;
# трайлинг-слеш, исключая некоторые директории
rewrite ^/((?!xxxxxx|yyyyyyy).*)/$ /$1 permanent;
# небольшой блочок для безопасности
location ~* /(\.|(?!robots).+\.txt|\.|ht\.access) {
return 404;
deny all;
access_log off;
log_not_found off;
}
location ~ ^/(system|filters|languages)/ {
return 404;
deny all;
access_log off;
log_not_found off;
}
location ~* /(cache|static|upload|uploads|wysiwyg)/.*\.(php|php3|php4|php5|php6|phps|phtml)$ {
return 404;
deny all;
access_log off;
log_not_found off;
}
location = /(favicon.ico|robots.txt) {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/sitemap(.*)\.xml {
allow all;
rewrite ^/sitemap(.*).xml cache/static/sitemaps/sitemap$1.xml permanent;
}
location ~* /(?!template/|templates/).*\.(js|css|scss|png|gif|jpg|jpeg|ico|bmp|map|eot|svg|ttf|woff|woff2)$ {
allow all;
expires max;
log_not_found off;
access_log off;
add_header Pragma public;
add_header Cache-Control "public";
}
if ($request_uri ~* "^(.*/)index\.php$") { return 301 $1; }
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/tmp/php-fcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
На данный момент ещё работаю над кешированием и чрут. Есть мелкие проблемы, которые никак не могу решить.