Nginx目錄結構
? Nginx 的安裝目錄結構可能會因安裝方式(如使用包管理器、源碼編譯等)和操作系統的不同而有所差異。以下是通過在線安裝時,Nginx 默認的目錄結構,以及各目錄和文件的作用。
yum install nginx
-
查詢nginx
[root@Rocky ~]# whereis nginx nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz
可執行文件路徑
- /usr/sbin/nginx:這是 Nginx 的可執行文件所在位置。
/usr/sbin
目錄一般存放系統級的可執行文件,供系統管理員使用。你可以通過在終端運行該文件來啟動、停止、重啟 Nginx 服務。例如,使用sudo /usr/sbin/nginx
可以啟動 Nginx 服務,sudo /usr/sbin/nginx -s stop
能停止 Nginx 服務。
模塊文件路徑
- /usr/lib64/nginx:該目錄存放著 Nginx 的動態模塊文件。這些模塊是一些
.so
(共享對象)文件,用于擴展 Nginx 的功能。像ngx_http_image_filter_module.so
模塊可用于對 HTTP 請求中的圖片進行過濾和處理;ngx_http_perl_module.so
允許在 Nginx 配置中使用 Perl 腳本。
配置文件路徑
- /etc/nginx:Nginx 的主配置目錄,包含了眾多配置文件,用于控制 Nginx 的行為。
- nginx.conf:主配置文件,包含全局配置、事件配置、HTTP 配置等關鍵信息,是 Nginx 啟動時首先讀取的配置文件。
- conf.d 目錄:通常用于存放虛擬主機的配置文件,Nginx 會自動加載該目錄下的所有
.conf
文件,便于對不同的網站或服務進行獨立配置。 - fastcgi.conf、fastcgi_params 等文件:用于配置 Nginx 與 FastCGI 服務器的交互,如傳遞請求參數、設置超時時間等。
資源文件路徑
- /usr/share/nginx:存放 Nginx 的共享資源,例如:
- html 目錄:是 Nginx 默認的網站根目錄,當你訪問 Nginx 服務器時,默認會從這個目錄下查找并返回相應的文件,如
index.html
是默認的首頁文件。 - modules 目錄:存放與 Nginx 模塊相關的配置文件,和
/usr/lib64/nginx
目錄下的模塊文件相配合,對模塊的功能進行具體配置。
- html 目錄:是 Nginx 默認的網站根目錄,當你訪問 Nginx 服務器時,默認會從這個目錄下查找并返回相應的文件,如
手冊頁路徑
- /usr/share/man/man3/nginx.3pm.gz 和 /usr/share/man/man8/nginx.8.gz:這兩個是 Nginx 的手冊頁文件。在 Linux 系統中,
man
命令用于查看程序的幫助文檔,man
手冊分為不同的章節,man3
通常是庫函數和系統調用的手冊,man8
主要是系統管理命令和守護進程的手冊。你可以使用man 3 nginx
或man 8 nginx
來查看相應的幫助信息。
- /usr/sbin/nginx:這是 Nginx 的可執行文件所在位置。
-
樹狀顯示目錄結構
[root@Rocky ~]# tree /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/lib64/nginx └── modules├── ngx_http_image_filter_module.so├── ngx_http_perl_module.so├── ngx_http_xslt_filter_module.so├── ngx_mail_module.so└── ngx_stream_module.so /etc/nginx ├── conf.d │?? └── vhost.conf ├── default.d ├── fastcgi.conf ├── fastcgi.conf.default ├── fastcgi_params ├── fastcgi_params.default ├── koi-utf ├── koi-win ├── mime.types ├── mime.types.default ├── nginx.conf ├── nginx.conf.default ├── scgi_params ├── scgi_params.default ├── uwsgi_params ├── uwsgi_params.default └── win-utf /usr/share/nginx ├── html │?? ├── 404.html │?? ├── 50x.html │?? ├── bbs │?? │?? ├── index.html │?? │?? └── logs │?? │?? └── access_bbs.log │?? ├── index.html │?? ├── nginx-logo.png │?? ├── poweredby.png │?? └── www │?? ├── index.html │?? └── logs │?? └── access_www.log └── modules├── mod-http-image-filter.conf├── mod-http-perl.conf├── mod-http-xslt-filter.conf├── mod-mail.conf└── mod-stream.conf9 directories, 35 files
/usr/lib64/nginx/modules
- 該目錄用于存放 Nginx 的動態模塊文件,這些模塊擴展了 Nginx 的功能。
- ngx_http_image_filter_module.so:用于對 HTTP 請求中的圖片進行過濾和處理,例如調整圖片大小、裁剪、添加水印等。
- ngx_http_perl_module.so:允許在 Nginx 配置中使用 Perl 語言編寫腳本,以實現更靈活的請求處理和業務邏輯。
- ngx_http_xslt_filter_module.so:用于對 HTTP 響應中的 XML 數據進行 XSLT 轉換,將 XML 數據轉換為其他格式,如 HTML。
- ngx_mail_module.so:提供了對郵件協議(如 SMTP、POP3、IMAP)的支持,使 Nginx 可以作為郵件服務器的前端,實現郵件的代理、過濾等功能。
- ngx_stream_module.so:主要用于處理 TCP 和 UDP 流,支持對非 HTTP 協議的流量進行代理、轉發和處理,例如用于代理 MySQL、Redis 等數據庫連接。
/etc/nginx
- Nginx 的主配置目錄,包含了 Nginx 服務器的各種配置文件,Nginx 在啟動時會讀取這些文件來確定如何運行。
- conf.d:該目錄用于存放用戶自定義的 Nginx 虛擬主機配置文件。每個配置文件通常對應一個或多個網站的配置,例如
vhost.conf
文件可能包含了特定域名的服務器配置,如服務器名稱、端口、SSL 設置、請求處理規則等。 - default.d:這個目錄用于存放一些默認的配置片段或備用配置文件,通常在主配置文件中通過包含指令(
include
)來引用,以提供一些默認的配置選項或覆蓋某些全局配置。 - fastcgi.conf和fastcgi.conf.default:用于配置 FastCGI 相關的參數,如 FastCGI 服務器的地址、端口、請求頭和響應頭的設置等。
.default
文件通常是默認的配置模板,fastcgi.conf
是實際使用的配置文件,管理員可以根據需要修改fastcgi.conf
來調整 FastCGI 的行為。 - fastcgi_params和fastcgi_params.default:包含了傳遞給 FastCGI 進程的參數,這些參數用于在 Nginx 與 FastCGI 服務器之間傳遞信息,例如客戶端的請求頭、服務器變量等。同樣,
.default
文件是默認模板,fastcgi_params
是可修改的實際配置文件。 - koi-utf和koi-win:這兩個文件用于字符編碼轉換,
koi-utf
用于將 KOI8-R 編碼轉換為 UTF-8 編碼,koi-win
用于將 KOI8-R 編碼轉換為 Windows-1251 編碼,主要用于處理不同字符編碼的文本數據。 - mime.types和mime.types.default:定義了 Nginx 如何識別不同類型的文件,根據文件的擴展名來確定其對應的 MIME 類型。MIME 類型用于在 HTTP 響應中正確地標識文件的內容類型,以便客戶端能夠正確地處理和顯示文件。
.default
文件是默認的 MIME 類型定義,mime.types
可以根據實際需求進行修改和擴展。 - nginx.conf和nginx.conf.default:Nginx 的主配置文件,包含了 Nginx 服務器的全局配置信息,如進程數、運行用戶、錯誤日志路徑、HTTP 服務器配置等。
.default
文件是默認的主配置模板,nginx.conf
是實際使用的配置文件,管理員可以通過修改nginx.conf
來定制 Nginx 的行為。 - scgi_params和scgi_params.default:與
fastcgi_params
類似,用于配置 SCGI(Simple Common Gateway Interface)相關的參數,用于在 Nginx 與 SCGI 服務器之間傳遞信息。 - uwsgi_params和uwsgi_params.default:用于配置 uWSGI 相關的參數,uWSGI 是一個應用服務器,常用于 Python Web 應用的部署。這些參數用于在 Nginx 與 uWSGI 服務器之間傳遞請求和響應信息。
/usr/share/nginx
- 該目錄用于存放 Nginx 的一些共享資源,如 HTML 文件、模塊配置文件等。
- html:默認情況下,Nginx 會將該目錄下的文件作為 HTTP 服務器的文檔根目錄,用于存放網站的靜態文件,如 HTML 頁面、圖片、CSS 樣式表、JavaScript 腳本等。
- 404.html和50x.html:分別是用于顯示 404(頁面未找到)和 50x(服務器內部錯誤等)錯誤頁面的 HTML 文件,當客戶端請求的頁面不存在或服務器發生錯誤時,Nginx 會返回相應的錯誤頁面給客戶端。
- bbs和www:這兩個子目錄可能是用于存放不同網站或不同應用的相關文件,每個子目錄下都有
index.html
文件作為默認首頁,logs
目錄用于存放訪問日志文件,如access_bbs.log
和access_www.log
分別記錄了對bbs
和www
應用的訪問記錄。
- modules:該目錄下的文件是 Nginx 模塊的配置文件,與
/usr/lib64/nginx/modules
中的動態模塊文件相對應,用于配置這些模塊的行為和參數。- mod-http-image-filter.conf:用于配置
ngx_http_image_filter_module
模塊,定義了圖片過濾相關的參數和規則。 - mod-http-perl.conf:用于配置
ngx_http_perl_module
模塊,指定了 Perl 腳本的路徑、加載順序等配置信息。 - mod-http-xslt-filter.conf:用于配置
ngx_http_xslt_filter_module
模塊,設置了 XSLT 轉換的相關參數和規則。 - mod-mail.conf:用于配置
ngx_mail_module
模塊,包含了郵件服務器相關的配置信息,如 SMTP、POP3、IMAP 協議的設置。 - mod-stream.conf:用于配置
ngx_stream_module
模塊,定義了 TCP 和 UDP 流處理的相關參數和規則。
- mod-http-image-filter.conf:用于配置
- 該目錄用于存放 Nginx 的動態模塊文件,這些模塊擴展了 Nginx 的功能。