我有 2 個網域 dev.domain.com 和 beta.domain.com。目前,我有一個伺服器部分(預設),其中包含一堆特定位置和規則。現在我需要用密碼保護 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;
}
}