小白成長之路-Nginx配置(二)

文章目錄

  • 一、localtion配置
    • 1.匹配規則
    • 2.匹配優先級
    • 3.配置案例
  • 二、rewrite
    • 1、 語法
    • 2、 可寫入字段
    • 3 配置案例
    • 4 if 指令
    • 5.sutoindex
    • 6. nginx配置中的常用變量
  • 三、配置Nginx狀態統計
    • 1.下載vts模塊
    • 2.編譯nginx


提示:以下是本篇文章正文內容,下面案例可供參考

一、localtion配置

配置路徑

location [ = | ~ | ~* | ^~ ] uri {

}
##在瀏覽器中輸入的:http://www.jx.com/s?id=1&test=123,稱作URL,即:統一資源定位符
##在WEB服務器中,對資源進行標識,URI,即統一資源標識符
寫在server字段中。

1.匹配規則

- **=** 精確匹配;
- **~** 正則匹配,區分大小寫;
- **~\*** 正則匹配,不區分大小寫;
- **^~** 匹配到即停止搜索;

2.匹配優先級

= > ^~ > ~ > ~* > 不帶任何字符 “/”。

3.配置案例

在這里插入圖片描述
在這里插入圖片描述
注:
1.

匹配的文件或者目錄
location /test {

}
只匹配目錄
location /test/ {

}

2.return ::停止處理請求,直接返回響應碼或重定向到其他 URL ;執行 return 指令后, location 中后續指令將不會被執行

return code [text];
return code URL;
return URL;例如:
location / {return 404; # 直接返回狀態碼
}location / {return 404 "pages not found"; # 返回狀態碼 + 一段文本
}#location / {
#  return 302 /bbs ; # 返回狀態碼 + 重定向地址
#}location / {return https://www.baidu.com ; # 返回重定向地址
}

二、rewrite

根據指定正則表達式匹配規則,重寫 URL 。應用場景: 新老域名的更替!!!

1、 語法

rewrite 正則表達式 要替換的內容 [flag];

2、 可寫入字段

server、location、if

示例:

rewirte /images/(.*\.jpg)$ /pic/$1; # $1是前面括號(.*\.jpg)的反向引用

flag 可選值的含義:

  • last: 重寫后的 URL 發起新請求,再次進入 server 段,重試 location 的中的匹配;
  • break :直接使用重寫后的 URL ,不再匹配其它 location 中語句;
  • redirect :返回 302 臨時重定向;
  • permanent :返回 301 永久重定向。

3 配置案例

server{listen 80;server_name www.jx.com; # 要在本地hosts文件進行配置root /usr/share/nginx/html;location /search {rewrite ^/(.*) https://www.baidu.com redirect;}location /images {rewrite /images/(.*) /pics/$1;}location /pics {rewrite /pics/(.*) /photos/$1;}location /photos {}
}
###生產環境不能使用.*,表示匹配任意!!!
#解析:
#當訪問 www.jx.com/search 時,會自動幫我們重定向到 https://www.baidu.com;
#當訪問 www.jx.com/images/1.jpg 時,第一步重寫 URL 為 www.jx.com/pics/1.jpg ,找到 pics 的 location ,繼續重寫 URL 為 www.jx.com/photos/1.jpg ,找到 /photos 的 location 后,去 html/photos 目錄下尋找 1.jpg 靜態資源。

4 if 指令

**語法:**if (condition) {…}

**可寫字段:**server、location

示例:

        location / {if ($http_user_agent ~ Chrome) {rewrite /(.*) /Chrome/$1 break;}if ($http_user_agent ~ Firefox) {rewrite /(.*) /Firefox/$1 break;}}
##測試192.168.115.111/index.html
set $var value; #設置變量

condition 判斷條件:

  • $variable 僅為變量時,值為空或以0開頭字符串都會被當做 false 處理;
  • = 或 != 相等或不等;
  • ~ 正則匹配;
  • ! ~ 非正則匹配;
  • ~* 正則匹配,不區分大小寫;
  • -f 或 ! -f 檢測文件存在或不存在;
  • -d 或 ! -d 檢測目錄存在或不存在;
  • -e 或 ! -e 檢測文件、目錄、符號鏈接等存在或不存在;
  • -x 或 ! -x 檢測文件可以執行或不可執行;

配置實例

server {listen 8080;server_name www.jx.com;root /usr/share/nginx/html;location / {if ( $uri = "/images/" ){rewrite (.*) /pics/ break;}}
}
#當訪問 www.jx.com/images/ 時,會進入 if 判斷里面執行 rewrite 命令。

5.sutoindex

用戶請求以 / 結尾時,列出目錄結構,可以用于快速搭建靜態資源下載網站。

