最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx?error_page自定義錯(cuò)誤頁(yè)面設(shè)置過(guò)程

 更新時(shí)間:2023年08月10日 13:45:36   作者:jc0803kevin  
這篇文章主要介紹了Nginx?error_page自定義錯(cuò)誤頁(yè)面設(shè)置過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Nginx error_page自定義錯(cuò)誤頁(yè)面設(shè)置

#fastcgi_intercept_errors on;
    #語(yǔ)法:fastcgi_intercept_errors on|off 
    #默認(rèn)值:fastcgi_intercept_errors off 
    #使用字段:http, server, location 
    #這個(gè)指令指定是否傳遞4xx和5xx錯(cuò)誤信息到客戶(hù)端,或者允許nginx使用error_page處理錯(cuò)誤信息。
    #你必須明確的在error_page中指定處理方法使這個(gè)參數(shù)有效,正如Igor所說(shuō)“如果沒(méi)有適當(dāng)?shù)奶幚矸椒ǎ?
    #nginx不會(huì)攔截一個(gè)錯(cuò)誤,這個(gè)錯(cuò)誤不會(huì)顯示自己的默認(rèn)頁(yè)面,這里允許通過(guò)某些方法攔截錯(cuò)誤。


    #proxy_intercept_errors 為on 表示 nginx按照原response
    #proxy_intercept_errors on|off 
    #proxy_intercept_errors off 
    #使用字段:http, server, location    #code輸出,后端是404,就是404.這個(gè)變量開(kāi)啟后,我們才能自定義錯(cuò)誤頁(yè)面。


    proxy_intercept_errors on;

    upstream dev1 {

        server 127.0.0.1:8080;          #HessianTest3

    }

    server {
        listen       80;
        server_name  kevin.com;



        location / {
            proxy_pass http://dev1;     #HessianTest3
        }

        #參考書(shū)本第40頁(yè)
        #error_page 404 =200 /404.html;
        #error_page 500 502 503 504  =200 /50x.html;

        #location = /404.html {
        #   root html;
        #   
        #}

        #location = /50x.html {
        #    root   html;
        #}

        #當(dāng)頁(yè)面發(fā)生異常的時(shí)候可以指定跳轉(zhuǎn)到location中,也可以指定跳轉(zhuǎn)到指定的URL地址上面
        error_page 404 http://www.baidu.com/;
    }

Nginx error_page 使用

接觸到了error_page ,這里記錄一下

1. error_page語(yǔ)法

語(yǔ)法:

error_page code [ code... ] [ = | =answer-code ] uri | @named_location

默認(rèn)值:

no?

使用字段:

http, server, location, location 中的if字段 

2. 實(shí)例

nginx指令error_page的作用是當(dāng)發(fā)生錯(cuò)誤的時(shí)候能夠顯示一個(gè)預(yù)定義的uri,比如:

error_page 502 503 /50x.html;
location = /50x.html {
? ? root /usr/share/nginx/html;
} ?

這樣實(shí)際上產(chǎn)生了一個(gè)內(nèi)部跳轉(zhuǎn)(internal redirect),當(dāng)訪(fǎng)問(wèn)出現(xiàn)502、503的時(shí)候就能返回50x.html中的內(nèi)容,這里需要注意是否可以找到50x.html頁(yè)面,所以加了個(gè)location保證找到你自定義的50x頁(yè)面。

同時(shí)我們也可以自己定義這種情況下的返回狀態(tài)嗎,比如:

error_page 502 503 =200 /50x.html;
location = /50x.html {
? ? root /usr/share/nginx/html;
} ??

這樣用戶(hù)訪(fǎng)問(wèn)產(chǎn)生502 、503的時(shí)候給用戶(hù)的返回狀態(tài)是200,內(nèi)容是50x.html。

當(dāng)error_page后面跟的不是一個(gè)靜態(tài)的內(nèi)容的話(huà),比如是由proxyed server或者FastCGI/uwsgi/SCGI server處理的話(huà),server返回的狀態(tài)(200, 302, 401 或者 404)也能返回給用戶(hù)。

error_page 404 = /404.php;
location ~ \.php$ {
? ? fastcgi_pass 127.0.0.1:9000;
? ? fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
? ? include fastcgi_params;
} ??

也可以設(shè)置一個(gè)named location,然后在里邊做對(duì)應(yīng)的處理。

error_page 500 502 503 504 @jump_to_error;
location @jump_to_error { ? ?
? ? proxy_pass http://backend;
}

