We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Web-темплейты для nginx + php-fpm с 301 редиректом на https без www и DNS-темплейт для Yandex.ПДД
-
- Posts: 8
- Joined: Fri Feb 10, 2017 6:24 pm
- Contact:
- Os: CentOS 6x
- Web: nginx + php-fpm
Web-темплейты для nginx + php-fpm с 301 редиректом на https без www и DNS-темплейт для Yandex.ПДД
Всем привет.
Третьи сутки бился над задачей. В итоге, пока писал этот пост с мольбой о помощи, всё настроил и почти всё работает. :)
Оставляю инфу на случай, если кому-то понадобится.
На всякий случай:
Все действия вы делаете на свой страх и риск. Автор не несет ответственности за возможные последствия.
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;
}