On Mon, Jul 08, 2019 at 07:11:59PM +0300, Maxim Dounin wrote:

> > > > action тут разный. я на этом внимание не заострил, думал и так понятно
> > > 
> > > Понятно.  И также понятно, что даже при одном и том же action - 
> > > приведённые команды делают разное, и результаты могут кардинально 
> > > отличаться в том числе из-за этого.  Именно поэтому я и указал на 
> > > эту проблему как на одну из возможных причин наблюдаемого 
> > > поведения.  Дабы подобную проблему гарантированно исключить - 
> > > лучше всего использовать одну и ту же форму команды.
> > 
> > так не бывает же `nginx -s restart`, т.е. `nginx stop && nginx start`
> 
> Зато бывает "service nginx reload" и "service nginx restart".
> 
> (Ну и вообще, использовать "nginx -s ..." на юникс-системах - 
> странно.  Как минимум попадаем на двойной парсинг конфигурации, 
> как максимум - на невозможность использовать эти команды, если 
> PID-файл надо переложить в другое место.)

набирать короче, давно заучил, а эти service вечно меняются...

> > > - После чего был сделан reload - и привёл к той же ошибке "module 
> > >   ... is already loaded", что было проигнорировано.  Так
> > 
> > нет, он не нашел ndk_* символов.
> > после чего я добавил строку с загрузко ndk_http.
> 
> Не нашёл символов - в процессе тестирования конфигурации с помощью 
> "nginx -t" и/или при парсинге конфигурации в процессе запуска 
> "nginx -s"?

вот тут не помню.

> Ожидаемо, так как у свежезапущенных экземпляров nginx'а нет 
> загруженных модулей, и они получают то, что было на диске.  И это 
> одна из причин, почему reload не стоит предварять запуском "nginx -t", 
> и не стоит использовать "nginx -s".

ничего не понял.

> > >   происходит, потому что с помощью reload'а нельзя изменить ранее 
> > >   загруженный модуль - so-шка уже в памяти, и при попытке её снова 
> > >   открыть - откроется старая so-шка.  Чтобы загрузить новые модули 
> > >   после изменения их so-файлов на диске - нужно делать upgrade.
> > 
> > а чего он их тогда полез открывать-то?
> > меня устроили бы старые модули.
> 
> В новой конфигурации - новый список модулей, они открываются / 
> загружаются в соответствии с тем, что задано в директивах 
> load_module в конфиге.  Поскольку в список добавился ndk - nginx 
> его попытался загрузить, поскольку в результате оказалось 
> загружено два одинаковых модуля - выдал ошибку и откатился на 
> предыдущую конфигурацию.

погоди. изначально список модулей не менялся, но конфигурация не
применилась потому что при открытии модуля выяснилось что его разбили
на два и теперь у него символы не находятся.

но как сказанно выше -- изменять загруженные модули нельзя, т.е. его и
не надо было открывать и тогда этой ошибки и не было бы. так?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить