将 NodeJS 服务器端口重定向到子域或文件夹(amazon ec2)
Posted
技术标签:
【中文标题】将 NodeJS 服务器端口重定向到子域或文件夹(amazon ec2)【英文标题】:Redirect a NodeJS server port to a subdomain or a folder (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.com 或http://domain.com/sub 吗?我希望浏览器上的地址栏也将更改为。这可能吗?
【问题讨论】:
这可以通过使用您的网络服务器设置代理配置来完成。你没有提到你正在使用哪一个。可能是 Apache 或 nginx,具体说明会根据您使用的不同而有所不同。 @punund,它是 Apache!谢谢! 【参考方案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 实例。欢迎任何更好的解决方案。
【讨论】:
以上是关于将 NodeJS 服务器端口重定向到子域或文件夹(amazon ec2)的主要内容,如果未能解决你的问题,请参考以下文章
java.net.SocketException: Permission denied(将80端口重定向到8080端口)
java.net.SocketException: Permission denied(将80端口重定向到8080端口)