Nginx 站點配置多目錄管理

关关长语發表於2024-06-29

image.png

運維需求

在使用Nginx 對多個站點進行配置和執行維護時,如果將多個站點的配置都放在同一配置檔案中,對於server 部分的調整,隨著時間的推移,可能對應的配置變更是由不同的人員接手,不方便系統的部署和遷移。
image.png

解決方案

為了解決這個問題,可以考慮使用include 塊。用於指定載入不同的站點配置檔案,一個站點一個配置檔案,一個配置檔案用於配置一個站點,通用部分,例如載入證書這些,放在nginx.conf 檔案中。
image.png

具體操作

引入include,指定站點配置檔案模糊匹配路徑,在include conf.d/*.conf 表示載入nginx.conf 平級目錄conf.d 下,所有以.conf 作為字尾的檔案。

worker_processes  1;

pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
	include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;
    sendfile        on;

    keepalive_timeout  120;

    gzip on;
    gzip_min_length 1024;
    gzip_buffers 4 16k;
    gzip_comp_level 2;
    gzip_types *;
    gzip_vary on;
    include conf.d/*.conf;    #新增子目錄用於載入多個站點配置
}

nginx.conf 平級,建立目錄conf.d,該目錄之下將原有nginx.conf 中的server 塊,遷移到新建的[自定義站點名稱].conf中間中(注意檔案編碼),目錄conf.d建立一個站點為zcyy-front,配置檔案為zcyy-front.conf,案例如下。

server {
        listen       5173;
        server_name  localhost;

	access_log  logs/zcyy.access.log;
	error_log logs/zcyy.error.log;
	
	location / {
		root [站點絕對路徑];#按實際需求填寫絕對路徑
        index  index.html index.html;
		try_files $uri $uri/ /index.html; #加上這一行
	}
}

相關文章