Web-темплейты для nginx + php-fpm с 301 редиректом на https без www и DNS-темплейт для Yandex.ПДД
Posted: Sat Feb 11, 2017 11:28 pm
Всем привет.
Третьи сутки бился над задачей. В итоге, пока писал этот пост с мольбой о помощи, всё настроил и почти всё работает. :)
Оставляю инфу на случай, если кому-то понадобится.
На всякий случай:
Все действия вы делаете на свой страх и риск. Автор не несет ответственности за возможные последствия.
CentOS 7 + nginx + php-fpm (php7.1)
Настроил свой неймсервер. Если надо, могу рассказать как, но вроде в инете всё есть.
Поправил dns-темплейт child-ns для pdd на yandex.
Сделал и для остальных доменов dns-темплейт, который на две A-записи для ns1/ns2 отличается от предыдущего.
Правда тут ручками надо переносить DKIM из pdd.yandex.ru.
Если кто-то знает, как автоматизировать это - welcome в комментарии.
Дальше надо настроить Web Template для NGINX.
Нужно сделать так, чтобы была переадресация со всех адресов в поле alias при создании домена на httpS://%domain_idn%. Без www. Например, c https://www.denisemenov.com, http://denisemenov.ru и их вариации на https://denisemenov.com.
Лежать сайты будут в папке public_html.
И поддержка Lets Encrypt обязательна.
Так же удаляем все index, .html и закрывающие слэши из url.
Третьи сутки бился над задачей. В итоге, пока писал этот пост с мольбой о помощи, всё настроил и почти всё работает. :)
Оставляю инфу на случай, если кому-то понадобится.
На всякий случай:
Все действия вы делаете на свой страх и риск. Автор не несет ответственности за возможные последствия.
CentOS 7 + nginx + php-fpm (php7.1)
Настроил свой неймсервер. Если надо, могу рассказать как, но вроде в инете всё есть.
Поправил dns-темплейт child-ns для pdd на yandex.
/usr/local/vesta/data/templates/dns/yandex-child-ns.tplShow
Code: Select all
ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='ns1.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='ns2.%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='3' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='4' RECORD='*' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='5' RECORD='ns1' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='6' RECORD='ns2' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='7' RECORD='www' TYPE='CNAME' PRIORITY='' VALUE='%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='8' RECORD='mail' TYPE='CNAME' PRIORITY='' VALUE='domain.mail.yandex.net.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='9' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mx.yandex.net.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='10' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% include:_spf.yandex.net ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='11' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%'
/usr/local/vesta/data/templates/dns/yandex.tplShow
Code: Select all
ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='3' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='4' RECORD='*' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='5' RECORD='www' TYPE='CNAME' PRIORITY='' VALUE='%domain%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='6' RECORD='mail' TYPE='CNAME' PRIORITY='' VALUE='domain.mail.yandex.net.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='7' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mx.yandex.net.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='8' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% include:_spf.yandex.net ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='9' RECORD='_dmarc' TYPE='TXT' PRIORITY='' VALUE='"v=DMARC1; p=none"' SUSPENDED='no' TIME='%time%' DATE='%date%'
Если кто-то знает, как автоматизировать это - welcome в комментарии.
Дальше надо настроить Web Template для NGINX.
Нужно сделать так, чтобы была переадресация со всех адресов в поле alias при создании домена на httpS://%domain_idn%. Без www. Например, c https://www.denisemenov.com, http://denisemenov.ru и их вариации на https://denisemenov.com.
Лежать сайты будут в папке public_html.
И поддержка Lets Encrypt обязательна.
Так же удаляем все index, .html и закрывающие слэши из url.
/usr/local/vesta/data/templates/web/nginx/php-fpm/https-without-…Show
Code: Select all
server {
listen %ip%:%web_port%;
server_name %domain_idn% %alias_idn%;
return 301 https://%domain_idn%$request_uri;
include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
}
/usr/local/vesta/data/templates/web/nginx/php-fpm/https-without-…Show
Code: Select all
server {
listen %ip%:%web_ssl_port% http2 ssl;
server_name %alias_idn%;
return 301 https://%domain_idn%$request_uri;
ssl on;
ssl_certificate %ssl_pem%;
ssl_certificate_key %ssl_key%;
}
server {
listen %ip%:%web_ssl_port% http2 ssl;
server_name %domain_idn%;
root %sdocroot%;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/%domain%.log combined;
access_log /var/log/nginx/domains/%domain%.bytes bytes;
error_log /var/log/nginx/domains/%domain%.error.log error;
ssl on;
ssl_certificate %ssl_pem%;
ssl_certificate_key %ssl_key%;
location / {
try_files $uri/index.html $uri.html $uri/ $uri =404;
rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
rewrite ^(/.*)index(\?.*)?$ $1$2 permanent;
rewrite ^/(.*)/$ /$1 permanent;
location ~ \.php$ {
try_files $uri $uri/ =404;
fastcgi_pass %backend_lsnr%;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^.+\.(rss|atom|jpg|jpeg|gif|png|bmp|ico|js|css|woff|ttf|otf|svg|woff2|eot|txt)$ {
expires max;
}
}
error_page 403 /error/404.html;
error_page 404 /error/404.html;
error_page 500 502 503 504 /error/50x.html;
location /error/ {
alias %home%/%user%/web/%domain%/document_errors/;
}
location ~* "/\.(htaccess|htpasswd|ht|svn|git|hg|bzr)$" {
deny all;
return 404;
}
location /vstats/ {
alias %home%/%user%/web/%domain%/stats/;
include %home%/%user%/web/%domain%/stats/auth.conf*;
}
include /etc/nginx/conf.d/phpmyadmin.inc*;
include /etc/nginx/conf.d/phppgadmin.inc*;
include /etc/nginx/conf.d/webmail.inc*;
include %home%/%user%/conf/web/snginx.%domain_idn%.conf*;
include %home%/%user%/conf/web/*nginx.%domain_idn%.conf_letsencrypt;
}