【问题标题】:Redirect a NodeJS server port to a subdomain or a folder (amazon ec2)将 NodeJS 服务器端口重定向到子域或文件夹(amazon ec2)
【发布时间】:2015-02-23 14:28:45
【问题描述】:

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

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

现在,如果 URL 是 http://domain.com,它会指向 PHP 目录 (var/www/html)。 URL http://domain.com:8080 显示输出表单 server.js

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

【问题讨论】:

  • 这可以通过使用您的网络服务器设置代理配置来完成。你没有提到你正在使用哪一个。可能是 Apache 或 nginx,具体说明会根据您使用的不同而有所不同。
  • @punund,它是 Apache!谢谢!

标签: php node.js amazon-ec2


【解决方案1】:

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

首先,设置 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”下。详细步骤,查看这个答案:Second Virtual Host's DocumentRoot is changed after launching ec2 based on customized Amazon Linux AMI

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 实例。欢迎任何更好的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多