簡體   English   中英

遠程node.js http服務器無法啟動或無法偵聽

[英]Remote node.js http server doesnt start or fails to listen

我在我的Windows機器上運行了一些node.js測試,一切運行良好。 現在我在我的debian遠程機器上安裝了節點,我試圖運行一個簡單的http服務器:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);

我使用SSH執行: node server.js現在當我轉到我的服務器ip http://xxx.xxx.22.127:8888時服務器超時。

我究竟做錯了什么? 我測試了一些更簡單的腳本,node.js似乎安裝正確。 它可能是防火牆問題,或者我應該添加host-ip或sommit?

附帶問題:當我在putty中運行node server.js我不能再輸入時,如何返回命令行? :)

編輯:我的iptables信息

Chain INPUT (policy ACCEPT)
target        prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
ACCEPT        tcp  --  anywhere             anywhere            tcp dpt:5900
ACCEPT        tcp  --  anywhere             anywhere            tcp dpt:8888

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

可能存在軟件防火牆(例如iptables )或硬件防火牆,它阻止了對8888請求被接收。 解決此問題的唯一方法是深入了解您的服務器配置/網絡架構以追蹤問題。 例如,如果您使用iptables查看當前強制執行的規則,則可以使用iptables -L

可能還有另一個應用程序已經在8888監聽了,但是我認為這會引發錯誤而不是像這樣失敗,所以我懷疑這是問題所在。 檢查這個的一種方法是通過netstat -a

毋庸置疑,我說你得到的代碼應該可以正常工作,而且你的服務器設置存在問題導致了這個問題。

側回答:使用nohup&像這樣; nohup node server.js & ,雖然你應該看看如何forever安裝一個模塊,然后forever start server.js使用forever start server.js ; forever有一個額外的好處,如果它崩潰自動重新啟動你的節點進程。

我究竟做錯了什么? 我測試了一些更簡單的腳本,node.js似乎安裝正確。 它可能是防火牆問題,或者我應該添加host-ip或sommit?

我認為腳本本身並沒有錯。 嘗試使用telnet進行調試。

附帶問題:當我在putty中運行節點server.js我不能再輸入時,如何返回命令行? :)

node server.js &

(也見man nohup

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM