Ubuntu
如何配置 Ngnix 以實現任何可能的網站錯誤以進行測試
我正在使用 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 作為最後一步。對於每個修改。
從理論上講,只要添加所有位置並始終返回不同的錯誤程式碼就足夠了。