Tôi có một dự án Django chạy phía sau Nginx và Gunicorn. Một trong những ứng dụng tương tác với các thiết bị mạng sử dụng Exscript, lần lượt sử dụng Paramiko. Một số thiết bị không hoạt động bình thường khi chúng ở đằng sau Gunicorn.Gunicorn có thể gây ra sự cố với exscript/paramiko không?
Mã chính xác tương tự sẽ hoạt động tốt từ bên trong vỏ django-admin. Nó cũng sẽ hoạt động nếu tôi khởi chạy máy chủ django tích hợp, nhưng tôi vẫn gặp lỗi nếu tôi bỏ qua nginx và kết nối trực tiếp với Gunicorn.
Tôi đã thử di chuyển chức năng này sang nhiệm vụ cần tây, nó có cùng vấn đề chính xác, nhưng chỉ sau Gunicorn.
Tôi đã viết một tập lệnh bằng cách sử dụng các phần mở rộng django hoạt động từ dòng lệnh, nhưng sẽ thất bại nếu được gọi qua tiến trình con. Nhưng chỉ sau Gunicorn.
Các thiết bị bị lỗi tất cả dường như là F5 LTM và có vẻ như bộ đệm trên đối tượng exscript đang được sửa đổi bằng cách nào đó. Nếu tôi phải đoán tôi sẽ nói rằng Gunicorn, và Exscript/Paramiko đang bằng cách nào đó bước vào bộ nhớ của nhau, hoặc có lẽ Gunicorn đang thiết lập một số biến môi trường mà Exscript đang chọn.
Trong mọi trường hợp, tôi hoàn toàn bối rối và sẽ đánh giá cao bất kỳ hướng dẫn nào về cách khắc phục sự cố này.
Bạn đã cài đặt paramiko bằng cách nào? Với gói hệ điều hành? Với pip? Bạn có sử dụng virtualenv không? Bạn có chắc chắn gunicorn sử dụng cùng một paramiko như dòng lệnh của bạn? –
Parimiko được cài đặt với pip, và chỉ trong virtualenv mà gunicorn đang sử dụng. Ý tưởng tốt mặc dù. –
Nếu bạn vẫn gặp sự cố, hãy chú ý xem [loại runner] nào (http://gunicorn-docs.readthedocs.org/en/latest/run.html#commonly-used-arguments) bạn đang sử dụng trong gunicorn? Khi bạn nói nó thất bại, bạn có thể xây dựng chính xác những gì xảy ra, (một ngoại lệ, quá trình treo cứng, vv)? – tutuDajuju