2011-06-25 45 views
7

Tôi có một ứng dụng PHP đang được phục vụ thông qua apache trên cổng 80. Tôi có một ứng dụng nodejs chạy độc lập trên cổng 3000. Tôi muốn thực hiện các yêu cầu ajax từ mã phía máy khách được PHP tạo ra cho ứng dụng nodejs. Vấn đề là chính sách gốc tương tự sẽ không cho phép một cổng khác, và tôi không thể chạy cả hai nút và apache trên cổng 80.Thiết lập apache để đặt bí danh một ứng dụng nodejs?

Điều tôi lý tưởng nhất là làm cho cả hai xuất hiện để chạy trên cổng 80 từ quan điểm của khách hàng. Làm thế nào tôi có thể thiết lập apache để định tuyến lại/alias/bất kỳ yêu cầu nào đó cho ứng dụng nodejs?

Hy vọng điều đó có ý nghĩa. Lưu ý: Không chắc chắn nếu điều này là có thể, hoặc nếu tôi đang đi về nó một cách đúng đắn - mở để gợi ý.

+0

nút cân bằng tải với apache có vẻ như một cách dễ dàng để tạo nút cổ chai. Chỉ cần sử dụng nginx và chuyển tiếp một số yêu cầu của bạn đến node.js (Hoặc viết lại ứng dụng PHP của bạn trong nút \ o /) – Raynos

+1

[nodejs and nginx] (http://stackoverflow.com/questions/5009324/node-js- nginx-and-now) – Raynos

+0

Yea Tôi nghĩ cả hai đều đúng. nginx có vẻ giống như con đường để đi, và rất thích viết lại ứng dụng trong nút nhưng thời gian là quý giá! – Finbarr

Trả lời

8

Bạn có thể thực hiện điều đó bằng proxy ngược. Thêm mod_proxy và thiết lập một vị trí dưới tên miền chính của bạn trong tệp vhost thành proxy đến cổng 3000 trên máy chủ cục bộ. Về cơ bản, chẳng hạn như:

<VirtualHost *:80> 
ServerName example.com 
<Location /api> 
    ProxyPass /api http://localhost:3000/ 
    ProxyPassReverse /api http://localhost:3000/ 
</Location> 
</VirtualHost> 
+0

Tôi đã đi với giải pháp Raynos nhưng điều này đã có thể làm việc quá, mặc dù không hiệu quả. – Finbarr

+1

Tôi muốn thêm http://blog.ngarua.com/?p=112 cấu hình trong liên kết này cho phép apache phân phối các tệp tĩnh và máy chủ nodejs để xử lý các yêu cầu ứng dụng thực tế. – memical

+2

Tôi gặp lỗi: ProxyPass | ProxyPassMatch không thể có đường dẫn khi được xác định trong một vị trí. Khi áp dụng ở trên! – moderns

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