同時(shí)也能夠通過(guò)使客戶(hù)端進(jìn)行302、301等重定向的方式處理錯(cuò)誤頁(yè)面,默認(rèn)狀態(tài)碼為302。

error_page 403 ? ? ?http://example.com/forbidden.html;
error_page 404 =301 http://example.com/notfound.html;

同時(shí)error_page在一次請(qǐng)求中只能響應(yīng)一次,對(duì)應(yīng)的nginx有另外一個(gè)配置可以控制這個(gè)選項(xiàng):recursive_error_pages

默認(rèn)為false,作用是控制error_page能否在一次請(qǐng)求中觸發(fā)多次。

3. Nginx 自定義404錯(cuò)誤頁(yè)面配置中有無(wú)等號(hào)的區(qū)別

  • error_page 404 /404.html 可顯示自定義404頁(yè)面內(nèi)容,正常返回404狀態(tài)碼。
  • error_page 404 = /404.html 可顯示自定義404頁(yè)面內(nèi)容,但返回200狀態(tài)碼。
  • error_page 404 /404.php 如果是動(dòng)態(tài)404錯(cuò)誤頁(yè)面,包含 header 代碼(例如301跳轉(zhuǎn)),將無(wú)法正常執(zhí)行。正常返回404代碼。
  • error_page 404 = /404.php 如果是動(dòng)態(tài)404錯(cuò)誤頁(yè)面,包含 header 代碼(例如301跳轉(zhuǎn)),加等號(hào)配置可以正常執(zhí)行,返回php中定義的狀態(tài)碼。但如果php中定義返回404狀態(tài)碼,404狀態(tài)碼可以正常返回,但無(wú)法顯示自定義頁(yè)面內(nèi)容(出現(xiàn)系統(tǒng)默認(rèn)404頁(yè)面),這種情況可以考慮用410代碼替代( header("HTTP/1.1 410 Gone"); 正常返回410狀態(tài)碼,且可正常顯示自定義內(nèi)容)。

例子

server ?{
? ? listen 80;
? ? server_name ?test.com;
? ? index ? ? ? index.html index.htm;
?
? ? location / {?
? ? ? ? proxy_pass http://online;
? ? ? ? error_page 404 = @fallback;
? ? ? ? proxy_intercept_errors on;
? ? }
? ? location @fallback {
? ? ? ? proxy_pass http://backend;
? ? }
}
?
upstream online {
? ? ? ? ?server 192.168.88.18:80;
? ? ? ? ?server 192.168.88.28:80;
}
?
upstream backend {
? ? ? ? ?server 192.168.88.38:80;
}

例子

由于在nginx配置中,設(shè)置了limit_req的流量限制,導(dǎo)致許多請(qǐng)求返回503錯(cuò)誤代碼,在限流的條件下,為提高用戶(hù)體驗(yàn),希望返回正常Code 200,且返回操作頻繁的信息:

