dev.domain.com と beta.domain.com という 2 つのドメインがあります。現時点では、特定の場所とルールが多数含まれたサーバー セクション (デフォルト) が 1 つあります。次に、beta.domain.com をパスワードで保護する必要があります。追加のサーバー セクションを作成せずに、場所とその他のルールをすべて複製せずに、これを実行する方法はありますか?
一般的に、他の人が複雑な nginx 構成をどのように管理しているかを知りたいです。セクションをコピー (複製) するだけですか、それとも何らかの方法で共通のルールを含めますか?
答え1
複数のサーバー ブロック間で設定を共有する最も簡単な方法は、include ディレクティブを使用することです。たとえば、次のようになります。
/etc/nginx/conf.d/mysite.inc:
#...locations and rules...
/etc/nginx/sites-available/dev.domain.com:
server {
server_name dev.domain.com;
root /path/to/root;
include /etc/nginx/conf.d/mysite.inc;
}
/etc/nginx/sites-available/beta.domain.com:
server {
server_name beta.domain.com;
root /path/to/root;
include /etc/nginx/conf.d/mysite.inc;
location / {
auth_basic "Authentication Required";
auth_basic_user_file /path/to/authfile;
}
}