国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

nginx腳本,Nginx變量截取字符串,拼接字符串,nginx打印日志,添加修改HTTP請求頭,添加修改HTTP響應(yīng)頭

這篇具有很好參考價值的文章主要介紹了nginx腳本,Nginx變量截取字符串,拼接字符串,nginx打印日志,添加修改HTTP請求頭,添加修改HTTP響應(yīng)頭。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

nginx變量

nginx變量命名,以$開頭。

舉例:'nginx.conf 文件'中有下面這一行配置:
 
set $var "hello world";
 
特點:我們看到,'Nginx 變量名'前面'有一個 $ 符號',這是'語法上'的要求
 
強調(diào):所有的 'Nginx 變量'在 Nginx 配置文件中'引用時都須帶上 $ 前綴',這種表示方法和'Perl、PHP' 這些語言是'相似'的

變量賦值

舉例:'nginx.conf 文件'中有下面這一行配置:
 
set $var "hello world";
 
特點:我們看到,'Nginx 變量名'前面'有一個 $ 符號',這是'語法上'的要求
 
強調(diào):所有的 'Nginx 變量'在 Nginx 配置文件中'引用時都須帶上 $ 前綴',這種表示方法和'Perl、PHP' 這些語言是'相似'的

打印日志(打印變量)

打印日志的目的,是想知道某個變量的值是多少,通過add_header設(shè)置響應(yīng)頭,間接地打印日志。

通過設(shè)置響應(yīng)頭,然后在瀏覽器上請求nginx地址,然后得到的響應(yīng)頭,就知道變量值是多少了。


        location / {
            proxy_pass http://127.0.0.1:8085;
            add_header mmm "123";
            set $test "456";
            add_header nnn $test;
        }
     }

Nginx特有的語法

這個需要注意一下,特別是正則 ~?,后面截取字符串需要用到。

模式

含義

?=

=?表示精確匹配

?^~

^?進行前綴匹配,~ 表示區(qū)分大小寫

?~?

~?區(qū)分大小寫的正則匹配

?~*?

~*?不區(qū)分大小寫的正則匹配

?!~

區(qū)分大小寫不匹配

?!~*

不區(qū)分大小寫不匹配

?

?Nginx變量截取字符串,拼接字符串

同樣是間接的方式,核心思想,使用正則()匹配,然后使用$1、$2、$3...取值。
比如有個字符串,A123B789C,使用正則表達式,A(\d+)B(\d+)C,然后就可以使用$1取值為123,$2取值為789

        location / {
            proxy_pass http://127.0.0.1:8085;

			#定義一個變量$myname,為空字符
			set $myname "";
			#定義一個變量為測試字符串
			set $user "A123B789C";

			#使用正則匹配
			if ( $user ~ A(\d+)B(\d+)C ) {
				# set $mmm $1;
				# set $nnn $2;
				#字符串的連接直接挨著就行了,不需要連接符。
				set $myname $1$2;
			}

			#間接打印日志,前臺ccc 響應(yīng)頭的值為:123789
			add_header ccc $myname;
        }

這里需要注意,基礎(chǔ)的正則表達式語法都是通用的。比如,+表示1個或者多個,*表示0個或者多個,.表示任意字符,\d表示數(shù)字。

獲取請求頭的參數(shù)

須要在header名稱前面加上固定前綴“http_“,并將header名稱中的“-”中劃線變?yōu)橄聞澗€

nginx腳本,Nginx變量截取字符串,拼接字符串,nginx打印日志,添加修改HTTP請求頭,添加修改HTTP響應(yīng)頭,nginx,nginx打印日志,Nginx變量截取字符串

?

?請求頭取值如下:


        location / {
            proxy_pass http://127.0.0.1:8085;

             add_header aaa $http_Pragma;
             add_header bbb $http_Cache_Control;
        }


添加修改HTTP請求頭

        location / {
            proxy_pass http://127.0.0.1:8085;
            proxy_set_header User-Agent "My Custom User Agent";
            proxy_set_header kk "123";
        }

添加修改HTTP響應(yīng)頭

location / {
    add_header X-Custom-Header "Hello, World!";
    add_header X-Powered-By Nginx;
    add_header Cache-Control no-store;
  }

刪除HTTP響應(yīng)頭

 location / {
    proxy_pass http://backend;
    proxy_hide_header X-Powered-By;
  }

內(nèi)置變量

$remote_addr;
  存放了'客戶端的地址',注意是客戶端的公網(wǎng)IP,也就是一家人訪問一個網(wǎng)站,則會顯示為'路由器的公網(wǎng)IP'
 
