web-dev-qa-db-ja.com

nginx設定を動的にリロードする方法

私は現在、本番、テスト、開発の各段階でドメイン用にNginxをセットアップしようとしています。それぞれに、書き換えが行われた独自の部分的なNginx構成ファイルが付属しています。

制作段階とテスト段階は、Gitリポジトリからのブランチとして設定され、Gitの受信後フックにこれらの構成が自動的に再読み込みされます。これはすべて問題なく機能します。

Netbeansの「SFTP-on-save」を使用してSFTPを使用して送信したい開発段階。この粒度でバージョン管理を行う必要がなく、もう少し直接的です。ただし、ここでは、アップロード時に構成を再読み込みするようにNginxをトリガーするgitの受信後フックなどはありません。

Apacheでは、.htaccessファイルは動的にロードされるだけでした。 Nginxに似たようなものはありますか、および/またはこれをどのようにシミュレートできますか?理想的には、構成ファイルのみをリロードし、変更するとすぐにリロードするソリューションです。

4
Martijn

受信後のフックを使用できない場合は、inotifyを使用してnginx構成の変更を監視できます。

この場合、incrondincrontabを使用して、指定されたファイルの監視と、それらのファイルが変更されたときに実行するアクションを設定します。 incrontabのこのようなもの:

/etc/nginx/nginx.conf IN_MODIFY /etc/init.d/nginx reload

これが incrontabのmanページ です。構成に適合するinotifyツールセットを使用するための他のドキュメントと例を見つけることができるはずです。

7
cjc

Cjcが言ったように、inotifyservice nginx reloadはあなたが探しているコマンドです。

チェックアウト nixCraftからのこの投稿 これはinotifyを構成する方法についての素晴らしい説明を提供します。

3
deRailed