Ubuntu

如何配置 Ngnix 以實現任何可能的網站錯誤以進行測試

  • November 24, 2017

我正在使用 Django 框架和 Nginx 開發一個網站。想創建一個錯誤的系統錯誤並觀察我的系統如何響應。

這是一篇不錯的文章,但這只會創建錯誤的錯誤 502。我想在上線之前測試其他錯誤頁面(HTTP403、HTTP404、HTTP405 或常見錯誤頁面)。

# Testing for Error 502 - Bad Gateway
location /testing {
           fastcgi_pass unix:/does/not/exist;
   }

401未經授權

類似於 403 Forbidden,但專門用於需要身份驗證但已失敗或尚未提供身份驗證時使用。響應必須包含一個 WWW-Authenticate 標頭欄位,該欄位包含適用於所請求資源的質詢。

為此,您可以添加一個新位置並使用 htaccess 對其進行限制。使用 . 創建 htaccess 文件htpasswd -c /etc/nginx/htpasswd/htpasswd.domain username。然後將一個新位置添加到您的 nginx 配置中,並在該位置內,放置這些:

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd/htpasswd.domain;

現在,如果您轉到您指定的位置並實施了 auth_basic,那麼網站將要求輸入使用者名和密碼。如果您輸入不正確的數據,它會丟給您 401 錯誤程式碼。

403 禁止

請求有效,但伺服器拒絕操作。使用者可能沒有資源的必要權限,或者可能需要某種帳戶。

只需添加一個您擁有的新位置並拒絕訪問它並告訴 NginX 返回特定的錯誤程式碼。

location ~ /(dir1|dir2|dir3) {
  deny all;
  return 403;
}

404 未找到

無法找到請求的資源,但將來可能可用。客戶的後續請求是允許的。

與之前的版本類似:

location ~ /(dir1|dir2|dir3) {
  deny all;
  return 404;
}

這應該會拒絕您使用 404 訪問該位置。


顯然重啟 NginX 作為最後一步。對於每個修改。

從理論上講,只要添加所有位置並始終返回不同的錯誤程式碼就足夠了。

引用自:https://serverfault.com/questions/884967