Проблема с запуском PHP и Node.js на том же сервере

#node.js #socket.io #apache2

#node.js #socket.io #apache2

Вопрос:

Я пытаюсь запустить Node.js с сокетом.Ввод-вывод на том же сервере. У нас есть небольшой инструмент, который позволяет пользователям тестировать свои websockets, который вы можете найти здесь. Теперь проблема в том, что он не подключается к домену, например, если я использую исходный iphttps://123.23.23.12:3001/socket.io/?EIO=3amp;transport=pollingamp;t=NIHXfZI (раскрытие реального ip-адреса в целях конфиденциальности) он подключается к сокету.ввод-вывод, но когда я использую https://www.101toolbox.com:3001/socket.io/?EIO=3amp;transport=pollingamp;t=NIHXfZI он просто не подключался. Теперь я попытался создать обратный прокси и другие вещи, но это тоже не сработало, сервер использует laravel с некоторыми узлами js, которые запускаются pm2, пожалуйста, обратите внимание, что они работали до переноса веб-сайта на новый хостинг без использования какой-либо специальной конфигурации apache2. Вот конфигурация apache2, у меня буквально нет идей.

 <IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName 101toolbox.com
        ServerAlias www.101toolbox.com *.101toolbox.com 101toolbox.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/101toolbox/public
        ErrorLog ${APACHE_LOG_DIR}/101toolbox_error.log
        CustomLog ${APACHE_LOG_DIR}/101toolbox_access.log combined
        <Directory /var/www/101toolbox>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

SSLCertificateFile /etc/letsencrypt/live/101toolbox.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/101toolbox.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
  

Ответ №1:

Вот правильная конфигурация для apache2, которая заставила приложения узла работать. Оказывается, я должен зарегистрировать 2 разных прокси для socket.io .

 <IfModule mod_ssl.c>
<VirtualHost *:443>
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so

    ServerName 101toolbox.com
    ServerAlias www.101toolbox.com *.101toolbox.com 101toolbox.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/101toolbox/public
    ErrorLog ${APACHE_LOG_DIR}/101toolbox_error.log
    CustomLog ${APACHE_LOG_DIR}/101toolbox_access.log combined

    <Directory /var/www/101toolbox>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off 
    ProxyRequests Off 
    ProxyPass /node https://127.0.0.1:3000
    ProxyPassReverse /node https://127.0.0.1:3000

    ProxyPass /sockets https://127.0.0.1:3001
    ProxyPassReverse /sockets https://127.0.0.1:3001
    
    ProxyPreserveHost On
    ProxyPass   /socket.io https://127.0.0.1:3001/socket.io
    ProxyPassReverse /socket.io https://127.0.0.1:3001/socket.io

SSLCertificateFile /etc/letsencrypt/live/101toolbox.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/101toolbox.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
  

Комментарии:

1. Потрудитесь объяснить недостатки? Я пробовал это на liveserver, и это сработало нормально