這里是引用`在這里插入代碼片
server {
listen 80;
server_name www.jx.com;
location /download/ {
root /usr/share/nginx/html;
autoindex on; # 打開 autoindex,,可選參數有 on | off
autoindex_exact_size on; # 修改為off,以KB、MB、GB顯示文件大小,默認為on,以bytes顯示出?件的確切??
autoindex_format html; # 以html的方式進行格式化,可選參數有 html | json | xml
autoindex_localtime off; # 顯示的?件時間為?件的服務器時間。默認為off,顯示的?件時間為GMT時間
}
}
#當訪問 www.jx.com/download/ 時,會把服務器 /usr/share/nginx/html/download/ 路徑下的文件展示出來.

`

6. nginx配置中的常用變量

變量名含義
remote_add客戶端IP地址
remote_port客戶端端口
server_addr服務端IP地址
Server_port服務端端口
server_protocol服務端協議
binary_remote_addr二進制格式的客戶端IP地址
connectionTCP連接的序號,遞增
connection_requestTCP連接當前的請求數量
uri請求的URL,不包含參數
request ur請求的URL,包含參數
scheme協議名,http或https
request metho請求方法
request_length全部請求的長度,包含請求行、請求頭、請求體
args全部參數字符串
arg_參數名獲取特定參數值
is_argsURL中是否有參數,有的話返回?,否則返回空
query_string與args相同
host請求信息中的Host,如果請求中沒有Host行,則在請求頭中找,最后 使用nginx中設置的server_name。
http_user_agent用戶訪問方式
http_referer從哪些鏈接過來的請求
http_via每經過一層代理服務器,都會添加相應的信息
http_cookie獲取用戶cookie
request time處理請求已消耗的時間
https是否開啟了https,是則返回on,否則返回空
request_filename磁盤文件系統待訪問文件的完整路徑
document_root由URI和root/alias規則生成的文件夾路徑
limit_rate返回響應時的速度上限值

三、配置Nginx狀態統計

1.下載vts模塊

https://github.com/vozlt/nginx-module-vts

2.編譯nginx

tar xf nginx-module-vts-master.zip
cd nginx-1.22.1/
./configure --prefix=/usr/local/nginx/ --add-module=/root/nginx-module-vts-master && make && make install

注:
如果之前是編譯安裝,在安裝新的模塊前帶上之前編譯的所有模塊,然后再make&&make install
在這里插入圖片描述
把原來的備份一下
mv /usr/local/nginx/sbin/nginx /opt/nginx.bak
新的移動到我們定義的目錄下
cp ./nginx /usr/local/nginx/sbin
在檢查下版本就有這個新的模塊了在這里插入圖片描述

在去 /usr/local/nginx//conf/nginx.conf下添加如下內容
在這里插入圖片描述

在這里插入圖片描述
訪問結果
在這里插入圖片描述

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

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

相關文章

Qt的第一個程序

Qt的第一個程序 1.hello world2.使用圖形化拖拽方式3.使用C代碼的方式3.1.頭文件3.2.setText3.3.對象樹 4.設計MyLabel5.亂碼問題 🌟🌟hello,各位讀者大大們你們好呀🌟🌟 🚀🚀系列專欄&#xff…

圖書數據接口

基本說明: 接口地址:http://data.isbn.work/openApi/getInfoByIsbn?isbn{isbn}&appKey{appkey}返回格式:json請求方式:get請求示例:http://data.isbn.work/openApi/getInfoByIsbn?isbn9787513159074&appKey…

MongoDB原理

