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

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

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

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

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


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


    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
        }

        #參考書本第40頁
        #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)頁面發(fā)生異常的時候可以指定跳轉(zhuǎn)到location中,也可以指定跳轉(zhuǎn)到指定的URL地址上面
        error_page 404 http://www.baidu.com/;
    }

Nginx error_page 使用

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

1. error_page語法

語法:

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

默認(rèn)值:

no?

使用字段:

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

2. 實例

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

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

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

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

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

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

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

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è)置一個named location,然后在里邊做對應(yīng)的處理。

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

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

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

同時error_page在一次請求中只能響應(yīng)一次,對應(yīng)的nginx有另外一個配置可以控制這個選項:recursive_error_pages

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

3. Nginx 自定義404錯誤頁面配置中有無等號的區(qū)別

  • error_page 404 /404.html 可顯示自定義404頁面內(nèi)容,正常返回404狀態(tài)碼。
  • error_page 404 = /404.html 可顯示自定義404頁面內(nèi)容,但返回200狀態(tài)碼。
  • error_page 404 /404.php 如果是動態(tài)404錯誤頁面,包含 header 代碼(例如301跳轉(zhuǎn)),將無法正常執(zhí)行。正常返回404代碼。
  • error_page 404 = /404.php 如果是動態(tài)404錯誤頁面,包含 header 代碼(例如301跳轉(zhuǎn)),加等號配置可以正常執(zhí)行,返回php中定義的狀態(tài)碼。但如果php中定義返回404狀態(tài)碼,404狀態(tài)碼可以正常返回,但無法顯示自定義頁面內(nèi)容(出現(xiàn)系統(tǒng)默認(rèn)404頁面),這種情況可以考慮用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)致許多請求返回503錯誤代碼,在限流的條件下,為提高用戶體驗,希望返回正常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": "操作太頻繁了,請坐下來喝杯茶。"}';
? ?if ( $arg_callback != "" )?
? ?{?
? ? ? ?return 200 'try{$arg_callback($ret_body)}catch(e){}';?
? ?}?
? ?return 200 $ret_body;?
}

總結(jié)

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

相關(guān)文章

  • Nginx之rewrite重寫的具體使用

    Nginx之rewrite重寫的具體使用

    訪問重寫rewrite是Nginx HTTP請求處理過程中的一個重要功能,本文主要介紹了Nginx之rewrite重寫的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Nginx中配置用戶服務(wù)器訪問認(rèn)證的方法示例

    Nginx中配置用戶服務(wù)器訪問認(rèn)證的方法示例

    這篇文章主要介紹了Nginx中配置用戶服務(wù)器訪問認(rèn)證的方法示例,包括一個用perl腳本來實現(xiàn)的方法,需要的朋友可以參考下
    2016-01-01
  • nginx配置多個vue項目

    nginx配置多個vue項目

    這篇文章主要介紹了nginx配置多個vue項目的方法以及流程介紹,對此有需要的朋友參考下。
    2018-04-04
  • Nginx 代理與負(fù)載均衡詳解

    Nginx 代理與負(fù)載均衡詳解

    這篇文章主要介紹了Nginx 代理與負(fù)載均衡詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Nginx配置多個端口進(jìn)行監(jiān)聽的實現(xiàn)

    Nginx配置多個端口進(jìn)行監(jiān)聽的實現(xiàn)

    隨著容器的應(yīng)用越來越多,將nginx部署在容器中也是常有之事,本文主要介紹了Nginx配置多個端口進(jìn)行監(jiān)聽的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 詳解Nginx http資源請求限制(三種方法)

    詳解Nginx http資源請求限制(三種方法)

    這篇文章主要介紹了Nginx http資源請求限制,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 基于Nginx實現(xiàn)灰度發(fā)布的詳細(xì)流程

    基于Nginx實現(xiàn)灰度發(fā)布的詳細(xì)流程

    灰度發(fā)布系統(tǒng)的核心是將用戶流量分成不同部分,一部分用戶使用新版本,而另一部分用戶繼續(xù)使用舊版本,其灰度發(fā)布通常是通過 Nginx 實現(xiàn)的,所以本文給大家介紹了基于Nginx實現(xiàn)灰度發(fā)布的詳細(xì)流程,需要的朋友可以參考下
    2024-05-05
  • nginx全局變量整理小結(jié)

    nginx全局變量整理小結(jié)

    nginx全局變量整理小結(jié),方便需要的朋友
    2012-11-11
  • 一文讀懂Ingress-Nginx的實踐

    一文讀懂Ingress-Nginx的實踐

    Ingress-Nginx是Kubernetes中管理HTTP和HTTPS流量的重要工具,本文深入探討Ingress-Nginx工作原理、配置及最佳實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Keepalived+Nginx+Tomcat 實現(xiàn)高可用Web集群的示例代碼

    Keepalived+Nginx+Tomcat 實現(xiàn)高可用Web集群的示例代碼

    這篇文章主要介紹了Keepalived+Nginx+Tomcat 實現(xiàn)高可用Web集群的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論