<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
#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; #} #當頁面發生異常的時候可以指定跳轉到location中,也可以指定跳轉到指定的URL地址上面 error_page 404 http://www.baidu.com/; }
接觸到了error_page ,這裡記錄一下
語法:
error_page code [ code... ] [ = | =answer-code ] uri | @named_location
預設值:
no
使用欄位:
http, server, location, location 中的if欄位
nginx指令error_page的作用是當發生錯誤的時候能夠顯示一個預定義的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頁面。
同時我們也可以自己定義這種情況下的返回狀態嗎,比如:
error_page 502 503 =200 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
這樣使用者存取產生502 、503的時候給使用者的返回狀態是200,內容是50x.html。
當error_page後面跟的不是一個靜態的內容的話,比如是由proxyed server或者FastCGI/uwsgi/SCGI server處理的話,server返回的狀態(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等重定向的方式處理錯誤頁面,預設狀態碼為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能否在一次請求中觸發多次。
例子
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; }
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45