Tôi đang chạy một trang web trên Apache. Tôi có hai ứng dụng sử dụng ổ cắm web, một ứng dụng dựa trên Node, sử dụng cổng 3000 và ứng dụng kia dựa trên Phoenix, sử dụng cổng 4000. Cả hai ứng dụng cũng sử dụng proxy ngược. Ví dụ, tôi có một cái gì đó như thế này:
<Location /node/>
ProxyPass http://127.0.0.1:3000/
ProxyPassReverse http://127.0.0.1:3000/
</Location>
<Location /phoenix/>
ProxyPass http://127.0.0.1:4000/
ProxyPassReverse http://127.0.0.1:4000/
</Location>
Tuy nhiên, tôi đang gặp sự cố khiến ổ cắm web hoạt động. Tôi có một cái gì đó như thế này được thiết lập cho ứng dụng Node (bên ngoài ngữ cảnh <Location>):
RewriteCond %{QUERY_STRING} transport=polling [NC]
RewriteRule /(.*) http://127.0.0.1:3000/$1 [P]
RewriteCond ổ cắm web %{HTTP:Upgrade} [NC]
RewriteRule /(.*) ws://127.0.0.1:3000/$1 [P]
Tôi đã phát triển ứng dụng Node của mình vài năm trước và mọi thứ đều hoạt động hoàn hảo. Tuy nhiên, tôi hiện đang phát triển ứng dụng Phoenix và tôi không biết cách xử lý các ổ cắm. Cuối cùng, tôi dự định loại bỏ hoàn toàn ứng dụng Node, nhưng tôi cần tiếp tục chạy ứng dụng này cho người dùng của mình cho đến khi ứng dụng mới được phát triển. Tuy nhiên, tôi vẫn cần ứng dụng mới chạy cùng lúc trên trang web để tôi có thể phát triển nó. Sẽ thật tuyệt nếu các ổ cắm hoạt động trên cả hai ứng dụng cùng một lúc.