Có thể nào đó để vượt qua giới hạn giữ gìn của uwsgi không? Nếu không, cách tốt nhất để thực hiện kết nối liên tục là gì. Tôi đang sử dụng NGiNX + uWSGI (Python) và tôi muốn khách hàng có các bản cập nhật không đồng bộ từ máy chủ.uWSGI keepalive
Trả lời
Bạn đang nói về hai điều khác nhau. Nếu bạn muốn kết nối liên tục từ khách hàng đến ứng dụng của mình, bạn có thể muốn sử dụng chế độ không đồng bộ (thông qua ugreen, gevent ...). Bằng cách đó bạn sẽ có thể duy trì hàng ngàn kết nối đồng thời. Keepalive là một cách để định tuyến nhiều yêu cầu đến cùng một kết nối, nhưng điều này là khá vô ích cho mục đích của bạn. Thay vào đó Nếu bạn đang đề cập đến các kết nối liên tục giữa nginx và uWSGI, không có cách nào (hiện tại) trong nginx để đạt được hành vi như vậy. Bạn có thể muốn làm theo vé này:
http://projects.unbit.it/uwsgi/ticket/66
nó là về fastrouter, nhưng sẽ được áp dụng trong httprouter quá. Nhưng nó vẫn còn dưới sự phát triển nặng nề.
Không, bạn không thể, vì uwsgi dựa trên SCGI và đóng các ổ cắm sau mỗi yêu cầu. Thay vào đó hãy sử dụng FastCGI.
UWSGI hỗ trợ duy trì hoạt động qua tùy chọn --http-keepalive nếu bạn nhận được yêu cầu qua http.
/tmp$ cat app.py
def application(env, start_response):
content = b"Hello World"
start_response('200 OK', [
('Content-Type','text/html'),
('Content-Length', str(len(content))),
])
return [content]
Run with:
/tmp$ uwsgi --http=:8000 --http-keepalive -w app &> /dev/null
Và chúng ta có thể thấy connect
cuộc gọi qua strace:
~$ strace -econnect wrk -d 10 -t 1 -c 1 http://127.0.0.1:8000
connect(3, {sa_family=AF_INET, sin_port=htons(8000), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
Running 10s test @ http://127.0.0.1:8000
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 92.32us 56.14us 2.81ms 97.20%
Req/Sec 11.10k 389.34 11.84k 68.32%
111505 requests in 10.10s, 7.98MB read
Requests/sec: 11040.50
Transfer/sec: 808.63KB
+++ exited with 0 +++
Thấy không? Chỉ có một kết nối.
- 1. WCF wsHttpBinding với http keepalive
- 2. uwsgi + django qua Nginx - uwsgi settings/spawn?
- 3. WebClient có sử dụng KeepAlive không?
- 4. uWSGI + nginx cho dự án django, lỗi với strting uwsgi
- 5. quyền ổ cắm uwsgi
- 6. WSGI vs uWSGi với Nginx
- 7. sử dụng đúng cách KeepAlive trong Apache .htaccess
- 8. Cách gửi tiêu đề KeepAlive đúng cách trong C#?
- 9. Lỗi khi cài đặt uWSGI trên mac
- 10. Chỉ có thể chạy uwsgi với gốc
- 11. plugin python3 uwsgi không hoạt động
- 12. Django + Nginx + uWSGI = 504 Cổng hết giờ
- 13. nội Server Error với Django và uWSGI
- 14. nginx uwsgi và cgi python script
- 15. Phục vụ nhiều trang web Django với Nginx với UWSGI
- 16. uwsgi: tùy chọn không được công nhận '--module = MyProject.wsgi: application'
- 17. Cách viết để đăng nhập trăn bằng nginx + uwsgi
- 18. Giao thức uwsgi có nhanh hơn giao thức http không?
- 19. Cài đặt uwsgi với các plugin sử dụng 'pip'
- 20. Chạy ứng dụng django qua nginx + uwsgi trong đường phụ
- 21. làm thế nào để giết chết quá trình uWSGI
- 22. Chạy ứng dụng django trên apache với uWSGI
- 23. Triển khai Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn)
- 24. django + uwsgi + ngnix + gỡ lỗi = Lỗi máy chủ (500)
- 25. Django, Virtualenv, nginx + uwsgi mô-đun nhập khẩu lỗi wsgi
- 26. Flask debug = True không hoạt động khi đi qua uWSGI
- 27. Tại sao NodeJS KeepAlive dường như không hoạt động như mong đợi?
- 28. Giải pháp keepalive Android http, nhưng nó có phải là giải pháp vĩnh viễn không?
- 29. Sau khi cài đặt pip uWSGI, không có thư mục/etc/uwsgi/làm cách nào tôi có thể sử dụng các ứng dụng được kích hoạt?
- 30. uwsgi ném lỗi IO gây ra bởi đường ống bị hỏng uwsgi_response_write_body_do
tùy chọn '-c 1' đặt số lượng kết nối hoạt động đồng thời, nhưng không cần thiết hoạt động ở chế độ giữ nguyên: https://github.com/wg/wrk/blob/91655b5520b524fc0b802ad12220c9dcd546757e/src/http_parser.c#L2123 . UWSGI thêm 'Kết nối: đóng' vào mọi câu trả lời. Nhưng công cụ 'uwsgi' này có thể hoạt động trong thời gian tồn tại bằng cách giải quyết nếu kích thước của nội dung được biết: http://uwsgi-docs.readthedocs.io/en/latest/HTTP.html?highlight=keep-alive#http-keep -sống sót. Dù sao, ứng dụng của bạn nhận được rất nhiều yêu cầu riêng biệt. – DenisKolodin
@DenisKolodin > nhưng công việc không cần thiết trong chế độ lưu động 'wrk' sử dụng http/1.1 để giữ cho hoạt động là chế độ mặc định. Thử nghiệm tương tự với strace và 'ab' hiển thị' connect' trên mọi yêu cầu. > Nhưng công cụ uwsgi này có thể hoạt động trong thời gian tồn tại bằng cách giải quyết nếu kích thước của nội dung được biết là Nó không phải là một cách giải quyết. Đó là một hành vi được ghi lại tài liệu) Hầu hết các khung công tác wsgi đều đặt đúng Độ dài nội dung. – bav