Page 1 of 1

Не делает бекапы из-за ошибки при парсинге шаблонов

Posted: Fri Oct 06, 2017 11:36 am
by Twistnv
Доброе время суток, в /usr/local/vesta/data/templates/web/nginx/php-fpm добавил свой шаблон, 2 файла обычный tpl и stpl. Домены в панельку добавляются но с ошибкой, но шаблон все равно применяется. Аналогично с ошибкой и удаляются, но из nginx конфига сайт уже не пропадает. Также не делаются бекапы, останавливается все на ошибке:
Error: can't parse template /usr/local/vesta/data/templates/web/nginx/php-fpm/*.tpl

Проблема думаю в том, что я в шаблон прописал регулярное выражение для поддоменов и парсеру это не нравится, подскажите как такое можно скормить панельке, чтобы она не ругалась, может где то подправить что-то можно:

Code: Select all

server {
    listen       %ip%:%web_port%;
    server_name ~^([a-z-]+\.|)%domain_idn%;
    set $subdomain "%domain_idn%";
    if ($host ~* ^([a-z-]+)\.%domain_idn%) {
        set $subdomain $1.%domain_idn%;
    }
    if ($host ~* ^www.%domain_idn%$) {
        set $subdomain "%domain_idn%";
    }
    rewrite ^(.*) http://www.$subdomain$1 permanent;
}
server {
    listen      %ip%:%web_port%;
    server_name www.%domain_idn% ~^www.([a-z-]+\.)%domain_idn%;
    root        %docroot%;
    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;
    
    ...
}

UP.
Проблема решилась, парсер ищет в конфиге домен по прямому вхождению (site.com) без лишних добавлений, чтобы решить проблему в первую секцию server для server_name достаточно добавить: %domain_idn%, после этой процедуры, парсер работает без ошибок.

Re: Не делает бекапы из-за ошибки при парсинге шаблонов

Posted: Fri Oct 06, 2017 12:02 pm
by skurudo
Согласен, скорее всего проблема в регулярке в Service Name.
Предлагаю рассмотреть альтернативную схему:

Code: Select all

server {
    listen       80;
    server_name  example.com;
    return       301 http://www.example.com$request_uri;
}

server {
    listen       80;
    server_name  www.example.com;
    ...
}
Для https:

Code: Select all

server {
        listen 80;
        server_name www.domain.com;
        # $scheme will get the http protocol
        # and 301 is best practice for tablet, phone, desktop and seo
        return 301 $scheme://domain.com$request_uri;
}

server {
        listen 80;
        server_name domain.com;
        # here goes the rest of your config file
        # example 
        location / {

            rewrite ^/cp/login?$ /cp/login.php last;
            # etc etc...

        }
}

Re: Не делает бекапы из-за ошибки при парсинге шаблонов

Posted: Fri Oct 06, 2017 12:07 pm
by Twistnv
Вы предложили альтернативу для просто домена site.com, а у меня много поддоменов (site.com, test.site.com, blabla.site.com, vesta.site.com), и их нужно отловить, то что у меня делается регуляркой и передать во второй блок server чтобы вставить после www.

Up.
Во втором блоке server, допустим я могу отказаться от регулярки, вывести все поддомены с www через заполнение формы алиас в панельке. Но как вывести все поддомены без www для первого блока сервер, чтобы редеректить их на www?