Ниже - шаблон конфигурационного файла веб-сервера nginx для сайтов на AdxCMS.
Как воспользоваться шаблоном:
- В шаблоне вставлены переменные, их надо заменить на ваши значения. Описания - в блоке Замены
-
Записать полученный файл на сервер, либо в папку, из которой nginx читает файлы конфигураций виртуальных хостов, например
/etc/nginx/sites.enabled/
-
Протестировать полученную конфигурацию и перечитать конфигурацию
sudo nginx -t && nginx -s reload
Подключение SSL
Шаблон предусматривает последующее подключение SSL-сертификата. В этом случае сайт будет слушать два адреса, на 80-м и 443-м портах. Со всех запросов на хост с не-SSL будет происходить редирект 301 на хост с SSL. Для этого в конфиге раскомментируйте блоки помеченные как Uncomment for SSL
и удалите строку listen IP.ADDRESS:80;
.
Мы рекомендуем использовать бесплатные SSL сертификаты Let's Encrypt. Для автоматической генерации и продления рекомендуем использовать dehydrated. Это простой, надёжный, без внешних зависимостей инструмент, который мы используем для более чем сотни сайтов.
Замены:
name.site
- доменное имя сайта
IP.ADDRESS
- IP адрес или имя хоста, на котором «слушает» nginx
PHP.FMP.IP:PORT
- путь к сокету или IP адрес и порт, на котором «слушает» PHP-FPM
/path/to/site-root/
- путь к корневой папке сайта
/path/to/logs/
- путь к папке с файлами журналов
/path/to/ssl-certificates/
- путь к папке с сертификатами SSL
certificate.pem
- имя файла сертификата SSL
privkey.pem
- имя файла приватного ключа сертификата SSL
Шаблон конфигурационного файла
## Uncomment for SSL
#server {
# listen IP.ADDRESS:80;
# server_name name.site;
#
# access_log off;
# error_log /path/to/logs/name.site.error.log crit;
#
# ## redirect to https
# location / {
# return 301 https://name.site$request_uri;
# }
#}
server {
listen IP.ADDRESS:80;
## Uncomment for SSL
# listen IP.ADDRESS:443 ssl http2;
server_name name.site;
## Uncomment for SSL
# keepalive_timeout 70;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 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:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!EXP:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
# ssl_prefer_server_ciphers on;
# ssl_session_cache shared:SSL:10m;
# ssl_session_timeout 10m;
# ssl_certificate /path/to/ssl-certificates/certificate.pem;
# ssl_certificate_key /path/to/ssl-certificates/privkey.pem;
## GZIP allow
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_types
application/atom+xml
application/javascript
application/json
application/rss+xml
application/vnd.ms-fontobject
application/x-font-ttf
application/x-javascript
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
application/xml+rss
font/opentype
image/svg+xml
image/x-icon
text/css
text/javascript
text/json
text/plain
text/x-component
text/x-js
text/xml;
gzip_min_length 300;
## Logs
access_log /path/to/logs/name.site.front.log main;
error_log /path/to/logs/name.site.error.log notice;
## Default settings
root /path/to/site-root/www/;
index index.php;
fastcgi_index index.php;
# static content
location ^~ /content/ {
gzip on;
expires max;
}
location ^~ /static/ {
gzip on;
expires max;
}
## Non-static
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
## scripts which is placed out of /www/ folder:
## /script/core/xxx/ -> /back/core/code/xxx.php
location ~ ^/(ru/|en/)?script/(?<folder>core|prj)/(?<script>[a-z\-_]+)/ {
include fastcgi_params;
root /path/to/site-root/back/;
access_log /path/to/logs/name.site.fpm.log main;
fastcgi_pass PHP.FPM.IP:PORT;
fastcgi_param SCRIPT_FILENAME $document_root/$folder/code/$script.php;
}
## All php files
location ~ \.php$ {
include fastcgi_params;
access_log /path/to/logs/name.site.fpm.log main;
fastcgi_pass PHP.FPM.IP:PORT;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
## x-sendfile
location ^~ /x-sendfile/ {
internal;
alias /path/to/site-root/www/;
}
}
Скачать шаблоны
Шаблон без SSL
Документ CONF, 3.22 Кб
Шаблон с SSL
Документ CONF, 3.13 Кб