#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, и это сработало нормально