Cái nào là tốt nhất cho Django? Lighttpd hay Nginx? Hoặc có thể một cái gì đó khác? [đóng cửa]


18

Lighttpd và Nginx nào, dựa trên kinh nghiệm của bạn, phù hợp hơn với Django? Tôi đã sử dụng cả hai và hầu như không nhận thấy bất kỳ sự khác biệt nào cả, chúng chỉ hoạt động tốt ... Có trường hợp sử dụng nào khi một trong số chúng hoạt động tốt hơn nhiều so với cái khác không? Khi trả lời xin vui lòng tính đến cả sự đơn giản về cấu hình và hiệu quả.

Thiết lập thông thường của tôi là có một quy trình Django FCGI riêng (như trong ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) được khởi chạy thông qua daemontools hoặc một init.dtập lệnh và lighty / nginx hoạt động như một proxy ngược.

Ồ, và nếu bạn cảm thấy một số máy chủ http khác tốt hơn cho Django so với Lighty và Nginx, xin đừng ngần ngại chia sẻ suy nghĩ của bạn.


Nếu một dịch vụ fastcgi chết, giám sát daemontools sẽ khởi động lại nó trong vòng năm giây, vì vậy dịch vụ sẽ được sao lưu. Nhưng bạn vẫn có một độ trễ nhỏ của thời gian chết ở đó. Trong quá trình triển khai, tôi thấy fastcgi rất mong manh dừng đột ngột dưới áp lực nhẹ. Sau một vài lần ngừng hoạt động và vài cuộc gọi điện thoại vụng về từ khách hàng, tôi đã chuyển Nginx sang proxy ngược lại sang mod_wsgi của Apache và mọi thứ chỉ ồn ào kể từ đó.

Câu trả lời:


14

Cả Nginx và Lighttpd đều là lựa chọn tốt hơn so với apache khi sử dụng chúng làm proxy ngược cho Django, Rails, v.v ... Cả hai đều hỗ trợ ủy quyền FastCGI và http. Cả hai đều cung cấp một mô hình dựa trên chọn lọc () (hoặc tốt hơn) theo luồng để sử dụng tài nguyên hiệu quả.

Tuy nhiên, phiếu bầu của tôi thuộc về Nginx, nó có một cơ sở người dùng rất tích cực (hiện tại nó là con cưng của bộ Ruby on Rails) và đang được phát triển tích cực. Lighttpd có thể bị nhầm là đã chết, hơn 2 năm và chúng tôi vẫn đang chờ bản beta là 1,5.


7

mod_wsgi là cách được khuyến nghị để đưa ứng dụng Django vào sản xuất. Mod_wsgi của Apache tốt hơn nhiều so với nginx. Bạn không thể tìm thấy gói chính thức (trong các bản phân phối Linux hiện tại) cho mod_wsgi của nginx và Bạn cần phải tự biên dịch nó. Tôi thích nginx nhưng nếu bạn muốn chơi an toàn, hãy chơi với Apache mod_wsgi.


2
Nginx mod_wsgi không phải là thứ bạn muốn sử dụng. Nginx là tốt nhất để cung cấp nội dung tĩnh và proxy ngược lại cho mod_wsgi của Apache để tạo động. Bạn sẽ không muốn sử dụng máy chủ web không đồng bộ cho cả việc tạo các trang động và phục vụ nội dung tĩnh. Bản thân mod_wsgi của Apache cũng không có nhiều ý nghĩa. Bạn sẽ không muốn con thú đó bận rộn phun xung quanh các tệp tĩnh, trong khi nó được cho là thực hiện công việc nặng nhọc. Đọc thêm tại đây b-list.org/weblog/2008/jun/23/media

5

mod-wsgi là cách tốt nhất để chạy các ứng dụng django trong sản xuất, ít khó khăn hơn fastcgi và không có vấn đề với thời gian khởi động, v.v.

Mod-wsgi thực sự dành cho apache, nhưng có một mod-wsgi khác cho nginx. Một apache là tuyệt vời, tôi không thể nhận xét về nginx một.

Cá nhân, tôi sẽ tránh xa lighttpd. Nó không có sự ổn định của nginx, tôi chưa thấy trường hợp lighttpd nào bị rò rỉ bộ nhớ.

Về cơ bản, lựa chọn đầu tiên của tôi sẽ là apache 2.2, lựa chọn thứ hai của tôi sẽ là nginx.

Đừng tin vào sự cường điệu về thời gian đáp ứng và khả năng mở rộng. Sự thật là, nó không thành vấn đề. (Google sử dụng Apache).


Google sử dụng GWS ( en.wikipedia.org/wiki/Google_Web_Server ) chứ không phải Apache. Yahoo sử dụng Apache, nhưng đó là một ngã ba cổ xưa của 1.3.
Dave Cheney

YouTube sử dụng hoặc ít nhất là sử dụng lighttpd, vì vậy tôi không nghĩ rằng nó quá tệ. Xem highscalability.com/youtube-arch architecture .
Cristian Ciupitu

Có, nhưng trong khi GWS là một dự án bí mật, người ta biết nó dựa trên Apache.

Điều YT không nói là họ có ngã ba ánh sáng riêng. Là ánh sáng thực sự có một vấn đề rò rỉ bộ nhớ nổi tiếng. Tôi tin rằng họ có thể đã sửa nó ngay bây giờ, nhưng đại diện vẫn tồn tại.
Abhishek Dujari

2

Ngoài ra, hãy xem xét sử dụng Google App Engine. Bạn có thể lưu trữ dự án Django của bạn ở đó miễn phí và không phải lo lắng về việc duy trì cơ sở hạ tầng máy chủ.


8
Django trên GAE có những hạn chế đáng kể, như không hỗ trợ bất kỳ tính năng cơ sở dữ liệu / ORM nào của Django. Nếu nó hỗ trợ những gì bạn cần, thật tuyệt - nhưng hãy kiểm tra cẩn thận!

Tôi tin rằng MySQL hiện được GAE hỗ trợ nên tôi cho rằng ORM cũng sẽ như vậy. Mặc dù đúng là tôi không có kinh nghiệm dùng thử. Django không có ORM giống như khiêu dâm mà không có torrent.
Abhishek Dujari
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.