2016-05-08 13 views
6

Tôi đã xây dựng một dự án django và triển khai nó để sản xuất bằng cách sử dụng combo Apache-WSGI. Cho rằng tôi đã thêm apache2.conf như hình dưới đây:Cách cấu hình Apache để chạy ASGI trong Kênh Django? Thậm chí Apache có cần thiết không?

WSGIScriptAlias//home/ubuntu/MyProject/MyProject/wsgi.py 
WSGIPythonPath /home/ubuntu/MyProject 

<Directory /home/ubuntu/MyProject/MyProject> 
<Files wsgi.py> 
Require all granted 
</Files> 
</Directory> 

Vì vậy, đây mean't tất cả các yêu cầu đối với trang web của tôi đầu tiên đi đến Apache, sau đó cho phép WSGI để đi vào chơi. Vì vậy, nếu tôi sẽ tắt Apache, trang web sẽ không hoạt động.

Tôi hiện đã cài đặt Django-Channels. Theo phần 'Triển khai' trong tài liệu (https://channels.readthedocs.io/en/latest/deploying.html), tôi có:

  1. cài đặt Redis (trên máy chủ dự án Django của tôi)
  2. Chạy máy chủ nhân
  3. Run Daphne (giao diện máy chủ)
  4. Tôi đã ngừng Apache vào lúc này và trang web từ chối kết nối.

Sau đây là những nghi ngờ của tôi:

  • Liệu Daphne chiếm Apache là máy chủ chính ?? Trong trường hợp này, tôi không còn cần Apache và nó có thể bị đóng cửa không?
  • Nếu Apache vẫn được yêu cầu, tôi nên thực hiện cài đặt nào trong tệp apache2.conf?

Trả lời

4

Như đã đề cập bởi Lukasa, tôi đã dừng máy chủ Apache, lúc đầu dừng ứng dụng django của tôi được gửi tới thế giới. Sau đó, tôi chạy các lệnh sau khi root:

  • sudo daphne MyProject.asgi: channel_layer --port 80 --bind 0.0.0.0 -v2
  • sudo python manage.py runworker -v2

Hai lệnh bắt đầu phân phối ứng dụng tới các yêu cầu http từ bên ngoài máy chủ. Không có cấu hình khác được yêu cầu khác ngoài đề cập trong bài hỏi.

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