You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bluehost服务器上无端口号运行Node.js应用:以www.mydomain.com为例

在Bluehost上运行Node.js应用无需端口直接通过域名访问

下面是几种可行的方案,按推荐程度排序:

方案1:用Apache反向代理(Bluehost默认配置,最省心)

Bluehost服务器默认跑Apache,直接改.htaccess就能搞定:

  • 找到你域名根目录(一般是public_html文件夹)里的.htaccess文件,没有的话新建一个。
  • 添加以下规则,把www.mydomain.com换成你的实际域名,8080换成你Node应用的监听端口:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/node-app/
RewriteRule ^(.*)$ http://127.0.0.1:8080/$1 [P,L]

这里[P]是告诉Apache做反向代理,把请求转去本地的Node应用;[L]表示这条规则生效后就停止执行后面的规则。

  • 启动你的Node应用,确保它监听127.0.0.1:8080(别监听0.0.0.0,避免直接暴露端口)。
  • 如果要支持HTTPS(推荐配置),再加一段强制跳转的规则,同时把代理目标改成https://127.0.0.1:8080:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

方案2:让Node直接监听80/443端口(需要权限)

HTTP默认端口是80,HTTPS是443,直接监听这俩端口就不用加端口号,但普通用户没权限监听1024以下的端口,可按以下方式处理:

  • 方式一:给Node加权限(仅限Linux系统),执行这条命令:
sudo setcap cap_net_bind_service=+ep /usr/bin/node

然后修改你的Node代码,监听80端口:

const http = require('http');
const server = http.createServer((req, res) => {
  res.end('Hello from Node.js!');
});
server.listen(80, '0.0.0.0', () => {
  console.log('Server running on port 80');
});
  • 方式二:用端口转发,比如用iptables把80端口的请求转去你的Node应用端口(比如8080):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

注意:Bluehost的防火墙可能会限制相关操作,搞不定可以联系客服确认权限。

方案3:用Bluehost官方的Node.js管理器

Bluehost的cPanel里有自带的Node.js应用管理工具,无需手动改配置:

  • 登录cPanel,找到"Node.js"选项,进入后创建新应用。
  • 设置好你的应用目录、启动文件,端口无需特意填写,再把你的域名和这个应用关联起来。
  • 部署完成后,Bluehost会自动帮你配置反向代理,直接输入域名就能访问应用。

内容的提问来源于stack exchange,提问作者Dinesh_vs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:01:07