$args;
  變量中存放了'請求行中(GET請求)的參數(shù)',例如http://node101.yinzhengjie.org.cn/main/index.do?'id=20190221&partner=search'中的id=20190221&partner=search
 
$document_root;
  保存了針對'當(dāng)前資源的請求'的'系統(tǒng)根目錄',如/apps/nginx/html -->對應(yīng)'root'指令
 
$document_uri;
  保存了當(dāng)前請求中'不包含指令的URI',注意是'不包含請求'的指令,比如http://node101.yinzhengjie.org.cn/main/index.do?id=20190221&partner=search會'被定義為/main/index.do'
 
$host;
  存放了'請求的host名稱'
 
$http_user_agent;
  '客戶端瀏覽器'的詳細信息
 
$http_cookie;
  '客戶端的cookie'信息
 
limit_rate 10240;
echo $limit_rate;
  如果nginx服務(wù)器使用limit_rate配置了'顯示網(wǎng)絡(luò)速率',則會顯示,如果'沒有設(shè)置',則'顯示0'
 
$remote_port;
  客戶端請求Nginx服務(wù)器時'隨機打開的端口',這是每個'客戶端自己的端口'
 
$remote_user;
  已經(jīng)'經(jīng)過Auth Basic Module驗證'的用戶名
 
$request_body_file;
  做'反向代理'時發(fā)給'后端服務(wù)器的本地資源'的名稱
 
$request_method;
  請求'資源的方式',GET、PUT、DELETE等
 
$request_filename;
  當(dāng)前'請求的資源文件的路徑'名稱,由root或alias指令與URI請求生成的文件'絕對路徑',如:/apps/nginx/html/main/index.html
 
$request_uri;
  包含'請求參數(shù)'的原始URI,'不包含主機名',如:/main/index.do?id=20190221&partner=search 
 
$scheme;
  請求的'協(xié)議',如ftp、https、http等
 
$server_protocol;
  保存了'客戶端請求資源'使用的協(xié)議的版,如HTTP/1.0、'HTTP/1.1'、HTTP/2.0等
 
$server_addr;
  保存了'服務(wù)器的IP地址'
 
$server_name;
  請求的'服務(wù)器的主機名'
 
$server_port;
  請求的'服務(wù)器的端口號'
 
+++++++++++++++'補充知識點'+++++++++++++++
 
$arg_name           請求中的'name參數(shù)'-->請求的參數(shù)的名字,根據(jù)'具體情況'而定
$binary_remote_addr 遠程地址的'二進制'表示
$body_bytes_sent    已發(fā)送的'消息體'字節(jié)數(shù)
$content_length     HTTP請求信息里的"Content-Length"
$content_type       請求信息里的"Content-Type"
$host               請求信息中的"Host",如果請求中沒有Host行,則等于設(shè)置的服務(wù)器名
$http_referer       '引用地址'
$http_via           '最后'一個訪問服務(wù)器的'ip地址'
$is_args            如果請求行'帶有參數(shù)',返回"?",否則'返回空字符串'
$nginx_version      當(dāng)前運行的nginx版本號
$pid                'worker進程'的PID
$query_string       與$args'相同'
$realpath_root      按root指令或alias指令算出的'當(dāng)前請求的絕對路徑',其中的'符號鏈接'都會解析成真是文件路徑
$request            '用戶請求'
$request_body       這個變量(0.7.58+)包含'請求的主要信息',在使用proxy_pass或fastcgi_pass指令的location中'比較有意義'
$request_body_file  客戶端'請求主體'信息的'臨時文件名'
$request_completion 如果'請求成功',設(shè)為"OK";如果'請求未完成'或者'不是'一系列請求中最后一部分則設(shè)為空
$request_filename   當(dāng)前請求的文件路徑名,比如/opt/nginx/www/test.php
$request_uri        請求的URI,'帶參數(shù)'; 比如http://localhost:88/test1/
$uri                請求的URI,可能'和最初的值有不同',比如經(jīng)過'重定向'之類的
$http_name          用來獲取'任意請求頭'的值


?

參考:

Nginx配置HTTP響應(yīng)頭修改和添加 | ModStart

Nginx 獲取自定義請求header頭和URL參數(shù)

Nginx(十一)變量_nginx 打印變量_wzj_110的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-528390.html

