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

Nginx如何解決超長請求串

這篇具有很好參考價值的文章主要介紹了Nginx如何解決超長請求串。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

針對get請求,我們可以通過修改兩個配置來解決請求串超長的問題:
client_header_buffer_size
語法:client_header_buffer_size size
默認值:1k
使用字段:http, server
這個指令指定客戶端請求的http頭部緩沖區(qū)大小,絕大多數(shù)情況下一個頭部請求的大小不會超過1k,不過如果有來自于wap客戶端的較大的cookie它可能會超過1k,Nginx將分配給它一個更大的緩沖區(qū),這個值可以在 large_client_header_buffers里面設(shè)置。

large_client_header_buffers
語法:large_client_header_buffers number size
默認值:4k/8k
使用字段:http, server
指令指定客戶端請求的一些比較大的頭文件到緩沖區(qū)的最大值,如果一個請求的URI大小超過這個值,服務(wù) 器將返回一個"Request URI too large" (414),同樣,如果一個請求的頭部字段大于這個值,服務(wù)器 將返回"Bad request" (400)。

那么有人就會覺得奇怪了,為什么修改http header的大小就能解決get請求串過長的問題呢, 這就要從http協(xié)議的get請求說起了,其實GET提交,請求的數(shù)據(jù)會附在URL之后(就是把數(shù)據(jù)放置在 HTTP協(xié)議頭中)。


針對POST請求,我們可以調(diào)整如下兩個配置項來解決:
client_body_buffer_size
語法:client_body_buffer_size the_size
默認值:8k/16k
使用字段:http, server, location
這個指令可以指定連接請求使用的緩沖區(qū)大小。
如果連接請求超過緩存區(qū)指定的值,那么這些請求或部分請求將嘗試寫入一個臨時文件。
默認值為兩個內(nèi)存分頁大小值,根據(jù)平臺的不同,它可能是8k或16k

client_max_body_size
語法:client_max_body_size size
默認值:client_max_body_size 1m
使用字段:http, server, location
這個指令指定允許客戶端請求的最大的單個文件字節(jié)數(shù),它出現(xiàn)在請求頭部的Content-Length字段。
如果請求大于指定的值,客戶端將收到一個"Request Entity Too Large" (413)錯誤。
需要記住,瀏覽器并不知道怎樣顯示這個錯誤。

同時針對post請求還需要注意下面這個參數(shù)的配置,如果不打開這個選項當請求串大于client_body_buffer_size大小時,需要手動去讀取存儲在磁盤的請求,這里需要注意的是存入磁盤的請求是一個完整的請求并不是大于client_body_buffer_size的部分
client_body_in_single_buffer
語法:client_body_in_single_buffer
默認值:off
使用字段:http, server, location這個指令(0.7.58版本)指定將一個完整的連接請求放入緩沖區(qū),當使用$request_body時推薦使用這個指令以減少復制操作。
如果無法將一個請求放入單個緩沖區(qū),將會被放入磁盤。


GET請求的請求參數(shù)最大長度

在HTTP規(guī)范RFC-2616中有這樣一段描述:

The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET- based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).
Note: Servers ought to be cautious about depending on URI lengths above 255 bytes, because some older client or proxy implementations might not properly support these lengths.

HTTP協(xié)議沒有對傳輸?shù)臄?shù)據(jù)大小進行限制,HTTP協(xié)議規(guī)范也沒有對URI長度進行限制,只是說如果server無法處理太長的URI,可以通過返回414狀態(tài)碼。

規(guī)范中雖然未對GET請求的長度做出明確的規(guī)定,但是在瀏覽器和應(yīng)用服務(wù)器中對GET請求卻做出限制或者相關(guān)的可配置:文章來源地址http://www.zghlxwxcb.cn/news/detail-402271.html

  • Chrome:對Google瀏覽器URL的最大長度為8182個字符。
  • IE:對IE瀏覽器URL的最大長度為2083個字符。若超出這個數(shù)字,提交按鈕沒有任何反應(yīng)。
  • Firefox:對Firefox瀏覽器URL的最大長度為65536個字符。
  • Safari: 對Safari瀏覽器URL的最大長度為80000個字符。
  • Apache能接受url長度限制為8192字符
  • nginx可以通過修改配置來改變url請求串的url長度限制:
    client_header_buffer_size 默認值:1k
    large_client_header_buffers默認值:4 8k

實驗結(jié)論:

  1. 瀏覽器的大小一般比Nginx服務(wù)器大,
    測試方式:設(shè)置同樣大小的cookie,通過瀏覽器直接訪問服務(wù)器與通過瀏覽器先訪問到Nginx再代理到服務(wù)器做對比得出。
const http = require('http');
const url = require('url')

