Điểm:0

Gặp lỗi hết thời gian chờ với ứng dụng nginx + gunicorn trên các dịch vụ ứng dụng Azure

lá cờ id

Các bạn, tôi cần trợ giúp với cấu hình NGINX của mình. Hiện tại, ứng dụng Django được lưu trữ tại các dịch vụ Ứng dụng Azure và chuyển thẳng đến Gunicorn hoạt động tốt, nhưng khi tôi chuyển qua NGINX, tôi bắt đầu gặp lỗi, như thế này:

Tôi đã cố gắng tăng thời gian chờ, nhưng các lỗi liên tục xuất hiện trên các điểm cuối khác nhau và các điểm cuối hoạt động tốt khi tôi không sử dụng NGINX mà chỉ sử dụng gunicorn, vì vậy tôi đoán nó phải làm gì đó với bộ NGINX- hướng lên.


    2022-01-26T10:22:03.479463450Z nginx | 26/01/2022 10:22:03 [thông tin] 29#29: *2245 epoll_wait() báo cáo rằng máy khách đã đóng kết nối sớm, vì vậy kết nối ngược dòng cũng bị đóng trong khi gửi yêu cầu ngược dòng, máy khách: 169.254.130.1, máy chủ: xxxxx .com, yêu cầu: "GET /api/v1/office-hours/ HTTP/1.1", ngược dòng: "http://127.0.0.1:8000/api/v1/office-hours/", máy chủ lưu trữ: "xxxxx.com ", liên kết giới thiệu: "https://xxxx.vercel.app/"
    2022-01-26T10:22:03.514362267Z nginx | 169.254.130.1 - - [26/Jan/2022:10:22:03 +0000] "GET /api/v1/office-hours/ HTTP/1.1" 499 0 "https://xxxx.vercel.app/" " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/97.0.4692.99 Safari/537.36"
     
    2022-01-26T10:23:03.513182059Z nginx | 26/01/2022 10:23:02 [thông tin] 29#29: *2247 epoll_wait() báo cáo rằng máy khách đã đóng kết nối sớm, vì vậy kết nối ngược dòng cũng bị đóng trong khi gửi yêu cầu ngược dòng, máy khách: 169.254.130.1, máy chủ: xxxxx .com, yêu cầu: "GET /api/v1/office-hours/ HTTP/1.1", ngược dòng: "http://127.0.0.1:8000/api/v1/office-hours/", máy chủ lưu trữ: "xxxxx.com ", liên kết giới thiệu: "https://xxxx.vercel.app/"
    2022-01-26T10:23:03.513238060Z nginx | 169.254.130.1 - - [26/Jan/2022:10:23:02 +0000] "GET /api/v1/office-hours/ HTTP/1.1" 499 0 "https://xxxx.vercel.app/" " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/97.0.4692.99 Safari/537.36" 

web | [2022-01-25 17:21:07 +0000] [15] [PHẦN QUAN TRỌNG] NHÂN VIÊN HẾT THỜI GIAN (pid:32)
2022-01-25T17:21:07.490138324Z web | 25-01-2022 18:21:07,487 [32mINFO [31mglogging [33mWorker thoát (pid: 32) [34mgunicorn.error.info:264[0m
2022-01-25T17:21:07.490220225Z nginx | 25/01/2022 17:21:07 [lỗi] 25#25: *930 kết nối ngược dòng bị đóng sớm trong khi đọc tiêu đề phản hồi từ ngược dòng, máy khách: 169.254.130.1, máy chủ: xxxx.com, yêu cầu: "NHẬN /api/v1 /cms/content/ HTTP/1.1", ngược dòng: "http://127.0.0.1:8000/api/v1/cms/content/", máy chủ lưu trữ: "xxxx.com"
2022-01-25T17:21:07.490875232Z nginx | 169.254.130.1 - - [25/Jan/2022:17:21:07 +0000] "GET /api/v1/cms/content/ HTTP/1.1" 502 158 "-" "axios/0.18.1"
2022-01-25T17:21:07.490892833Z nginx | 25/01/2022 17:21:07 [thông tin] 25#25: *930 client 169.254.130.1 đã đóng kết nối keepalive
2022-01-25T17:21:08.673367528Z web | [2022-01-25 17:21:08 +0000] [15] [CẢNH BÁO] Worker với pid 32 đã bị chấm dứt do tín hiệu 9
2022-01-25T17:21:08.679932505Z web | [2022-01-25 17:21:08 +0000] [43] [INFO] Boot worker với pid: 43

đây là nginx.conf của tôi

#người dùng nginx;
công_nhân 2; # Đặt thành số lõi CPU, 2 lõi trong gói Azure P1v3

error_log /var/log/nginx/error.log gỡ lỗi;
pid /var/run/nginx.pid;


sự kiện {
    công_nhân kết_nối 1024 ;
}


http {
    bao gồm /etc/nginx/mime.types;
    ứng dụng default_type/octet-stream;

    log_format chính '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log chính;

    gửi tệp trên;
    #tcp_nopush bật;

    keepalive_timeout 65;

    #gzip trên;

    bao gồm /etc/nginx/conf.d/*.conf;
}

đây là mặc định của tôi.conf

người phục vụ {
nghe 80 default_server;

thông tin error_log /dev/stdout;
truy cập_log /dev/stdout;

client_max_body_size 100M;


vị trí/tĩnh {
    gốc /var/app/ui/build;
}

vị trí /site-static {
    gốc /var;
}

địa điểm/phương tiện {
    gốc /var;
}

địa điểm / {
    gốc /var/app/ui/build; # thử phản ứng thư mục bản dựng trước, nếu tệp không tồn tại, hãy định tuyến yêu cầu tới ứng dụng django
    try_files $uri $uri/index.html $uri.html @app;
}

vị trí @app {
    proxy_set_header Máy chủ lưu trữ $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto "https"; # giả sử https đã bị bộ cân bằng tải kết thúc trước mặt chúng ta

    proxy_pass http://127.0.0.1:8000;
    proxy_read_timeout 300;
    tắt proxy_buffering;
}

}

Điểm:1
lá cờ us

Bạn cần gỡ lỗi ứng dụng của mình, tại sao quá lâu để phản hồi.

Có độ trễ một phút giữa nginx gửi yêu cầu ngược dòng và nginx từ bỏ chờ phản hồi.

nginx có thể kết nối với ứng dụng ngược dòng qua TCP, nó có thể gửi yêu cầu HTTP. Tuy nhiên, ứng dụng không gửi phản hồi trước khi nginx hết thời gian chờ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.