将近一周的时间,我无法将自己的node.js应用程序置于在线状态。我有一个共享的主机,在其中创建了一个子域(比方说sub.domain.com
),并且此子域指向一个Directoy /home/wproj/myapp
,其中包含我的nodejs应用程序的代码。我使用SSH登录服务器并完全执行以下命令。
cd myapp
node index.js
现在,节点应用程序在端口3000上启动,但是我无法从浏览器访问其网页。因此我使用了一个.htaccess
文件,其中包含以下代码。
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:3000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]
现在我可以在http://sub.domain.com/
看到该网页。但是问题是我的服务器正在发出一个套接字,但是客户端无法连接到该套接字。在本地服务器上,它运行正常,我似乎没有从我访问过的数百个问题中找到任何解决方案。在浏览器控制台中,它表示[]
Firefox can’t establish a connection to the server at ws://sub.domain.com/socket.io/?EIO=3&transport=websocket&sid=pItfylCcSBwvBrGaAAAZ.
我的客户端代码看起来像这样。
const socket = io.connect("http://sub.domain.com/");
我也尝试过这样输入端口号
const socket = io.connect("http://sub.domain.com:3000/");
也不起作用。还尝试将
127.0.0.1:3000
替换为http://sub.domain.com:3000
,并且套接字仍未连接,并且始终返回404
很长的问题,我很抱歉,但是我不得不讲整个故事。如果有人可以帮助我或指出正确的方向,我将不胜感激。
谢谢。
将近一周的时间,我无法将自己的node.js应用程序置于在线状态。我有一个共享主机,在其中创建了一个子域(假设为sub.domain.com),并且该子域指向...
您需要打开端口3000进行入站和出站通信。由于它是共享主机,因此您需要先在管理面板(例如cPanel)上检查是否可以自己完成此操作,然后再向支持写票证。