Page 1 of 1

При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Wed Apr 04, 2018 1:41 pm
by karpo518
Добрый день. На моем сервере произошёл автоматический перевыпуск ssl-сертификата. При этом локальный конфиг nginx был перезаписан вестой. В результате сайт стал недоступен. Что нужно сделать, чтобы предотвратить повторение проблемы?

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Wed Apr 04, 2018 2:46 pm
by yariksat
karpo518 wrote: Wed Apr 04, 2018 1:41 pm Добрый день. На моем сервере произошёл автоматический перевыпуск ssl-сертификата. При этом локальный конфиг nginx был перезаписан вестой. В результате сайт стал недоступен. Что нужно сделать, чтобы предотвратить повторение проблемы?
Строки свои в конфиг добавляли?

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Tue Jun 05, 2018 1:08 pm
by karpo518
Спасибо за ответ. Да, добавлял. Редактировал конфиг домена вручную. Как правильно вносить такие правки, чтобы конфиг не перезаписывался? Теоретически при перевыпуске сертификата нужно просто заменить сам сертификат и ключ. Неясно, зачем конфиг переписывать.

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Tue Jun 05, 2018 4:55 pm
by yariksat
karpo518 wrote: Tue Jun 05, 2018 1:08 pm Спасибо за ответ. Да, добавлял. Редактировал конфиг домена вручную. Как правильно вносить такие правки, чтобы конфиг не перезаписывался? Теоретически при перевыпуске сертификата нужно просто заменить сам сертификат и ключ. Неясно, зачем конфиг переписывать.
Никак,конфиг перезапишется все равно.
Правильней создавать свои шаблоны конфигов в папке с шаблонами.

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Thu Jun 21, 2018 1:12 pm
by karpo518
Удивительные вещи вы пишите. Разве это нормально? Какие-то работы ведутся в этом направлении? В чём необходимость переписывать конфиг по шаблону? Почему нельзя просто заменить строки подключения сертификата по маске?

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Thu Jun 21, 2018 1:56 pm
by grayfolk
karpo518 wrote: Thu Jun 21, 2018 1:12 pm Удивительные вещи вы пишите. Разве это нормально? Какие-то работы ведутся в этом направлении? В чём необходимость переписывать конфиг по шаблону? Почему нельзя просто заменить строки подключения сертификата по маске?
А почему просто нельзя создать свой шаблон, если дефолтные вас не устраивают? Что в этом ненормального?
В любом случае, панель работает именно так, и с этим придется смириться.

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Thu Jun 21, 2018 6:02 pm
by yariksat
karpo518 wrote: Thu Jun 21, 2018 1:12 pm Удивительные вещи вы пишите. Разве это нормально? Какие-то работы ведутся в этом направлении? В чём необходимость переписывать конфиг по шаблону? Почему нельзя просто заменить строки подключения сертификата по маске?
Кто захотел - тот уже давным давно создал себе отдельный шаблон.
Как не крути шаблон лучше всего создать именно отдельный свой.Видели бы Вы мой шаблон,там простыня на 15 килобайт. :) Я давно себе так сделал.Меня наоборот эта панель поразила тем что тут можно свои собственные шаблоны делать...

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Wed Jul 11, 2018 10:57 am
by ahouse
yariksat wrote: Thu Jun 21, 2018 6:02 pm
karpo518 wrote: Thu Jun 21, 2018 1:12 pm Удивительные вещи вы пишите. Разве это нормально? Какие-то работы ведутся в этом направлении? В чём необходимость переписывать конфиг по шаблону? Почему нельзя просто заменить строки подключения сертификата по маске?
Кто захотел - тот уже давным давно создал себе отдельный шаблон.
Как не крути шаблон лучше всего создать именно отдельный свой.Видели бы Вы мой шаблон,там простыня на 15 килобайт. :) Я давно себе так сделал.Меня наоборот эта панель поразила тем что тут можно свои собственные шаблоны делать...
похвастайте шаблоном, Коллега!

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Thu Jul 12, 2018 6:03 pm
by yariksat
ahouse wrote: Wed Jul 11, 2018 10:57 am
yariksat wrote: Thu Jun 21, 2018 6:02 pm
karpo518 wrote: Thu Jun 21, 2018 1:12 pm Удивительные вещи вы пишите. Разве это нормально? Какие-то работы ведутся в этом направлении? В чём необходимость переписывать конфиг по шаблону? Почему нельзя просто заменить строки подключения сертификата по маске?
Кто захотел - тот уже давным давно создал себе отдельный шаблон.
Как не крути шаблон лучше всего создать именно отдельный свой.Видели бы Вы мой шаблон,там простыня на 15 килобайт. :) Я давно себе так сделал.Меня наоборот эта панель поразила тем что тут можно свои собственные шаблоны делать...
похвастайте шаблоном, Коллега!
Да выложил бы...
Но там куча редиректов ЧПУ,локейшенов и хот-линкинга заточенных под один специфический сайт.То есть все это написано специально под нужды этого сайта.Не думаю что это будет полезно остальным.

Re: При перевыпуске Lets Encrypt затирается конфиг nginx

Posted: Fri Aug 03, 2018 8:36 am
by karpo518
Прошу подсказать. Если я, к примеру, хочу, чтобы кастомные строки в конфиге не затирались, но по дефолту тоже всё работало, то мне нужно после строк подключения ssl-сертификата подключать свой конфиг и останавливать обработку текущего, верно? Вот так я себе это представляю:
SpoilerShow

Code: Select all

server {
    listen      %ip%:%web_ssl_port%;
    server_name %domain_idn% %alias_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%;

    // Начало моей вставки
    if (-f %home%/%user%/conf/web/snginx.%domain%.conf.custom) {
         include     %home%/%user%/conf/web/snginx.%domain%.conf.custom;
         break;
    }
    // Конец моей вставки

    location / {

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    %backend_lsnr%;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }

    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)$" {
        deny    all;
        return  404;
    }

    location /vstats/ {
        alias   %home%/%user%/web/%domain%/stats/;
        include %home%/%user%/conf/web/%domain%.auth*;
    }

    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%.conf*;
}
Это правильный путь?

P.S. Похоже универсальный вариант сделать не получится. Nginx не позволяет сделать include по условию if и 2 раза определять один location тоже не позволяет, значит кастомный вариант будет иметь следующий вид:
SpoilerShow

Code: Select all

server {
    listen      %ip%:%web_ssl_port%;
    server_name %domain_idn% %alias_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%;
    
    include     %home%/%user%/conf/web/snginx.%domain%.conf.custom;
}