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

如何在浏览器中通过固定IP访问AWS Lightsail上部署的Express应用

问题核心原因

你当前访问http://44.197.139.141/mailing返回文件列表,是因为Apache直接将服务器/mailing目录的静态文件做了索引展示,没有把请求转发到运行在3000端口的Express Node进程,你尝试的http://44.197.139.141/mailing:3000本身是错误的地址格式,端口号必须紧跟在IP/域名之后。

排查&解决步骤

第一步:确认Express应用本身运行正常

首先SSH登录到你的Lightsail实例,按顺序执行操作:

  • 切换到应用目录:cd /mailing
  • 启动应用:npm start,启动后保持当前SSH终端不关闭
  • 新开一个SSH终端连接服务器,执行本地访问测试:curl http://localhost:3000
    如果返回Express默认欢迎页内容,说明应用本身无问题,按下面两个方案二选一配置访问即可。

方案一:SSH隧道本地访问(仅适合开发调试,无需修改服务器配置)

该方案不需要开放3000端口对外,仅本地可访问:

  • 关闭之前配置的无效隧道,在本地终端执行正确的隧道建立命令:
    ssh -i 你的Lightsail密钥文件本地路径.pem -N -L 3000:localhost:3000 bitnami@44.197.139.141
    
    注意替换命令中的密钥文件路径为你本地实际存储路径,命令执行后无任何输出即为正常,不要关闭该终端
  • 本地浏览器直接访问http://localhost:3000即可打开应用界面

方案二:Apache反向代理配置(适合正式对外提供服务,无需开隧道)

该方案配置后直接访问http://44.197.139.141/mailing即可打开应用:

  1. 启用Apache必要模块:
    sudo a2enmod proxy proxy_http
    sudo /opt/bitnami/ctlscript.sh restart apache
    
  2. 添加反向代理规则,编辑Bitnami Apache配置文件/opt/bitnami/apache2/conf/httpd.conf,在文件末尾添加以下内容:
    <Location /mailing>
        ProxyPass http://localhost:3000
        ProxyPassReverse http://localhost:3000
        RequestHeader set X-Forwarded-Proto "http"
    </Location>
    
  3. 重启Apache生效配置:sudo /opt/bitnami/ctlscript.sh restart apache
  4. 配置PM2守护Node进程,保证应用后台持续运行:
    • 全局安装PM2:npm install -g pm2
    • 切换到/mailing目录:cd /mailing
    • 启动应用:pm2 start bin/www --name mailing-app
    • 配置开机自启:pm2 save && pm2 startup

额外排查点

如果需要直接对外暴露3000端口访问(不推荐,安全性低),需要登录AWS Lightsail控制台,进入对应实例的「网络」选项卡,添加入站规则:允许TCP协议3000端口的0.0.0.0/0来源访问,之后可以通过http://44.197.139.141:3000直接访问应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:45:02