worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; sendfile on; keepalive_timeout 65; server { listen 8070; server_name 10.96.79.14; limit_req zone=one; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location = /abc.html { root html; auth_basic "opened site"; auth_basic_user_file conf/htpasswd; } location ~ \.php$ { root /home/xiaoju/nginx-1.14.0/html; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /home/xiaoju/nginx-1.14.0/html$fastcgi_script_name; include fastcgi.conf; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; } } }
index.php <?php echo "124";
NGX_HTTP_BAD_REQUESTphp
Host頭不合法 curl localhost:8070 -H 'Host:123/com' <html> <head><title>400 Bad Request</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <hr><center>nginx/1.14.0</center> </body> </html> Content-Length頭重複 curl localhost:8070 -H 'Content-Length:1' -H 'Content-Length:2' <html> <head><title>400 Bad Request</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <hr><center>nginx/1.14.0</center> </body> </html>
NGX_HTTP_UNAUTHORIZEDhtml
參考如上nginx配置,訪問abc.html須要認證 curl localhost:8070/abc.html <html> <head><title>401 Authorization Required</title></head> <body bgcolor="white"> <center><h1>401 Authorization Required</h1></center> <hr><center>nginx/1.14.0</center> </body> </html>
NGX_HTTP_FORBIDDENnginx
chmod 222 index.html 將index.html設置爲不可讀 curl localhost:8070 <html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx/1.14.0</center> </body> </html>
NGX_HTTP_NOT_FOUNDapp
curl localhost:8070/cde.html <html> <head><title>404 Not Found</title></head> <body bgcolor="white"> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.14.0</center> </body> </html>
NGX_HTTP_NOT_ALLOWEDcurl
使用非GET/POST/HEAD方法訪問一個靜態文件 curl -X DELETE localhost:8070/index.html -I HTTP/1.1 405 Not Allowed Server: nginx/1.14.0 Date: Tue, 18 Sep 2018 10:02:22 GMT Content-Type: text/html Content-Length: 173 Connection: keep-alive
NGX_HTTP_INTERNAL_SERVER_ERRORui
修改index.php爲 <?php echo "124" 缺乏引號,語法錯誤
curl localhost:8070/index.php -I HTTP/1.1 500 Internal Server Error Server: nginx/1.14.0 Date: Tue, 18 Sep 2018 11:29:19 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Set-Cookie: PHPSESSID=aoesvcuvbh1nh95kdkp152r9e1; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache
NGX_HTTP_NOT_IMPLEMENTEDurl
nginx的transfer-encoding如今只支持chunked,若是客戶端隨意設置這個值,會報501 curl localhost:8070 -H 'Transfer-Encoding:1' <html> <head><title>501 Not Implemented</title></head> <body bgcolor="white"> <center><h1>501 Not Implemented</h1></center> <hr><center>nginx/1.14.0</center> </body> </html>
NGX_HTTP_BAD_GATEWAYcode
修改nginx配置爲 fastcgi_pass 127.0.0.1:8000; 指向一個未監聽的端口
curl localhost:8070/index.php -I HTTP/1.1 502 Bad Gateway Server: nginx/1.14.0 Date: Tue, 18 Sep 2018 11:28:17 GMT Content-Type: text/html Content-Length: 537 Connection: keep-alive ETag: "5ad6113c-219"
NGX_HTTP_SERVICE_UNAVAILABLEserver
修改nginx配置,限速爲每分鐘10個請求 limit_req_zone $binary_remote_addr zone=one:10m rate=10r/m; limit_req zone=one;
連續發送兩個請求,第二請求會報503 curl localhost:8070/index.php -I HTTP/1.1 503 Service Temporarily Unavailable Server: nginx/1.14.0 Date: Tue, 18 Sep 2018 11:31:43 GMT Content-Type: text/html Content-Length: 537 Connection: keep-alive ETag: "5ad6113c-219"
NGX_HTTP_GATEWAY_TIME_OUThtm
修改index.php爲 <?php echo "124"; sleep(5); 休息5秒鐘 修改nginx配置爲 三秒鐘讀超時 fastcgi_read_timeout 3;
curl localhost:8070/index.php -I HTTP/1.1 504 Gateway Time-out Server: nginx/1.14.0 Date: Tue, 18 Sep 2018 12:17:57 GMT Content-Type: text/html Content-Length: 537 Connection: keep-alive ETag: "5ad6113c-219"
NGX_HTTP_VERSION_NOT_SUPPORTED
telnet8070端口,輸入GET /index.html HTTP/2.1 不支持http/2.1,會報505 $telnet localhost 8070 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET /index.html HTTP/2.1 HTTP/1.1 505 HTTP Version Not Supported Server: nginx/1.14.0 Date: Tue, 18 Sep 2018 12:26:35 GMT Content-Type: text/html Content-Length: 203 Connection: close <html> <head><title>505 HTTP Version Not Supported</title></head> <body bgcolor="white"> <center><h1>505 HTTP Version Not Supported</h1></center> <hr><center>nginx/1.14.0</center> </body> </html>