location ?/test {
? ...?
? limit_req zone=zone_ip_rm burst=1 nodelay;?
? error_page 503 =200 /dealwith_503?callback=$arg_callback;
}
location /dealwith_503{?
? set $ret_body '{"code": "V00006","msg": "操作太頻繁了,請(qǐng)坐下來(lái)喝杯茶。"}';
? ?if ( $arg_callback != "" )?
? ?{?
? ? ? ?return 200 'try{$arg_callback($ret_body)}catch(e){}';?
? ?}?
? ?return 200 $ret_body;?
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • linux下安裝Nginx1.16.0的教程詳解

    linux下安裝Nginx1.16.0的教程詳解

    因?yàn)樽罱诘跪vlinux,想安裝新版本的nginx,找了一圈教程沒(méi)有找到對(duì)應(yīng)的教程,在稍微倒騰了一會(huì)之后終于成功的安裝了最新版。這篇文章主要介紹了linux下安裝Nginx1.16.0 ,需要的朋友可以參考下
    2019-06-06
  • nginx之從main函數(shù)開(kāi)始了解配置文件處理及配置信息的讀入過(guò)程

    nginx之從main函數(shù)開(kāi)始了解配置文件處理及配置信息的讀入過(guò)程

    這篇文章主要介紹了nginx之從main函數(shù)開(kāi)始了解配置文件處理及配置信息的讀入過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • Nginx實(shí)現(xiàn)動(dòng)態(tài)封禁IP的步驟指南

    Nginx實(shí)現(xiàn)動(dòng)態(tài)封禁IP的步驟指南

    在日常的生產(chǎn)環(huán)境中,網(wǎng)站可能會(huì)遭遇惡意請(qǐng)求、DDoS 攻擊或其他有害的訪(fǎng)問(wèn)行為,為了應(yīng)對(duì)這些情況,動(dòng)態(tài)封禁 IP 是一項(xiàng)十分重要的安全策略,本篇博客將介紹如何通過(guò) NGINX 實(shí)現(xiàn)動(dòng)態(tài)封禁 IP,從配置到自動(dòng)化的實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2025-02-02
  • 詳解Prometheus 抓取 nginx 訪(fǎng)問(wèn)日志的指標(biāo)

    詳解Prometheus 抓取 nginx 訪(fǎng)問(wèn)日志的指標(biāo)

    通過(guò)結(jié)合NGINX Exporter, Fluentd, Prometheus和Grafana, 可有效監(jiān)控并可視化NGINX中的4xx和5xx狀態(tài)碼日志,首先使用Fluentd收集和解析NGINX日志,再通過(guò)Prometheus抓取Fluentd暴露的指標(biāo),本文介紹Prometheus抓取nginx訪(fǎng)問(wèn)日志的指標(biāo),感興趣的朋友一起看看吧
    2024-10-10
  • Nginx安裝配置naxsi waf防火墻的方法實(shí)現(xiàn)

    Nginx安裝配置naxsi waf防火墻的方法實(shí)現(xiàn)

    Naxsi是第三方nginx模塊,它也能有效防御,本文主要介紹了Nginx安裝配置naxsi waf防火墻的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • nginx代理后端路徑獲取IP為127.0.0.1問(wèn)題

    nginx代理后端路徑獲取IP為127.0.0.1問(wèn)題

    文章討論了在使用Nginx作為反向代理時(shí),如何正確配置以避免在前端路徑A/api訪(fǎng)問(wèn)后端時(shí)丟失真實(shí)的IP地址,通過(guò)有效的Nginx配置,可以確保在前后端分離的場(chǎng)景中,客戶(hù)端通過(guò)前端路徑訪(fǎng)問(wèn)后端時(shí),后端能夠正確獲取客戶(hù)端的真實(shí)IP地址,示例配置展示了如何實(shí)現(xiàn)這一目標(biāo)
    2025-02-02
  • nginx中的location路徑配置(實(shí)路徑和虛路徑)

    nginx中的location路徑配置(實(shí)路徑和虛路徑)

    這篇文章主要介紹了nginx中的location路徑配置(實(shí)路徑和虛路徑),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 基于nginx實(shí)現(xiàn)上游服務(wù)器動(dòng)態(tài)自動(dòng)上下線(xiàn)無(wú)需reload的實(shí)現(xiàn)方法

    基于nginx實(shí)現(xiàn)上游服務(wù)器動(dòng)態(tài)自動(dòng)上下線(xiàn)無(wú)需reload的實(shí)現(xiàn)方法

    這篇文章主要介紹了基于nginx實(shí)現(xiàn)上游服務(wù)器動(dòng)態(tài)自動(dòng)上下線(xiàn)無(wú)需reload,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • keepalived結(jié)合nginx實(shí)現(xiàn)nginx高可用的方法

    keepalived結(jié)合nginx實(shí)現(xiàn)nginx高可用的方法

    這篇文章主要介紹了keepalived結(jié)合nginx實(shí)現(xiàn)nginx高可用的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • windows下快速安裝nginx并配置開(kāi)機(jī)自啟動(dòng)的方法

    windows下快速安裝nginx并配置開(kāi)機(jī)自啟動(dòng)的方法

    這篇文章主要介紹了windows下快速安裝nginx 并配置開(kāi)機(jī)自啟動(dòng)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05

最新評(píng)論

奇台县| 岳普湖县| 平利县| 白朗县| 镇安县| 亚东县| 柳林县| 嵊泗县| 扶绥县| 黑山县| 冀州市| 太白县| 海门市| 泰兴市| 兴文县| 安福县| 萨嘎县| 涪陵区| 天祝| 乳源| 林周县| 鸡西市| 松桃| 西乌| 游戏| 安新县| 开鲁县| 黔南| 丽江市| 潼南县| 玉环县| 攀枝花市| 新丰县| 贺兰县| 贵州省| 绥宁县| 太仆寺旗| 无为县| 买车| 泸溪县| 甘德县|