Nginx常見錯誤碼解決方案

302錯誤

現象:nginx在使用非80端口作反向代理時,瀏覽器訪問發現返回302錯誤php

解決方案:html

//若是是 proxy_set_header Host $host;
//那麼改爲proxy_set_header Host $host:$server_post;
//沒有配置則加上proxy_set_header Host $host:$server_post;

//如下爲添加位置
location ^/api {

    proxy_set_header Host $host:$server_post; 
    proxy_pass http://127.0.0.1;
}

400錯誤

nginx400錯誤是因爲request header過大,一般是因爲cookie中寫入了較長的字符串所引發的。若cookie太大,可能還須要調整large_client_header_buffers(默認4k)python

403錯誤

參考(403錯誤解決)[https://rumenz.com/rumenbiji/nginx-403-forbidden.html]mysql

413錯誤

413 Request Entity Too Large

上傳文件過程當中容易出現這個問題,傳遞的某些數據大小超過了nginx的配置nginx

解決方案:spring

hhtp{
    client_max_body_size 8M;       //改變這個值
    client_body_buffer_size 128k; //緩衝區大小
}

若是後端是php 修改php.ini
post_max_size = 8M  
upload_max_filesize = 6M
重啓php服務

若是後端是Springboot

Spring Boot 1.3.x 
multipart.maxFileSize=8M
multipart.maxRequestSize=8M

Spring Boot 1.4.x and 1.5.x
spring.http.multipart.maxFileSize=8M
spring.http.multipart.maxRequestSize=8M


Spring Boot 2.x
spring.servlet.multipart.max-file-size=8M
spring.servlet.multipart.max-request-size=8M

414錯誤

414 Request-URI Too Large 請求的url太長了sql

解決方案:後端

http{
    client_header_buffer_size 512k;
    large_client_header_buffers 4 512k;
}

499錯誤

這是nginx定義的一個狀態碼,用於表示這樣的錯誤:服務器返回http頭以前,客戶端就提早關閉了http鏈接api

問題的核心就是要排查爲何服務端處理時間過長瀏覽器

可能問題:

1.後臺python程序處理請求時間過長

2.mysql慢查詢

經過查看監控:

1.cpu和內存的使用,都在正常範圍

2.後臺程序訪問正常

3.MySQL沒有慢查詢

502錯誤

502 Bad Gateway:做爲網關或者代理工做的服務器嘗試執行請求時,從上游服務器接收到無效的響應

504錯誤

504 Gateway Time-out:做爲網關或者代理工做的服務器嘗試執行請求時,未能及時從上游服務器(URI標識出的服務器,例如HTTP、FTP、LDAP)或者輔助服務器(例如DNS)收到響應。

相關文章
相關標籤/搜索