将 NodeJS 服务器端口重定向到子域或文件夹 (Amazon ec2)


Redirect a NodeJS server port to a subdomain or a folder (amazon ec2)

我已经在 Amazon EC2 上安装了 Apache/Linux。在一个实例中,我设置了PHP并将文件放在目录var/www/html下。在同一实例上,我还在子文件夹 home/ec2-user/中安装了 NodeJS

创建了一个新的控制器 home/ec2-user/site,其中我放置了一个 javascript 文件,该文件在端口 8080 上启动 NodeJS 服务器脚本(server.js)。

现在,如果URL http://domain.com,它将定向到PHP目录(var/www/html)。URL http://domain.com:8080 显示输出表单服务器.js

我的问题是:我可以将 http://domain.com:8080 重定向到 http://sub.domain.com 或 http://domain.com/sub 吗?我希望浏览器上的地址栏也会更改为。这可能吗?

我想我已经解决了这个问题。

首先,设置 Amazon S3 和 Route 53。在 Amazon S3 上,添加一个存储桶"sub.domain.com"。然后静态网站托管>将所有请求重定向到另一个主机名,然后键入"domain.com"在 Route 53 的托管区域"domain.com"处,创建记录集"sub.domain.com"。选取类型"A",然后将别名设置为"domain.com"。(TBH,我不完全确定上述步骤是否必要。

然后更改代理设置。将文件名设置为"httpd-vhosts.conf"。然后把它放在"etc/httpd/conf.d"下。有关详细步骤,请查看此答案:启动基于自定义 Amazon Linux AMI 的 ec2 后,第二个虚拟主机的 DocumentRoot 发生了更改

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName domain.com
    DocumentRoot "/var/www/html/"
</VirtualHost>
<VirtualHost *:80>
  ServerName sub.domain.com
  ProxyPass               /       http://domain.com:8080/
  ProxyPassReverse        /       http://domain.com:8080/
</VirtualHost>  

然后,我在 Amazon 控制台上重新启动了 EC2 实例。欢迎任何更好的解决方案。