簡述nginx.conf配置

#nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù)。
worker_processes  1;
# 事件區(qū)塊開始
events {
    #單個(gè)進(jìn)程最大連接數(shù)(最大連接數(shù)=連接數(shù)*進(jìn)程數(shù))
    #根據(jù)硬件調(diào)整,和前面工作進(jìn)程配合起來用,盡量大,但是別把cpu跑到100%就行。每個(gè)進(jìn)程允許的最多連接數(shù),理論上每臺(tái)nginx服務(wù)器的最大連接數(shù)為。
    worker_connections  1024;
}
#設(shè)定http服務(wù)器,利用它的反向代理功能提供負(fù)載均衡支持
http {
    #include:導(dǎo)入外部文件mime.types,將所有types提取為文件,然后導(dǎo)入到nginx配置文件中
    include       mime.types;
     #默認(rèn)文件類型
    default_type  application/octet-stream;
    #開啟高效文件傳輸模式,sendfile指令指定nginx是否調(diào)用sendfile函數(shù)來輸出文件,對于普通應(yīng)用設(shè)為 on,如果用來進(jìn)行下載等應(yīng)用磁盤IO重負(fù)載應(yīng)用,可設(shè)置為off,以平衡磁盤與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的負(fù)載。注意:如果圖片顯示不正常把這個(gè)改成off。
    #sendfile指令指定 nginx 是否調(diào)用sendfile 函數(shù)(zero copy 方式)來輸出文件,對于普通應(yīng)用,必須設(shè)為on。如果用來進(jìn)行下載等應(yīng)用磁盤IO重負(fù)載應(yīng)用,可設(shè)置為off,以平衡磁盤與網(wǎng)絡(luò)IO處理速度,降低系統(tǒng)uptime。
    sendfile        on;
      #長連接超時(shí)時(shí)間,單位是秒
    keepalive_timeout  65;
    # 第一個(gè)Server區(qū)塊開始,表示一個(gè)獨(dú)立的虛擬主機(jī)站點(diǎn)
    server {
        # 提供服務(wù)的端口,默認(rèn)80
        listen       80;
        # 提供服務(wù)的域名主機(jī)名
        server_name  localhost;
        #對 "/" 啟用反向代理,第一個(gè)location區(qū)塊開始
        location / {
            root   html;  #服務(wù)默認(rèn)啟動(dòng)目錄
            index  index.html index.htm; # 默認(rèn)的首頁文件,多個(gè)用空格分開
        }
        # 反向代理"/test/",
        location /test/ {
            # 以/test/請求開頭的接口,那么就去訪問這個(gè)ip地址( http://localhost:8080/)的后臺(tái)端口
            proxy_pass http://localhost:8080/;
        }
         # 錯(cuò)誤頁面路由
        error_page   500 502 503 504  /50x.html; # 出現(xiàn)對應(yīng)的http狀態(tài)碼時(shí),使用50x.html回應(yīng)客戶
        location = /50x.html { # location區(qū)塊開始,訪問50x.html
            root   html;  # 指定對應(yīng)的站點(diǎn)目錄為html
        }
    }
}

基本原理理解

主要分為三個(gè)模塊:全局塊、events塊、http塊

  1. 全局塊
    • 運(yùn)行 Nginx 服務(wù)器的用戶(組)
    • 允許生成的 worker process 數(shù)
    • 進(jìn)程 PID 存放路徑
    • 日志存放路徑
    • 配置文件的引入

worker_processes: nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù)。

  1. events塊
    • 是否開啟對多 work process 下的網(wǎng)絡(luò)連接進(jìn)行序列化
    • 是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接
    • 選取哪種事件驅(qū)動(dòng)模型來處理連接請求
    • 每個(gè) word process 可以同時(shí)支持的最大連接數(shù)

worker_connections: 表示每個(gè) work process 支持的最大連接數(shù)為 1024.

  1. http塊
    • http全局塊:http全局塊配置的指令包括文件引入、MIME-TYPE 定義、日志自定義、連接超時(shí)時(shí)間、單鏈接請求數(shù)上限等。
    • server 塊:這塊和虛擬主機(jī)有密切關(guān)系,虛擬主機(jī)從用戶角度看,和一臺(tái)獨(dú)立的硬件主機(jī)是完全一樣的,該技術(shù)的產(chǎn)生是為了 節(jié)省互聯(lián)網(wǎng)服務(wù)器硬件成本。每個(gè) http 塊可以包括多個(gè) server 塊,而每個(gè) server 塊就相當(dāng)于一個(gè)虛擬主機(jī)。而每個(gè) server 塊也分為全局 server 塊,以及可以同時(shí)包含多個(gè) locaton 塊。
    • 全局 server 塊:最常見的配置是本虛擬機(jī)主機(jī)的監(jiān)聽配置和本虛擬主機(jī)的名稱或IP配置。
    • location 塊:一個(gè) server 塊可以配置多個(gè) location 塊。這塊的主要作用是基于 Nginx 服務(wù)器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機(jī)名稱 (也可以是IP 別名)之外的字符串(例如 前面的 /uri-string)進(jìn)行匹配,對特定的請求進(jìn)行處理。 地址定向、數(shù)據(jù)緩 存和應(yīng)答控制等功能,還有許多第三方模塊的配置也在這里進(jìn)行。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容