Я пытаюсь настроить сервер для игры Socket.IO, но у нас также будет небольшая целевая страница на php, обслуживаемая через Apache.
Мне удалось заставить сервер работать, сделав прокси от Apache к приложению Socket.IO. Apache работает на: 80, а узел на: 8080, который будет закрыт для публики. Прокси выполняется в подкаталоге apache. Конфигурация следующая:
<VirtualHost *:443>
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
ServerAdmin XXXXX
ServerName XXXXX
DocumentRoot /var/www/html/XXXXX
ErrorLog /var/log/error.log
CustomLog /var/log/access.log combined
SSLCertificateFile XXXXX
SSLCertificateKeyFile XXXXX
Include XXXXX
SSLCertificateChainFile XXXXX
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:8080/$1 [P,L]
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
ProxyPass /game http://localhost:8080 retry=0
ProxyPassReverse /game http://localhost:8080
ProxyPass /socket.io http://localhost:8080/socket.io
ProxyPassReverse /socket.io http://localhost:8080/socket.io
</VirtualHost>
</IfModule>
Теперь у меня следующий вопрос:
Повлияет ли это на производительность, и возможно ли, что правило перезаписи для apache будет слишком большим, чтобы он мог обрабатывать, скажем, самое большее может быть 10к игроков?
Если возможно, есть ли другой лучший выбор для конфигурации?