Trong trường hợp của tôi, tôi đã thiếu kiên nhẫn và cuối cùng đã hiểu sai bản ghi.
Trên thực tế, vấn đề thực sự là giao tiếp giữa nginx và uwsgi, chứ không phải giữa trình duyệt và nginx. Nếu tôi đã tải trang web trong trình duyệt của mình và đợi đủ lâu, tôi sẽ nhận được "504 - Cổng xấu". Nhưng mất quá nhiều thời gian, tôi tiếp tục thử mọi thứ, và sau đó làm mới trong trình duyệt. Vì vậy, tôi không bao giờ đợi đủ lâu để thấy lỗi 504. Khi làm mới trong trình duyệt, đó là khi yêu cầu trước đó bị đóng và Nginx ghi điều đó vào nhật ký là 499.
Công phu
Ở đây tôi sẽ giả định rằng người đọc biết ít như tôi đã làm khi tôi bắt đầu chơi xung quanh.
Thiết lập của tôi là một proxy ngược, máy chủ nginx và máy chủ ứng dụng, máy chủ uWSGI đằng sau nó. Tất cả các yêu cầu từ máy khách sẽ chuyển đến máy chủ nginx, sau đó được chuyển tiếp đến máy chủ uWSGI và sau đó phản hồi được gửi lại theo cùng một cách. Tôi nghĩ đây là cách mọi người sử dụng nginx / uwsgi và phải sử dụng nó.
Nginx của tôi hoạt động như bình thường, nhưng đã xảy ra sự cố với máy chủ uwsgi. Có hai cách (có thể nhiều hơn) mà máy chủ uwsgi có thể không phản hồi với máy chủ nginx.
1) uWSGI nói, "Tôi đang xử lý, chỉ cần đợi và bạn sẽ sớm nhận được phản hồi". nginx có một khoảng thời gian nhất định, rằng nó sẵn sàng đợi, fx 20 giây. Sau đó, nó sẽ phản hồi lại máy khách, với lỗi 504.
2) uWSGI đã chết, hoặc uWSGi chết trong khi nginx đang đợi nó. nginx thấy điều đó ngay lập tức và trong trường hợp đó, nó trả về lỗi 499.
Tôi đang thử nghiệm thiết lập của mình bằng cách đưa ra các yêu cầu trong ứng dụng khách (trình duyệt). Trong trình duyệt không có gì xảy ra, nó cứ bị treo. Có thể sau 10 giây (ít hơn thời gian chờ), tôi kết luận rằng có điều gì đó không đúng (đó là sự thật) và đóng máy chủ uWSGI từ dòng lệnh. Sau đó, tôi sẽ đi đến cài đặt uWSGI, thử một cái gì đó mới và sau đó khởi động lại máy chủ uWSGI. Tại thời điểm tôi đóng máy chủ uWSGI, máy chủ nginx sẽ trả về lỗi 499.
Vì vậy, tôi tiếp tục gỡ lỗi với lỗi 499, có nghĩa là googling cho lỗi 499. Nhưng nếu tôi đã đợi đủ lâu, tôi sẽ nhận được lỗi 504. Nếu tôi gặp lỗi 504, tôi sẽ có thể hiểu vấn đề tốt hơn và sau đó có thể gỡ lỗi.
Vì vậy, kết luận là, vấn đề là với uWGSI, liên tục bị treo ("Chờ một chút nữa, chỉ một chút nữa, sau đó tôi sẽ có câu trả lời cho bạn ...").
Tôi đã khắc phục sự cố đó như thế nào , tôi không nhớ. Tôi đoán nó có thể được gây ra bởi rất nhiều thứ.