Tài liệu django bạn đã liên kết không đề xuất bạn sử dụng apache làm proxy ngược. Họ chỉ đơn giản đề nghị bạn sử dụng một máy chủ web riêng biệt, vì vậy tôi muốn nói rằng các tài liệu không rõ ràng về chủ đề đó - chúng không đề xuất bất cứ điều gì sai.
Câu trả lời ban đầu của tôi giả sử bạn có nginx làm proxy ngược vì cổng 80 là cổng HTTP, cổng được sử dụng khi trình duyệt cố truy cập url không có cổng được chỉ định.
Có rất nhiều hướng dẫn hoàn chỉnh để thiết lập nginx + apache thông qua tìm kiếm google nhanh chóng nhưng đây là ý chính cho việc thiết lập nginx:
location/{
# proxy/requests to apache running django on port 8081
proxy_pass http://127.0.0.1:8081/;
proxy_redirect off;
}
location /media/ {
# serve static media directly from nginx
root /srv/anuva_project/www/;
expires 30d;
break;
}
Tất cả bạn cần làm là loại bỏ các dòng proxy từ apache của bạn cấu hình và thêm các câu lệnh proxy vào nginx.conf của bạn.
Nếu bạn thực sự muốn phục vụ trang web của mình từ cổng 8081, bạn có khả năng có thể nginx nghe trên cổng 8081 và có apache nghe trên một cổng khác.
Vấn đề là, apache nằm trong một số cổng tối nghĩa, chỉ phục vụ các yêu cầu được gửi đến từ nginx, trong khi việc phân phát tệp tĩnh được xử lý bởi nginx.
Nguồn
2011-02-03 16:45:22
Thật an toàn khi gắn bó với Nginx trên cổng 80. Chăm sóc để chia sẻ nơi bạn tìm thấy mọi người nói apache là proxy ngược lại tốt hơn? Điểm chuẩn là chìa khóa. –
Trong khi tôi đang thiết lập ứng dụng của mình, tôi đã đăng câu hỏi trên http://stackoverflow.com/questions/4868213/apache-reverseproxy-not-working-noob/4870186 và sf http://serverfault.com/questions/229842/apache-reverseproxy-to-nginx. Và tôi nhận được phản hồi tương tự trên cả hai trang. – Neo