После создания моего простого программного обеспечения с использованием React UI и Express Back-end я решил развернуть на своем сервере. Локальное тестирование работает нормально, поскольку не требует настройки прокси или сервера.
Однако я столкнулся с проблемой, пытаясь объединиться с "Apache VirtualHost Proxy".
Это мои текущие настройки.
Я внес изменения на клиенте (React) socket.connect
const io = socket.connect(
'www.domain.com/DataProvider/',
{
path: '/DataProvider/socket.io',
}
);
Имя домена (ServerName): www.domain.com
- React (UI):
localhost:3040
-> /
- Express API:
localhost:3041
-> /DataProvider/
И ниже - моя настройка VirtualConfig
<VirtualHost *:80>
ServerName www.domain.com
ProxyRequest off
ProxyPreserveHost On
# My Attempt on trying to solve this problem (Now it just gives 400 Error)
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/sockjs-node [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule "/(.*)" "ws://localhost:3040/" [P,L]
# Bringing in Backend and Solving socket.io Issue (Solved)
<Location "/DataProvider/">
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/DataProvider/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule "/(.*)" "ws.localhost:3041/socket.io/" [P,L]
ProxyPass "http://localhost:3041/"
ProxyPassReverse "http://localhost:3041"
</Location>
ProxyPass "/" "http://localhost:3040/"
ProxyPassReverse "/" "http://localhost:3040/"
</VirtualHost>
Я так близок к завершению этого проекта, но эта проблема тянет меня вниз.
К счастью, я помогаю, потому что потерян уже несколько часов.