欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx打印請求頭日志方法(親測可用)

 更新時間:2023年11月01日 10:53:54   作者:追逐夢想永不停  
之前想用nginx打印收到的請求的請求頭,但是只找到打印請求體的,沒有打印請求頭的,本文就來介紹一下nginx打印請求頭日志方法,感興趣的可以了解一下

一、前言

之前想用nginx打印收到的請求的請求頭,但是只找到打印請求體的,沒有打印請求頭的,感覺原版nginx不支持。

建議如果想打印請求頭,先換成openresty

(本人安裝的是openresty-1.21.4.1.tar.gz版本的)

網(wǎng)上有些文章的配置,本人試了后發(fā)現(xiàn)不行,各種報錯,不知道為什么;

這個的配置可以,在此記錄下

二、openresty打印請求頭方法

1.安裝好openresty

2.找到nginx配置文件nginx.conf,增加一種日志打印格式,可以寫在http {里:

http {
    include       mime.types;
    default_type  application/octet-stream;

    #這個是默認日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #這個是自定義的打印請求頭的日志格式
        log_format accesslog_headers  '$time_iso8601'
                        '\t$request_time'
                        '\t$status'
                        '\t$remote_addr'
                        '\t$http_x_forwarded_for'
                        '\t$host'
                        '\t$server_addr'
                        '\t$request_method'
                        '\t$uri' #cs-uri-stem
                        '\t$args' #cs-uri-query
                        '\t"$http_user_agent"'
                        '\t"$http_referer"'
                        '\t$bytes_sent'
                        '\t$request_length'
                        '\t$upstream_addr'
                        '\t$upstream_status'
                        '\t$upstream_response_time'
                        '\t$request_uri'
                        '\t$request_headers'; #設(shè)置這個變量,后面賦值

    #這里配置后全局的日志都會用默認日志格式main,日志打印位置是logs文件夾里的access.log文件
    access_log  logs/access.log  main;

3.繼續(xù)修改nginx.conf,可以在想打印request_header的location里加,也可以加在全局。

以下是在某個location里加的方法樣例:

location /my/header/api/ {
        #這個是增加的,使用打印請求頭的日志格式accesslog_headers,日志打印位置是logs/access_headers.log
        access_log  logs/access_headers.log  accesslog_headers;
        
        #給request_headers變量賦值,使用lua獲取到請求頭
        set_by_lua $request_headers 'local h = ngx.req.get_headers()
                                local request_headers_all = ""
                                for k, v in pairs(h) do
                                    request_headers_all = request_headers_all .. ""..k..": "..v..";"
                                end
                                return request_headers_all';

這樣配置可以指定訪問某個location才打印header,并且不影響main格式的日志,比較方便。

4.保存配置文件,重啟nginx。

5.當有請求訪問/my/header/api/時,就會打印日志,本人的日志文件路徑在/home/myuser/openresty/nginx/logs /access_headers.log

三、備注

1.如果想打印請求體,直接日志格式log_format里加默認的$request_body即可(不用自己賦值),然后就會打印出來。(再次注意原版nginx沒有$request_header,所以才換成openresty自己用lua賦值)

2.如果想打印響應頭和響應體(例如后臺服務(wù)器返回的),也可以自己日志格式里加2個變量,后續(xù)用lua賦值,然后打印。

到此這篇關(guān)于nginx打印請求頭日志方法(親測可用)的文章就介紹到這了,更多相關(guān)nginx打印請求頭日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx輕松搞定跨域問題完整過程

    Nginx輕松搞定跨域問題完整過程

    這篇文章主要給大家介紹了關(guān)于Nginx輕松搞定跨域問題的相關(guān)資料,大家在使用nginx進行服務(wù)器管理,經(jīng)常會遇到跨域問題,文中將解決方法介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • 深入淺析nginx部署及簡單優(yōu)化

    深入淺析nginx部署及簡單優(yōu)化

    Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設(shè)計開發(fā)的。本文重點給大家介紹nginx部署及簡單優(yōu)化方案,感興趣的朋友一起看看吧
    2018-08-08
  • Nginx日志中request_time和upstream_response_time區(qū)別

    Nginx日志中request_time和upstream_response_time區(qū)別

    Nginx日志中的request_time和upstream_response_time是關(guān)鍵的性能指標,本文就來介紹一下Nginx日志中request_time和upstream_response_time區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2024-11-11
  • CentOS 7.3.1611編譯安裝Nginx1.10.3+MySQL5.7.16+PHP7.1.2

    CentOS 7.3.1611編譯安裝Nginx1.10.3+MySQL5.7.16+PHP7.1.2

    這篇文章主要介紹了CentOS 7.3.1611編譯安裝Nginx1.10.3+MySQL5.7.16+PHP7.1.2,需要的朋友可以參考下
    2018-01-01
  • Nginx解決403 forbidden的完整步驟

    Nginx解決403 forbidden的完整步驟

    這篇文章主要給大家介紹了關(guān)于Nginx解決403 forbidden的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Nginx代理后HTTP頭部丟失問題的解決方案

    Nginx代理后HTTP頭部丟失問題的解決方案

    在日常開發(fā)和運維中,我們經(jīng)常會使用 Nginx 作為反向代理服務(wù)器,將客戶端的請求轉(zhuǎn)發(fā)到后端服務(wù),然而,在某些情況下,通過 Nginx 代理后,后端服務(wù)可能會丟失部分 HTTP 頭部信息,所以本文給大家介紹了Nginx代理后HTTP頭部丟失問題的解決方案,需要的朋友可以參考下
    2025-02-02
  • 為nginx設(shè)置默認虛擬主機(空主機頭,默認主機頭)

    為nginx設(shè)置默認虛擬主機(空主機頭,默認主機頭)

    nginx的默認虛擬主機在用戶通過IP訪問,或者通過未設(shè)置的域名訪問(比如有人把他自己的域名指向了你的ip)的時候生效
    2010-11-11
  • Nginx?配置?WebSocket?代理的操作過程

    Nginx?配置?WebSocket?代理的操作過程

    這篇文章主要介紹了Nginx?配置?WebSocket?代理的操作過程,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Nginx 獲取客戶端真實IP $remote_addr與X-Forwarded-For的實現(xiàn)

    Nginx 獲取客戶端真實IP $remote_addr與X-Forwarded-For的實現(xiàn)

    我們大多數(shù)情況下訪問服務(wù)時,客戶端并不是直接訪問到服務(wù)器的,本文主要介紹了Nginx 獲取客戶端真實IP $remote_addr與X-Forwarded-For的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Nginx SSI指令配置詳解

    Nginx SSI指令配置詳解

    這篇文章主要介紹了Nginx SSI指令配置詳解,本文講解了什么是SSI、為什么要用SSI、nginx配置SSI、頁面上配置、配置示例等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評論