到了這里,關(guān)于nginx腳本,Nginx變量截取字符串,拼接字符串,nginx打印日志,添加修改HTTP請求頭,添加修改HTTP響應(yīng)頭的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python截取字符串(字符串切片)方法詳解

    Python截取字符串(字符串切片)方法詳解

    從本質(zhì)上講,字符串是由多個字符構(gòu)成的,字符之間是有順序的,這個順序號就稱為索引(index)。Python 允許通過索引來操作字符串中的單個或者多個字符,比如獲取指定索引處的字符,返回指定字符的索引值等。 知道字符串名字以后,在方括號[ ]中使用索引即可訪問對應(yīng)的

    2024年02月01日
    瀏覽(27)
  • Python 字符串操作之字符串的截取

    Python 字符串操作之字符串的截取

    字符串的截取是實際應(yīng)用中經(jīng)常使用的技術(shù),被截取的部分稱為“子串”。Java中使用函數(shù)substr()獲取子串,C#使用函數(shù)substring()獲取子串。而Python由于內(nèi)置了序列,可以通過前面介紹的索引、切片獲取子串,也可以使用函數(shù)split()來獲取。字符串也屬于序列。 下面這段代碼使用

    2024年02月06日
    瀏覽(23)
  • Oracle——SUBSTR()截取字符串,INSTR()查找字符串

    使用語法:SUBSTR( string , start ,?[length]) string :需要截取的字符串。 start :? 起始位置, -3 表示從倒數(shù)第三個字符開始, 從左往右 截取。 length:截取長度(默認(rèn)截取到末尾)。 使用語法:INSTR( string , str ,?[start],[which]) string :源字符串。 str :查找的子字符串(可以

    2024年02月12日
    瀏覽(33)
  • js如何截取某個字符串前面所有的字符串

    利用substring()方法截取出字符 1.新建一個字符串 2.通過indexOf()方法獲取你想截止到的那個字符 3.通過substring()方法,從字符串0位置開始截取至\\\"p\\\"前面的字符串

    2024年02月12日
    瀏覽(100)
  • 字符串截取

    目錄 第一種:slice [開始下標(biāo), 結(jié)束下標(biāo)) 第二種:substr [開始下標(biāo), 截取長度) 第三種:substring [開始下標(biāo),結(jié)束下標(biāo)) 開始下標(biāo)和結(jié)束下標(biāo)可以使用負(fù)數(shù)表示 返回被截取出來的字符串,不包含結(jié)束下標(biāo)對應(yīng)的字符 如果第二個參數(shù)省略了,就默認(rèn)截取到字符串末尾 如果開始下標(biāo)

    2024年02月08日
    瀏覽(24)
  • php字符串截取

    1、使用 strstr(\\\"原始字符\\\",\\\"指定的字符\\\",布爾值) 布爾值為可選,為 true 返回第一次出現(xiàn)之前的字符串部分,默認(rèn)為false 返回 返回第一次出現(xiàn)之前的字符串部分 strchr與strstr一樣,strstr不區(qū)分大小寫。 該方法輸出指定字符之后的內(nèi)容時會包含指定的字符串一起輸出 1、 substr或指

    2024年02月08日
    瀏覽(16)
  • Mysql字符串截取

    ????????從左邊截取字符串 用法:left(str,length), 即:left(被截取字符串,截取長度) ? ? ? ? 結(jié)果:fuyi ????????從右邊截取字符串 用法:right(str,length), 即:right(被截取字符串,截取長度) ????????結(jié)果:ghao ????????有兩種用法: ????????????????substring(s

    2024年02月07日
    瀏覽(27)
  • js截取字符串

    js截取字符串

    1、 split() 方法用于把一個 字符串 分割成 字符串?dāng)?shù)組 2、 slice() 可提取字符串的某個部分,并以新的字符串返回被提取的部分 3、substring() 提取字符串中介于兩個指定下標(biāo)之間的字符 4、join() 把數(shù)組中的所有元素轉(zhuǎn)換一個字符串 5、 charAt() 返回指定位置的字符 https://blog.csdn.

    2024年02月15日
    瀏覽(28)
  • java截取某個字符之前的字符串

    java截取某個字符之前的字符串

    1.截取\\\"-\\\"之前字符串 代碼如下(示例): 2.運行后如下圖 3.其他詳細的用法,參考這篇文章:https://blog.csdn.net/kt1776133839/article/details/125937852?utm_medium=distribute.pc_relevant.none-task-blog-2 default baidujs_baidulandingword~default-0-125937852-blog-128866382.pc_relevant_aaspm=1001.2101.3001.4242.1utm_relevant_index

    2024年02月11日
    瀏覽(27)
  • Java截取字符串方法

    主要有以下幾種方法: ? ??1、通過subString()方法來進行字符串截?。ㄗ畛S茫?? ? 2、通過StringUtils(apache的)提供的方法或者StrUtil(hutool的) ? ? 3、split()+正則表達式來進行截取 1、通過subString()方法來進行字符串截取,返回字符串中的子字符串,在java中有兩種用法 ? ?

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包