2012-11-01 39 views
49

Rất nhiều triển khai ứng dụng Django trên EC2 của Amazon sử dụng máy chủ HTTP NGINX và Gunicorn.Mục đích của NGINX và Gunicorn chạy song song là gì?

Tôi đã tự hỏi họ thực sự làm gì và tại sao cả hai được sử dụng song song. Mục đích của việc chạy chúng song song là gì?

+2

Xem [câu hỏi này] (http://stackoverflow.com/questions/13004484/deploying-django-with-gunicorn-and-nginx/13004973#13004973) chi tiết hơn một chút so với câu trả lời của Timmy. –

+0

@BurhanKhalid cảm ơn bạn, đã giúp – noahandthewhale

Trả lời

65

Chúng không được sử dụng song song. NGINX là reverse proxy. Đó là lần đầu tiên trong dòng. Nó chấp nhận các kết nối đến và quyết định nơi họ nên đi tiếp theo. Nó cũng (thường) phục vụ phương tiện truyền thông tĩnh như CSS, JS và hình ảnh. Nó cũng có thể thực hiện những việc khác như mã hóa qua SSL, bộ nhớ đệm, v.v.

Gunicorn là lớp tiếp theo và là application server. NGINX thấy rằng kết nối đến là dành cho www.domain.com và biết (thông qua các tệp cấu hình) mà nó sẽ chuyển kết nối đó vào Gunicorn. Gunicorn là một máy chủ WSGI mà về cơ bản là một:

đơn giản và giao diện phổ biến giữa các máy chủ web và các ứng dụng web hoặc khuôn khổ

việc Gunicorn là để quản lý và chạy các ví dụ Django (s) (tương tự như sử dụng django-admin runserver khi đang phát triển)

Độ tương phản với thiết lập này là sử dụng Apache với mô-đun mod_wsgi. Trong tình huống này, máy chủ ứng dụng thực sự là một phần của Apache, hoạt động như một mô-đun.

+0

@Timmy O'Mahony, sự khác biệt giữa tệp wsgi (sắp tới khi tạo dự án django) và gunicorn – Shiva

+3

[Câu trả lời này] (http://serverfault.com/questions/220046/why là gì -is-setting-nginx-as-a-reverse-proxy-a-good-idea) đi sâu vào chi tiết và lợi ích của nginx. –

Các vấn đề liên quan