目錄 一、概念 二、架構 2.1 邏輯結構 2.2 數據模型 2.3 存儲引擎:WiredTiger 三、事務 一、概念 MongoDB是文檔數據庫,基本存儲單元是 文檔(Document),以BSON格式(一種類json的二進制形式&#xff…

《解碼音頻:從基礎到未來的聽覺探索》

音頻:開啟聲音世界的大門 在生活的每一個角落,音頻如影隨形,編織出豐富多彩的聽覺體驗。清晨,第一縷陽光尚未完全照進房間,手機里溫柔的鬧鐘鈴聲,將我們從睡夢中輕輕喚醒,開啟活力滿滿的一天。通…

web安全之h2注入系統學習

起初是在N1 Junior 2025 上面碰到一題,考點是h2的sql注入。由于之前沒有見過,趁此機會系統學習一番 實驗代碼 public class H2Inject {public static void main(String[] args) throws Exception{JdbcDataSource dataSource new JdbcDataSource();dataS…

AWS認證系列:考點解析 - cloud trail,cloud watch,aws config

🎯一句話總覽: 服務名類比/角色主要功能CloudTrail監控攝像頭錄像回放記錄“誰在什么時候做了什么操作”CloudWatch護士測體溫 護士喊醫生實時監控系統狀態,并能報警/自動應對AWS Config保安巡邏 記錄資產變更歷史記錄 AWS 資源的“配置狀…

Java八股文——數據結構「數據結構篇」

了解哪些數據結構? 面試官您好,我了解并使用過多種數據結構。在我的理解中,數據結構可以分為幾個大的類別,每一類都有其獨特的優勢和適用場景。 1. 線性結構 (Linear Structures) 這類結構的特點是數據元素之間存在一對一的線性…

C#測試調用EPPlus根據批注設置excel單元格內容

EPPlus也是常用的Excel文件操作庫,但不同于ClosedXML,使用EPPlus前需要設置授權信息,商業應用需要設置商業授權,個人使用或非商業應用也需要設置授權(測試的時候只需設置全名,保存excel文件時會保存到文件詳…

windows本地搭建skywalking, 線程池中traceId不丟失

1.從官網下載9.0.0版本 Downloads | Apache SkyWalking 其它歷史版本的 下載地址 Index of /dist/skywalking 這個頁面 可以下載 apm服務: apache-skywalking-apm-9.0.0.tar.gz agent的包: apache-skywalking-java-agent-9.0.0.tgz 2.解壓后, (看情況去config路徑下 appli…

多模態大語言模型arxiv論文略讀(135)

Agent S: An Open Agentic Framework that Uses Computers Like a Human ?? 論文標題:Agent S: An Open Agentic Framework that Uses Computers Like a Human ?? 論文作者:Saaket Agashe, Jiuzhou Han, Shuyu Gan, Jiachen Yang, Ang Li, Xin Eric…

wpa_supplicant連接到了路由,但是 udhcpc會分配到不同網段的ip,路由器ip為192.168.0網段,板子分配ip為192.168.1的網段

wpa_supplicant連接到了路由,但是 udhcpc會分配到不同網段的ip,路由器ip為192.168.0網段,板子分配ip為192.168.1的網段 你提到的情況: 使用 wpa_supplicant 成功連接到路由器; 然后通過 udhcpc(DHCP客戶端&#xff09…

[Hestia]開源網絡服務器控制面板,快速、可靠、開源

測評介紹 本期測評試用一下Hestia這款面板。Hestia是一個由國際社區支持開發的開源項目,2019年正式發布,目前已積累1.1萬余次代碼提交,幾乎每周都有十多次的代碼提交,更新熱度很高。僅支持比較新的debian和ubuntu,對于…

Windows 安裝 Redis8.0.2

1.下載 Releases redis-windows/redis-windowshttps://github.com/redis-windows/redis-windows/releases 下載后直接解壓到想要的安裝目錄就行了,啟動Redis直接雙擊 redis-server.exe 文件就行了,Redis啟動后雙擊 redis-cli.exe 就可以直接連接到Redi…

GitHub中openmmlab和Detectron2的區別

MMDetection 和 Detectron2 都是計算機視覺領域中流行的開源目標檢測框架,它們有許多相似之處,但也存在一些關鍵差異。以下是兩者的主要區別: 1. 開發團隊與社區 MMDetection 由中國開源組織 OpenMMLab 開發維護,社區以中文用戶為…

開疆智能CCLinkIE轉ModbusTCP網關連接施耐德TCP從站配置案例

本案例是三菱PLC通過CCLinkIE轉ModbusTCP網關連接施耐德Modicon M262 Logic/Motion Controller的配置案例 配置方法: 首先設置Modicon M262 Logic/Motion Controller Modbus TCP 從站設備 I/O 映射選項卡 I/O 以如下方式從主站視角映射到 Modbus 寄存器&#xff1…

【源碼】Reactive 源碼

前言 用了很長時間的 componsition-api 了,最近想看看源碼,抱著單純的學習心態先從 reactive 開始吧。 個人習慣: 看代碼要帶著問題去看,不要盲目的去看問題就是這次看源碼的主線,要圍繞著主線去展開,過…

銀河麒麟 | ubuntu 安裝國產達夢DM8數據庫(安裝+外網通+IDEA連接)

目錄 官網下載安裝 下載安裝包 創建安裝用戶組dinstall 創建安裝用戶dmdba并指定組 創建DM8軟件安裝目錄修改權限 檢查、修改系統資源限制 解壓.zip的壓縮包 安裝mount數據庫 圖形化安裝 清除之前的掛載 開啟Disql服務 修改dmdba的環境變量 檢查狀態 進入數據庫 …

MySQL與Oracle視圖:深入解析與全面對比

視圖概念 視圖在 MySQL 與Oracle中本質上是一種虛擬表,其數據并非實際存儲,而是基于一個或多個基礎表的查詢結果動態生成。它像是對復雜查詢的一種封裝,極大地簡化了數據的查詢操作。例如,當我們需要頻繁從多個關聯表中獲取特定數…

uniapp通過webview套h5時使用plus調取藍牙/usb打印

安卓使用usb調取打印機 /*** 安卓usb調取打印機*param { string | bytes[] } html 傳入的打印內容*傳入一段文本或一個bytes數組* returns*/ export const printUsb (html) > {return new Promise((resolve, reject) > {if (!window.plus) return reject(new Error(&qu…

吃透 Golang 基礎:基于共享變量的并發

文章目錄 sync.Mutex 互斥鎖sync.RWMutex 讀寫鎖sync.Once 惰性初始化Goroutine 與線程動態棧Goroutine 調度GOMAXPROCSGoroutine 沒有 ID 號 上一篇文章當中我們已經系統性地回顧了在 Go 當中基于 Goroutine 和 Channel 進行并發控制的方法,Goroutine 指的是 Golan…