到了這里,關(guān)于Nginx如何解決超長請求串的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • nginx如何設(shè)置access.log打印請求頭、請求體等信息

    nginx如何設(shè)置access.log打印請求頭、請求體等信息

    通常我們使用nginx的默認配置,access.log日志中打印的信息會很少。如果我們想查詢某次請求的請求頭和請求體去排查問題會十分麻煩。但是nginx其實自帶了很多可配置的參數(shù)。下面我們來介紹一下,并給大家一個常用的配置示例。 在http結(jié)構(gòu)內(nèi),server結(jié)構(gòu)外添加以下配置: 在

    2024年02月11日
    瀏覽(98)
  • nginx 如何將 https 請求轉(zhuǎn)發(fā)到 http

    nginx 如何將 https 請求轉(zhuǎn)發(fā)到 http

    網(wǎng)站之前是 https 的,通過 nginx 設(shè)置好了,現(xiàn)在不想用 https 了,但發(fā)散到外界的一些網(wǎng)址還是 https 的,此時只能通過 nginx 去轉(zhuǎn)發(fā) https 請求到 http 才能實現(xiàn)之前的鏈接能正常訪問。 具體設(shè)置如下: https 的其它設(shè)置不需要動,只需要在 server 字段添加一條:

    2024年02月11日
    瀏覽(21)
  • Nginx 重定向后請求參數(shù)丟失問題及解決方案

    在日常開發(fā)和運維中,我們經(jīng)常會遇到需要使用 Nginx 進行反向代理的場景。但在配置 proxy_pass 時,有時候可能會遇到請求參數(shù)丟失的問題。在這篇文章中,我們將會詳細探討這個問題并給出幾種解決方案。 假設(shè)我們有一個基礎(chǔ)的 Nginx 反向代理配置,如下: 當我們通過 Ngin

    2024年02月05日
    瀏覽(216)
  • 解決nginx 部署前端post請求405 not allowed

    解決nginx 部署前端post請求405 not allowed

    問題第一次部署前端,將vue生成的dist 文件部署到nginx后,進入頁面后post請求查詢數(shù)據(jù)時,出現(xiàn)405 not allowed,經(jīng)查閱發(fā)現(xiàn),nginx 靜態(tài)資源訪問不支持post請求。 解決方案

    2024年02月11日
    瀏覽(19)
  • Netty服務(wù)如何使用Nginx代理轉(zhuǎn)發(fā)請求并獲得原始IP

    Nginx啟用stream模塊,示例如下: 示例,代理遠端8080的netty服務(wù)。 注意,獲得原始客戶端的IP關(guān)鍵配置在于: proxy_protocol on; 這一行配置。如果不配置,在netty服務(wù)端是無法獲得原始客戶端ip,但是配置上之后,netty需要調(diào)整代碼。 代理http協(xié)議的時候,可以通過增加X-Forwarded-Fo

    2024年02月06日
    瀏覽(22)
  • 解決Origin請求頭導致的Nginx反向代理403跨域問題

    解決Origin請求頭導致的Nginx反向代理403跨域問題

    頁面通過域名A【https://a.winfun.com】訪問接口,域名A通過Nginx服務(wù)進行反向代理,代理到域名B【http://b.winfun.com】,然后進行業(yè)務(wù)邏輯執(zhí)行。 時序圖: nginx配置: 接口返回Http狀態(tài)為403,出現(xiàn)跨域問題。 為了方便測試,我們直接將接口放到Postman中進行模擬測試,并帶上相關(guān)請求

    2024年02月12日
    瀏覽(92)
  • 解決 nginx 413 Request Entity Too Large(請求實體太大)

    解決 nginx 413 Request Entity Too Large(請求實體太大)

    最近把前端部署到nginx上,上傳大文件時,報413錯誤,具體如下 我們可以看到請求的body的大小,在Content-Length后顯示,Nginx默認的request body為1M,小于我們上傳的大小 ? ? ? ? 找到自己主機的nginx.conf配置文件,打開 在http{}中加入 client_max_body_size 500m; 然后重啟nginx /etc/init.d/n

    2024年02月07日
    瀏覽(17)
  • nestjs:nginx反向代理服務(wù)器后如何獲取請求的ip地址

    問題: ? ? ? ? 如題 參考: ????????nodejs+nginx獲取真實ip-騰訊云開發(fā)者社區(qū)-騰訊云 ????????「轉(zhuǎn)」從限流談到偽造 IP nginx remote_addr ? ? ? ?? 解決辦法: 1.設(shè)置nginx ? ? ? ? 對于代理部分,對http header添加Host、X-Real-IP、X-Forwarded-For(最重要) ???????? 2.nestjs使用

    2024年02月13日
    瀏覽(23)
  • 一次不規(guī)范HTTP請求引發(fā)的nginx響應(yīng)400問題分析與解決

    一次不規(guī)范HTTP請求引發(fā)的nginx響應(yīng)400問題分析與解決

    最近分析數(shù)據(jù)偶然發(fā)現(xiàn)nginx log中有一批用戶所有的HTTP POST log上報請求均返回400,沒有任何200成功記錄,由于只占整體請求的不到0.5%,所以之前也一直沒有觸發(fā)監(jiān)控報警,而且很奇怪的是只對于log上報的POST接口會存在這種特定用戶全部400的情況,而對于其他接口無論POST還是

    2024年02月14日
    瀏覽(85)
  • (待解決)java項目,nginx代理,請求200,但頁面返回空白,響應(yīng)體為空

    (待解決)java項目,nginx代理,請求200,但頁面返回空白,響應(yīng)體為空

    由于模擬分布式項目,只有一臺主機(win10:192.168.31.225),一臺虛擬機(centOS:192.168.204.81),需要通過win10主機的host的文件,將不同的域名都映射到虛擬機。 然后通過nginx作為代理服務(wù)器(安裝在cengtOS的docker容器中),實現(xiàn)動靜分離、反向代理和負載均衡。 nginx將請求轉(zhuǎn)給

    2024年01月20日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包