nginx.conf 配置文件 詳細解釋

文章目錄

        • nginx.conf 是 Nginx 的主要配置文件,其中可以配置許多模塊來定義服務器行為。以下是一些常見的 Nginx 模塊以及它們的作用:
          • 1. **`http` 模塊**:
          • 2. **`server` 模塊**:
          • 3. **`location` 模塊**:
          • 4. **`events` 模塊**:
          • 5. **`error_log` 模塊**:
          • 6. **`access_log` 模塊**:
          • 7. **`index` 模塊**:
          • 8. **`proxy` 模塊**:
          • 9. **`ssl` 模塊**:
          • 10. **`gzip` 模塊**:

nginx.conf 是 Nginx 的主要配置文件,其中可以配置許多模塊來定義服務器行為。以下是一些常見的 Nginx 模塊以及它們的作用:
1. http 模塊
http {# 全局配置
}
  • 作用: 定義 HTTP 服務器的全局配置。

  • 詳細解釋: 這個模塊包含了整個 HTTP 服務器的配置,包括全局性質的配置項,如日志、連接池大小等。

  • http 模塊是 Nginx 配置中的頂層模塊,用于配置 HTTP 服務器的全局設置。以下是一些常見的 http 模塊中的配置指令以及它們的作用:

  • include 指令

    include /etc/nginx/conf.d/*.conf;
    
    • 作用: 用于包含其他配置文件,使配置文件結構更模塊化和易于管理。
  • server_tokens 指令

    server_tokens off;
    
    • 作用: 控制服務器信息的顯示。設置為 off 可以禁用服務器信息的顯示,提高安全性。
  • sendfile 指令

    sendfile on;
    
    • 作用: 決定是否啟用系統調用 sendfile 來發送文件,可以提高文件傳輸效率。
  • tcp_nopush 指令

    tcp_nopush on;
    
    • 作用: 啟用或禁用 TCP 的 TCP_NOPUSH 選項。如果啟用,將在頭部發送完畢后立即發送數據,提高響應速度。
  • tcp_nodelay 指令

    tcp_nodelay on;
    
    • 作用: 啟用或禁用 TCP 的 TCP_NODELAY 選項。如果啟用,禁用 Nagle 算法,減小數據包的傳輸延遲。
  • keepalive_timeout 指令

    keepalive_timeout 65;
    
    • 作用: 設置客戶端與服務器保持連接的超時時間,單位為秒。超過這個時間,如果沒有新的請求進來,連接將被關閉。
  • client_max_body_size 指令

    client_max_body_size 10m;
    
    • 作用: 限制客戶端請求的最大請求體大小。用于防止惡意用戶發送大體積的請求。
  • gzip 指令

    gzip on;
    
    • 作用: 啟用或禁用對客戶端響應的內容進行 Gzip 壓縮,以減小傳輸的數據量。
  • gzip_types 指令

    gzip_types text/plain application/xml;
    
    • 作用: 指定需要進行 Gzip 壓縮的文件類型,這里是對文本和 XML 文件進行壓縮。
  • default_type 指令

    default_type application/octet-stream;
    
    • 作用: 設置默認的 MIME 類型,當無法從文件擴展名或內容中猜測出類型時使用。

這些是使用無序列表排列的 http 模塊中的一些常見配置指令。在實際使用中,根據服務器的需求和安全性要求,可以選擇啟用或禁用這些功能,并根據需要進行定制。

2. server 模塊
  • 作用: 配置虛擬主機,定義服務器的監聽地址和端口,以及服務器名稱等。
  • 詳細解釋: 這個模塊用于定義一個虛擬主機,包括監聽的端口和服務器名稱等信息。
    server 模塊是 Nginx 配置中的一個重要模塊,用于配置虛擬主機。以下是一些 server 模塊中的常見配置指令及其作用,以及一些示例說明:
server {listen 80; # 監聽的端口號server_name example.com; # 服務器的域名或 IP 地址# 根路徑的配置location / {root /var/www/html; # 根目錄index index.html index.htm; # 默認文件索引}# 匹配 /images/ 路徑的配置location /images/ {alias /var/www/images/; # 別名,指定文件夾的實際路徑}# 反向代理配置location /app/ {proxy_pass http://backend_server; # 后端服務器的地址proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# SSL/TLS 配置listen 443 ssl; # 監聽 443 端口,并啟用 SSLssl_certificate /etc/nginx/ssl/cert.pem; # SSL 證書文件路徑ssl_certificate_key /etc/nginx/ssl/key.pem; # SSL 私鑰文件路徑# 其他 SSL/TLS 配置ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384';ssl_prefer_server_ciphers off;# 錯誤日志配置error_log /var/log/nginx/error.log error;# 訪問日志配置access_log /var/log/nginx/access.log;# 其他配置client_max_body_size 10m; # 最大請求體大小限制
}
  • listen 指令

    • 作用: 配置監聽的端口和 IP 地址。
    • 示例: listen 80; 表示監聽 HTTP 請求的默認端口 80。
  • server_name 指令

    • 作用: 配置服務器的域名或 IP 地址。
    • 示例: server_name example.com; 指定服務器響應來自 example.com 的請求。
  • root 指令

    • 作用: 指定服務器的根目錄,用于定位請求的靜態文件。
    • 示例: root /var/www/html; 設置服務器的根目錄為 /var/www/html
  • index 指令

    • 作用: 配置默認的文件索引順序。
    • 示例: index index.html index.htm; 指定在請求的目錄中查找的默認文件。
  • location 指令

    • 作用: 配置不同 URL 路徑的處理規則。
    • 示例:
      location / {try_files $uri $uri/ =404;
      }
      
      上述示例指定根路徑 / 的處理規則,嘗試查找請求的文件,如果找不到則返回 404 錯誤。
  • error_page 指令

    • 作用: 配置處理特定 HTTP 錯誤碼的頁面或重定向。
    • 示例:
      error_page 500 502 503 504 /50x.html;
      
      上述示例配置處理 500、502、503、504 錯誤碼,將請求重定向到 /50x.html
  • location = /50x.html 指令

    • 作用: 配置精確匹配 /50x.html 路徑的處理規則。
    • 示例:
      location = /50x.html {root /usr/share/nginx/html;
      }
      
      上述示例配置處理請求精確匹配 /50x.html 路徑的情況,返回位于 /usr/share/nginx/html 目錄下的文件。
  • access_log 指令

    • 作用: 配置訪問日志的路徑。
    • 示例: access_log /var/log/nginx/example.access.log; 指定訪問日志的路徑。
  • error_log 指令

    • 作用: 配置錯誤日志的路徑和級別。
    • 示例: error_log /var/log/nginx/example.error.log; 指定錯誤日志的路徑和級別。
3. location 模塊
server {listen 80;location /images/ {# 前綴匹配,匹配以 /images/ 開頭的 URIalias /var/www/images/;# 示例 URI: /images/photo.jpg}location = /about {# 精確匹配 /aboutroot /var/www/html;index about.html;# 示例 URI: /about}location ~ \.php$ {# 正則表達式匹配,匹配以 .php 結尾的 URIinclude snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;# 示例 URI: /index.php}location ~* \.png$ {# 正則表達式不區分大小寫匹配,匹配以 .png 結尾的 URIroot /var/www/images/;# 示例 URI: /image.png}location ^~ /downloads/ {# 非正則表達式匹配,優先匹配以 /downloads/ 開頭的 URIalias /var/www/downloads/;# 示例 URI: /downloads/file.zip}location /files/ {# 包含特殊字符,匹配以 /files/ 開頭的 URIalias /var/www/files/;# 示例 URI: /files/document.pdf}location /docs {# 包含特殊字符,匹配以 /docs 開頭的 URItry_files $uri $uri/ /docs/index.html;# 示例 URI: /docs/manual/}location ~ ^/user/(?<username>[a-zA-Z0-9_-]+)/profile$ {# 命名捕獲組,匹配類似 /user/johndoe/profile 的 URI,并捕獲用戶名alias /var/www/profiles/$username/;# 示例 URI: /user/johndoe/profile}location / {# 包含 if 條件語句,根據條件匹配執行不同的配置if ($query_string ~ "param=value") {return 403;}# 默認配置,匹配任何 URIroot /var/www/default/;index index.html;# 示例 URI: /home}
}
  • 作用: 定義不同 URL 路徑的配置,用于匹配請求的 URI。

  • 詳細解釋: location 模塊根據請求的 URI 進行匹配,并提供不同的配置,允許你對不同的 URL 路徑應用不同的設置。
    當使用 location 塊時,~^ 是兩個常見的修飾符,它們用于指定正則表達式匹配的方式。以下是對它們的解釋說明:

  • ~ 符號:

    location ~ \.php$ {# 正則表達式匹配,匹配以 .php 結尾的 URIinclude snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;
    }
    
    • 解釋: ~ 用于指定一個區分大小寫的正則表達式匹配。在上面的例子中,該 location 配置將匹配以 .php 結尾的 URI,例如 /index.php
  • ^ 符號:

    location ^~ /downloads/ {# 非正則表達式匹配,優先匹配以 /downloads/ 開頭的 URIalias /var/www/downloads/;
    }
    
    • 解釋: ^ 用于指定一個非正則表達式的前綴匹配,該匹配會優先于其他正則表達式匹配。在上面的例子中,該 location 配置將優先匹配以 /downloads/ 開頭的 URI。

    使用這些符號時需要注意以下事項:

    • 如果使用 ~ 進行正則表達式匹配,則匹配是區分大小寫的。
    • 如果使用 ^ 進行前綴匹配,該匹配會優先于其他正則表達式匹配,即使其他正則表達式匹配更準確。

    這樣的解釋有助于理解 location 塊中這些符號的作用,以及它們在正則表達式匹配中的不同用途。

4. events 模塊
events {# 配置與連接處理有關的參數worker_connections 1024;  # 每個工作進程的最大連接數# 可選配置項# multi_accept on;        # 同時接受多個新連接# use epoll;              # 使用 epoll 事件模型# worker_connections 2048; # 可以在這里覆蓋全局的 worker_connections 設置
}
  • 作用: 配置與連接處理有關的參數,如連接的超時時間等。
  • 詳細解釋: events 模塊用于配置與連接處理相關的參數,例如允許的最大連接數。
5. error_log 模塊
http {# ... 其他 http 模塊配置# 配置錯誤日志的位置和級別error_log /var/log/nginx/error.log error;# 可選配置項# error_log /var/log/nginx/debug.log debug;   # 同時記錄調試級別的日志# error_log syslog:server=127.0.0.1,facility=local7,tag=nginx,severity=info;   # 將錯誤日志發送到 syslogserver {# ... 其他 server 模塊配置# 配置該虛擬主機的錯誤日志error_log /var/log/nginx/example.com_error.log warn;# 可選配置項# error_log /var/log/nginx/example.com_debug.log debug;}
}
  • 作用: 配置錯誤日志的位置和級別。
  • 詳細解釋: error_log 模塊用于指定錯誤日志的路徑和級別,以便記錄服務器發生的錯誤。
6. access_log 模塊
http {# ... 其他 http 模塊配置# 配置訪問日志的位置和格式access_log /var/log/nginx/access.log;# 可選配置項# access_log /var/log/nginx/access_debug.log debug;   # 同時記錄調試級別的訪問日志# access_log syslog:server=127.0.0.1,facility=local7,tag=nginx,severity=info;   # 將訪問日志發送到 syslogserver {# ... 其他 server 模塊配置# 配置該虛擬主機的訪問日志access_log /var/log/nginx/example.com_access.log;# 可選配置項# access_log /var/log/nginx/example.com_access_debug.log debug;}
}
  • 作用: 配置訪問日志的位置和格式。
  • 詳細解釋: access_log 模塊用于指定訪問日志的路徑,記錄客戶端的訪問請求信息。
7. index 模塊
http {# ... 其他 http 模塊配置# 指定默認的文件索引順序index index.html index.htm;# 可選配置項# index index.php;    # 添加 index.php 到默認索引列表# index index.html index.htm default.html;  # 自定義索引文件列表# index;   # 禁用默認索引,不自動尋找索引文件
}
  • 作用: 指定默認的文件索引順序。
  • 詳細解釋: index 模塊用于指定當客戶端請求一個目錄時,服務器應該尋找哪些文件作為默認索引文件。
8. proxy 模塊
http {# ... 其他 http 模塊配置server {# ... 其他 server 模塊配置location / {# 反向代理配置proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# 可選配置項# location /app/ {#     proxy_pass http://backend_server;#     proxy_set_header Host $host;#     proxy_set_header X-Real-IP $remote_addr;#     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# }}
}
  • 作用: 配置反向代理服務器。
  • 詳細解釋: proxy 模塊用于配置反向代理,將請求轉發給后端服務器,并將響應返回給客戶端。
9. ssl 模塊
server {listen 443 ssl;  # 監聽 443 端口,并啟用 SSL# SSL 證書和私鑰的配置ssl_certificate /etc/nginx/ssl/cert.pem;  # SSL 證書文件路徑ssl_certificate_key /etc/nginx/ssl/key.pem;  # SSL 私鑰文件路徑# 可選配置項# ssl_protocols TLSv1.2 TLSv1.3;  # 指定支持的 SSL/TLS 協議版本# ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384';  # 指定加密算法# ssl_prefer_server_ciphers off;  # 在客戶端和服務器之間選擇密碼套件時,使用服務器的順序server_name example.com;  # 服務器的域名或 IP 地址# ... 其他 server 配置
}
  • 作用: 配置 SSL/TLS 相關設置。
  • 詳細解釋: ssl 模塊用于配置支持 SSL/TLS 協議的服務器,包括證書和私鑰的指定等。
10. gzip 模塊
	http {# ... 其他 http 模塊配置server {# ... 其他 server 模塊配置# 啟用 Gzip 壓縮gzip on;# 可選配置項# gzip_types text/plain application/xml;  # 指定需要進行 Gzip 壓縮的文件類型# gzip_min_length 1000;  # 設置最小壓縮文件大小# gzip_proxied any;  # 允許通過代理服務器進行壓縮# gzip_disable "MSIE [1-6]\.";  # 禁用對特定 User-Agent 的壓縮location / {# ... 其他 location 配置# 關閉對特定 User-Agent 的壓縮gzip_disable "MSIE [1-6]\.";}}}
  • 作用: 配置 Gzip 壓縮。
  • 詳細解釋: gzip 模塊用于啟用或禁用對客戶端響應的內容進行 Gzip 壓縮,以減小傳輸的數據量。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163551.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163551.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163551.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件系統測試有哪些測試流程?系統測試報告編寫注意事項

在軟件開發的過程中&#xff0c;系統測試是至關重要的一環&#xff0c;它的目的是驗證和評估軟件產品是否符合預期的質量標準&#xff0c;以確保系統的穩定性、可靠性和安全性。 一、軟件系統測試的測試流程 1、需求分析與測試計劃制定&#xff1a;根據需求分析確定測試目標、…

軟件開發及交付的項目管理角色

在軟件開發及交付過程中&#xff0c;通常會涉及不同的角色和職責&#xff0c;包括業務角色、技術角色和管理角色。這些角色在項目管理中發揮著不同的作用&#xff0c;以確保項目的成功和交付高質量的產品。 業務角色&#xff1a;包括產品經理、業務分析師和業務運營人員等職位…

外貿電商網站用什么服務器好?

外貿電商網站用什么服務器好&#xff1f; 電商網站選好域名后&#xff0c;接著就是為網站選擇一個好的網站服務器&#xff0c;截止2015年初&#xff0c;國內站長中約有三百多萬的網站存放在美國服務器&#xff0c;美國服務器為什么會有如此之多的用戶選擇使用呢&#xff0c;站…

張弛聲音變現課,青春劇配音實用攻略

在為青春劇添聲時&#xff0c;配音藝術家須要捕獲并傳達劇中年輕角色的活潑精神、成長道路上的激情&#xff0c;以及他們在面對友情、愛情和理想時的情緒起伏。青春劇特別關注年輕人的成長故事&#xff0c;著重描繪他們在成長中的經歷和變化。下面是一些為青春劇配音的建議&…

TP5制作圖片壓縮包

目標:將多張圖片制成在一個壓縮包內,供調取使用 public function test() {//引入壓縮包類$zip new \ZipArchive();//新定義一個zip包$zipname ROOT_PATH./public/zip/.date("YmdHis").rand(111,999)..zip;if ($zip->open($zipname, \ZipArchive::CREATE) true…

2023年跨界融合創新應用合作發展大會-核心PPT資料下載

一、峰會簡介 本次大會主題為“創新地理信息價值 服務數字中國建設”。1天主論壇和6場專題論壇的報告&#xff0c;圍繞主題深入探討地理信息產業與相關重要應用領域的跨界融合和深化合作。 本屆大會將搭建地理信息產業與旅游、林業、環保、氣象、住建、水利、農業農村、電力等…

數據報文去哪兒了

背景 今天遇到一個詭異的現象&#xff0c;當接口附加一個IP時&#xff0c;主IP業務正常&#xff0c;附加IP死活不行&#xff0c;tcpdump抓包確可以正常抓到到業務的報文&#xff0c;但是在PREROUTING raw添加規則確沒有命中&#xff0c;說明報文沒有到netfilter框架內&#xff…

RTL8762D SDK

0 Preface/Foreword SDK: Software Development kit 1、硬件介紹 1.1 General Description A624RO基本信息&#xff1a; ultra-low-powerBluetooth 5.1 low energy applicationsa leading RF transceiverlow-power ARM Cortex-M4FIR transceiver 1.1.1 MCU platform MCU…

openssl加解密-干貨分享

0.需要包含的頭文件和預定義常量 #include <openssl/rand.h>#include <fstream>#include <openssl/aes.h>#include <openssl/rand.h>// 加密密鑰和初始化向量&#xff08;IV&#xff09;長度#define AES_KEY_LENGTH 32#define AES_IV_LENGTH 16 1.密…

競賽選題 題目:垃圾郵件(短信)分類 算法實現 機器學習 深度學習 開題

文章目錄 1 前言2 垃圾短信/郵件 分類算法 原理2.1 常用的分類器 - 貝葉斯分類器 3 數據集介紹4 數據預處理5 特征提取6 訓練分類器7 綜合測試結果8 其他模型方法9 最后 1 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分享的是 基于機器學習的垃圾郵件分類 該項目…

3分鐘使用 WebSocket 搭建屬于自己的聊天室(WebSocket 原理、應用解析)

文章目錄 WebSocket 的由來WebSocket 是什么WebSocket 優缺點優點缺點 WebSocket 適用場景主流瀏覽器對 WebSocket 的兼容性WebSocket 通信過程以及原理建立連接具體過程示例Sec-WebSocket-KeySec-WebSocket-Extensions 數據通信數據幀幀頭&#xff08;Frame Header&#xff09…

組合數學學習

指數生成函數可以與排列結合在一起&#xff0c;而冪級數和 組合結合在一起 如果要進行計算的值不是一個具體的值&#xff0c;那么就要考慮生成函數

Windows如何使用key登錄Linux服務器

場景&#xff1a;因為需要回收root管理員權限&#xff0c;禁止root用戶遠程登錄&#xff0c;辦公環境只允許普通用戶遠程登錄&#xff0c;且不允許使用密碼登錄。 一、生成與配置ssh-key 1.使用root管理員權限登錄到目標系統。 2.創建一個新的普通用戶&#xff0c;和設置密碼用…

Java,File類與IO流,File類與IO流的概述

File的概述&#xff1a; File定義在java.io包下。 一個File對象代表硬盤或網絡中可能存在的一個文件或者文件目錄&#xff08;俗稱文件夾&#xff09;&#xff0c;與平臺無關。 File能新建、刪除、重命名文件和目錄&#xff0c;但File不能訪問文件內容本身。如果需要訪問文件…

用uniapp在微信小程序實現畫板(電子簽名)功能

目錄 一、效果展示 二、插件推薦與引入 三、代碼具體應用 四、h5端將base64轉換為url 一、效果展示 二、插件推薦與引入 手寫板、簽字板&#xff1b;<zwp-draw-pad /> - DCloud 插件市場 這個在微信小程序引入時內容簡單&#xff0c;且涉及的方法很多&#xff0c;…

【C/C++】排序算法代碼實現

這里&#xff0c;匯總了常見的排序算法具體代碼實現。使用C語言編寫。 排序算法實現 插入排序冒泡排序選擇排序快速排序希爾排序歸并排序 插入排序 #include <stdio.h> #include <stdlib.h>void InsertSort(int arr[],int n){int i,j,temp;for(i 1;i < n;i){ …

Pinia狀態持久化——插件pinia-plugin-persistedstate

pinia-plugin-persistedstate 旨在通過一致的 API 為 Pinia Store 提供持久化存儲。如果希望保存一個完整的 Store&#xff0c;或者需要細粒化配置 storage 和序列化的方式&#xff0c;該插件都提供了相應的功能&#xff0c;并且可以在想要持久化的 Store 上使用相同的配置。 …

Python 異常的傳遞性

實例 這里就簡單用2個function來演示一下異常的傳遞性 func1 這里num 1/0明顯是一個ZeroDivisionError錯誤&#xff0c;作為演示 def func1():print("fun1 開始執行")num 1 / 0print("func1 結束執行") func2 def func2():print("func2 開始執…

tomcat國密ssl測試

文章目錄 程序包準備部署配置訪問測試 程序包準備 下載 tomcat8.5 https://www.gmssl.cn/gmssl/index.jsp 下載 tomcat 國密組件及證書 本次測試所有的程序文件均已打包&#xff0c;可以直接 點擊下載 部署配置 自行完成 完成centos 的jdk配置。 部署tomcat,將 gmssl4t.jar…

數字孿生農村供水工程平臺:為鄉村振興注入新活力

隨著科技的不斷進步&#xff0c;數字孿生技術逐漸成為各行業創新發展的重要驅動力。在水利領域&#xff0c;數字孿生農村供水平臺以其獨特的優勢&#xff0c;為農村供水系統帶來了革命性的變革。本文將為您詳細介紹數字孿生農村供水平臺的核心特點及優勢&#xff0c;帶您領略智…