Nginx常見錯誤碼解決方案


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)收到響應。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM