Apache 将子域发送到node.js
我的工作是在运行apache的ubuntu服务器(10.10)上运行两个不同的内部web应用程序。我目前正在开发另一个web应用程序,并且正在认真考虑在定制的node.js web服务器上开发。我想这样做的理由是:Apache 将子域发送到node.js,apache,node.js,virtualhost,Apache,Node.js,Virtualhost,我的工作是在运行apache的ubuntu服务器(10.10)上运行两个不同的内部web应用程序。我目前正在开发另一个web应用程序,并且正在认真考虑在定制的node.js web服务器上开发。我想这样做的理由是: 速度/可扩展性 安全性-页面将提供一个switch…case,而不仅仅是满足(潜在的恶意)用户的任何要求 易于设置-我的目的是将其作为一个开源项目,node.js对于用户来说更容易设置,而不是处理apache/IIS/等 我的问题是,在我让apache监听端口80的服务器上,如何将某
谢谢让我从头开始: 你有一个好主意。dns服务器将一个dns映射到一个IP 然后,您的计算机上运行的是
apache
,它在80上侦听http://
的连接,在端口443上侦听https://
的连接<代码>http://example/实际上是http://example:80/
您不能使用node.js
在与apache相同端口的同一台机器上侦听。这就是为什么使用8080端口是可行的
您还可以将子域映射到其他IP。这里唯一需要注意的是,您需要有一个公共IP地址。反过来做怎么样:将节点绑定到端口80,处理针对子域的流量,并将其用作apache的反向代理,用于其他一切?您不能同时从apache和node.js为端口80提供服务。使用Apache作为代理不会有多大的效率,这就是为什么nginx在这个场景中很受欢迎的原因。除了基于nginx的反向代理之外,其他替代方法可以是按照Khez的建议,将您的子域映射到不同的IP地址,这将使node.js程序成为Apache的反向代理,或者可能将node.js本身用作Apache的反向代理。您可以在Apache中为新站点配置一个虚拟主机,并在其中添加到localhost和port的永久重定向由node.js使用 这就是我在服务器上使用其他几个虚拟主机以及在端口3000上运行的node.js应用程序执行此操作的方式: 名称虚拟主机*:80 [为简洁起见,省略了其他虚拟主机] ServerName mynewsite.com 重定向匹配(.*)1美元
ServerName subdomain.yourdomain.com
代理主机
ProxyPass/http://localhost:8080/
多亏了如果socket.io节点正在运行,请确保同时启用一些apache MOD:
ServerName chat.example.com
代理主机
ProxyPasshttp://localhost:3000/
ProxyPassReversehttp://localhost:3000/
然后当然
服务apache2重新加载
您知道有什么好的node.js模块/扩展或教程吗?或者至少是一个好的关键字来搜索?我知道这是一岁的孩子。。。这真的有效吗?我注意到这个答案得到了0票,而所有其他帖子都说OP所要求的是不可能的。
<VirtualHost *:80>
ServerName subdomain.yourdomain.com
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName chat.example.com
<Location "/">
ProxyPreserveHost On
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>