Угловой CLI & amp; Разрешения непрерывной интеграции Jenkins

Известна проблема, когда иногда nginx процесс не может быть остановлен с помощью service nginx stop или systemctl stop nginx.

В тех редких случаях (иногда это происходит, но есть [d1 ] иногда легко воспроизвести случай, чтобы исправить проблему), вам придется сделать это «старомодным» способом.

Во-первых, вам нужно убить существующие nginx процессы .

sudo kill $(pidof nginx)

Это уничтожит существующие процессы NGINX, так что у вас не будет никакого запуска.

Оттуда вы можете начать процессы заново с помощью sudo service nginx start или аналогичный. Вы также можете остановить процессы nginx после того, как вы запустите их снова, и теперь, используя sudo service nginx stop, как обычно.

(Я рассматривал этот вопрос уже более двух лет и никогда не могу воспроизвести эти случаи, только раз, когда я когда-либо сталкивался с этой проблемой, я был, когда обновлялся с 1.10.x до 1.12 .x, и только когда-либо сталкивался с ним один раз, поэтому проблема с невозможностью воспроизвести, поэтому практически невозможно узнать, как предотвратить эту проблему в будущем)

1
задан 7 March 2018 в 20:07

3 ответа

К сожалению, вы не можете просто скопировать данные. Скорее, почему бы не позволить NGINX искать данные через символическую ссылку?

Создать символическую ссылку каталога назначения сборки в /var/www вместо:

sudo mv /var/www/html /var/www/html.old
sudo ln -s /var/lib/jenkins/workspace/mywebsite/dist /var/www/html

Это должно, если предположить, что NGINX также может читать данные в папке /var/lib/jenkins/workspace/mywebsite/dist, обойти необходимость запретить Jenkins копировать вещи в папку вне ее контроля.

Обратите внимание, что я настоятельно рекомендую вам использовать /var/www/domain.tld, заменив domain.tld ] с вашим фактическим сайтом, а затем легко для корня документа в конфигурации сайта nginx вместо /var/www/html. Существует запись NGNX Configuration Pitfalls о потенциальных проблемах использования корневого документа по умолчанию, который здесь имеет значение. В нем конкретно говорится:

Использование исходных пакетов корневых пакетов NGINX, которые существуют в Ubuntu, Debian или других операционных системах, поскольку простой в установке пакет часто предоставляет конфигурационный файл по умолчанию в качестве примера методов конфигурации, и часто будет включать корень документа для хранения базового файла HTML. Большинство этих упаковочных систем не проверяют, были ли файлы изменены или существуют в корне документа по умолчанию, что может привести к потере кода при обновлении пакетов. Опытные системные администраторы знают, что нет ожиданий данных внутри корня документа по умолчанию, чтобы оставаться нетронутыми во время обновлений. Вы не должны использовать корень документа по умолчанию для любых важных для сайта файлов. Нет никаких ожиданий того, что корневой каталог по умолчанию будет оставлен нетронутым системой, и существует чрезвычайно высокая вероятность того, что ваши критические данные на вашем сайте могут быть потеряны при обновлениях и обновлениях пакетов NGINX для вашей операционной системы.
0
ответ дан 22 May 2018 в 12:42

К сожалению, вы не можете просто скопировать данные. Скорее, почему бы не позволить NGINX искать данные через символическую ссылку?

Создать символическую ссылку каталога назначения сборки в /var/www вместо:

sudo mv /var/www/html /var/www/html.old sudo ln -s /var/lib/jenkins/workspace/mywebsite/dist /var/www/html

Это должно, если предположить, что NGINX также может читать данные в папке /var/lib/jenkins/workspace/mywebsite/dist, обойти необходимость запретить Jenkins копировать вещи в папку вне ее контроля.

Обратите внимание, что я настоятельно рекомендую вам использовать /var/www/domain.tld, заменив domain.tld ] с вашим фактическим сайтом, а затем легко для корня документа в конфигурации сайта nginx вместо /var/www/html. Существует запись NGNX Configuration Pitfalls о потенциальных проблемах использования корневого документа по умолчанию, который здесь имеет значение. В нем конкретно говорится:

Использование исходных пакетов корневых пакетов NGINX, которые существуют в Ubuntu, Debian или других операционных системах, поскольку простой в установке пакет часто предоставляет конфигурационный файл по умолчанию в качестве примера методов конфигурации, и часто будет включать корень документа для хранения базового файла HTML. Большинство этих упаковочных систем не проверяют, были ли файлы изменены или существуют в корне документа по умолчанию, что может привести к потере кода при обновлении пакетов. Опытные системные администраторы знают, что нет ожиданий данных внутри корня документа по умолчанию, чтобы оставаться нетронутыми во время обновлений. Вы не должны использовать корень документа по умолчанию для любых важных для сайта файлов. Нет никаких ожиданий того, что корневой каталог по умолчанию будет оставлен нетронутым системой, и существует чрезвычайно высокая вероятность того, что ваши критические данные на вашем сайте могут быть потеряны при обновлениях и обновлениях пакетов NGINX для вашей операционной системы.
0
ответ дан 17 July 2018 в 19:21

К сожалению, вы не можете просто скопировать данные. Скорее, почему бы не позволить NGINX искать данные через символическую ссылку?

Создать символическую ссылку каталога назначения сборки в /var/www вместо:

sudo mv /var/www/html /var/www/html.old sudo ln -s /var/lib/jenkins/workspace/mywebsite/dist /var/www/html

Это должно, если предположить, что NGINX также может читать данные в папке /var/lib/jenkins/workspace/mywebsite/dist, обойти необходимость запретить Jenkins копировать вещи в папку вне ее контроля.

Обратите внимание, что я настоятельно рекомендую вам использовать /var/www/domain.tld, заменив domain.tld ] с вашим фактическим сайтом, а затем легко для корня документа в конфигурации сайта nginx вместо /var/www/html. Существует запись NGNX Configuration Pitfalls о потенциальных проблемах использования корневого документа по умолчанию, который здесь имеет значение. В нем конкретно говорится:

Использование исходных пакетов корневых пакетов NGINX, которые существуют в Ubuntu, Debian или других операционных системах, поскольку простой в установке пакет часто предоставляет конфигурационный файл по умолчанию в качестве примера методов конфигурации, и часто будет включать корень документа для хранения базового файла HTML. Большинство этих упаковочных систем не проверяют, были ли файлы изменены или существуют в корне документа по умолчанию, что может привести к потере кода при обновлении пакетов. Опытные системные администраторы знают, что нет ожиданий данных внутри корня документа по умолчанию, чтобы оставаться нетронутыми во время обновлений. Вы не должны использовать корень документа по умолчанию для любых важных для сайта файлов. Нет никаких ожиданий того, что корневой каталог по умолчанию будет оставлен нетронутым системой, и существует чрезвычайно высокая вероятность того, что ваши критические данные на вашем сайте могут быть потеряны при обновлениях и обновлениях пакетов NGINX для вашей операционной системы.
0
ответ дан 23 July 2018 в 20:05

Другие вопросы по тегам:

Похожие вопросы: