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

Nginx?error_page自定義錯誤頁面設置過程

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

Nginx error_page自定義錯誤頁面設置

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


    #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;
        #}

        #當頁面發(fā)生異常的時候可以指定跳轉到location中,也可以指定跳轉到指定的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

默認值:

no?

使用字段:

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

2. 實例

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

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

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

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

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

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

當error_page后面跟的不是一個靜態(tà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;
} ??

也可以設置一個named location,然后在里邊做對應的處理。

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

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

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

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

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

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

  • error_page 404 /404.html 可顯示自定義404頁面內容,正常返回404狀態(tài)碼。
  • error_page 404 = /404.html 可顯示自定義404頁面內容,但返回200狀態(tài)碼。
  • error_page 404 /404.php 如果是動態(tài)404錯誤頁面,包含 header 代碼(例如301跳轉),將無法正常執(zhí)行。正常返回404代碼。
  • error_page 404 = /404.php 如果是動態(tài)404錯誤頁面,包含 header 代碼(例如301跳轉),加等號配置可以正常執(zhí)行,返回php中定義的狀態(tài)碼。但如果php中定義返回404狀態(tài)碼,404狀態(tài)碼可以正常返回,但無法顯示自定義頁面內容(出現系統(tǒng)默認404頁面),這種情況可以考慮用410代碼替代( header("HTTP/1.1 410 Gone"); 正常返回410狀態(tà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配置中,設置了limit_req的流量限制,導致許多請求返回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;?
}

總結

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

相關文章

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

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

    因為最近在倒騰linux,想安裝新版本的nginx,找了一圈教程沒有找到對應的教程,在稍微倒騰了一會之后終于成功的安裝了最新版。這篇文章主要介紹了linux下安裝Nginx1.16.0 ,需要的朋友可以參考下
    2019-06-06
  • nginx之從main函數開始了解配置文件處理及配置信息的讀入過程

    nginx之從main函數開始了解配置文件處理及配置信息的讀入過程

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

    Nginx實現動態(tài)封禁IP的步驟指南

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

    詳解Prometheus 抓取 nginx 訪問日志的指標

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

    Nginx安裝配置naxsi waf防火墻的方法實現

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

    nginx代理后端路徑獲取IP為127.0.0.1問題

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

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

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

    基于nginx實現上游服務器動態(tài)自動上下線無需reload的實現方法

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

    keepalived結合nginx實現nginx高可用的方法

    這篇文章主要介紹了keepalived結合nginx實現nginx高可用的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • windows下快速安裝nginx并配置開機自啟動的方法

    windows下快速安裝nginx并配置開機自啟動的方法

    這篇文章主要介紹了windows下快速安裝nginx 并配置開機自啟動的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05

最新評論

孝感市| 嵩明县| 英超| 霍州市| 葫芦岛市| 西贡区| 博客| 鲁山县| 宜宾县| 黔西| 马关县| 绥棱县| 固镇县| 汨罗市| 巴东县| 乡城县| 鹤峰县| 泰安市| 甘孜县| 大渡口区| 盘锦市| 沿河| 砀山县| 平乡县| 双江| 东乡县| 东光县| 错那县| 乐山市| 平潭县| 贵南县| 巧家县| 石台县| 宁城县| 永昌县| 姜堰市| 德钦县| 鱼台县| 富源县| 新营市| 白山市|