302錯誤
現象:nginx在使用非80端口做反向代理時,瀏覽器訪問發現返回302錯誤
解決方案:
//如果是 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)
403錯誤
參考(403錯誤解決)[https://rumenz.com/rumenbiji/nginx-403-forbidden.html]
413錯誤
413 Request Entity Too Large
上傳文件過程中容易出現這個問題,傳遞的某些數據大小超過了nginx的配置
解決方案:
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太長了
解決方案:
http{
client_header_buffer_size 512k;
large_client_header_buffers 4 512k;
}
499錯誤
這是nginx定義的一個狀態碼,用於表示這樣的錯誤:服務器返回http頭之前,客戶端就提前關閉了http連接
問題的核心就是要排查為什么服務端處理時間過長
可能問題:
1.后台python程序處理請求時間過長
2.mysql慢查詢
通過查看監控:
1.cpu和內存的使用,都在正常范圍
2.后台程序訪問正常
3.MySQL沒有慢查詢
502錯誤
502 Bad Gateway:作為網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應
504錯誤
504 Gateway Time-out:作為網關或者代理工作的服務器嘗試執行請求時,未能及時從上游服務器(URI標識出的服務器,例如HTTP、FTP、LDAP)或者輔助服務器(例如DNS)收到響應。