没有端口号的nodejs域

我已经在VPS(Ubuntu 10.04)上部署了我的nodejs应用程序。 我已经在一个子域(subdomain.myapp.com:3000)上托pipe它,我只有一个IP地址

默认情况下,Apache默认使用80端口。 我只是希望我的应用程序应该在3000端口上运行,但URL应该是(subdomain.myapp.com)

这是可能的nodejs或我必须调整我的虚拟主机或Apache的文件。

对的,这是可能的

在你的apache虚拟主机文件中configuration如下

<VirtualHost *:80> ServerName subdomain.myapp.com ProxyRequests off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPreserveHost on </VirtualHost> 

你应该有

 NameVirtualHost *:80 

在你的文件之上,也为apache安装代理模块(我认为这是Ubuntu的默认configuration)

 LoadModule proxy_module lib/httpd/modules/mod_proxy.so 

它必须在你的httpd.conf文件中

那么你应该重新启动Apache,它一定很好!

只需更新@drinchev与Apache 2.4的答案。*

启用代理模式:

 a2ensite proxy_http a2ensite proxy 

然后 :

 <VirtualHost *:80> ServerName subdomain.myapp.com ProxyRequests off <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPreserveHost on </VirtualHost> 

我需要做同样的事情和@ drinchev的答案几乎为我工作,但因为我在我的开发箱上运行几个虚拟主机,它不完全。 一些小小的调整阻止了我所有的其他鬼。

 <Proxy *> 

需要成为

 <Proxy mynodejs.mydevbox.local> 

 <VirtualHost *:80> 

需要成为

 <VirtualHost mynodejs.mydevbox.local:80> 

所以,我的本地开发机器名为“mydevbox.local”,我的节点vhost正在端口3000上进行侦听,我的最终configuration看起来更像是:

 <VirtualHost mynodejs.mydevbox.local:80> DocumentRoot "/Library/WebServer/Documents/mynodejs" ServerName mynodejs.mydevbox.local ServerAlias mynodejs.mydevbox.local ProxyRequests off <Proxy mynodejs.mydevbox.local> Order allow,deny Allow from all </Proxy> ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPreserveHost on ErrorLog "/private/var/log/apache2/mynodejs_error_log" CustomLog "/private/var/log/apache2/mynodejs_access_log" common </VirtualHost> <VirtualHost myothervhost.mydevbox.local:80> DocumentRoot "/Library/WebServer/Documents/myothervhost" ServerName myothervhost.mydevbox.local ServerAlias myothervhost.mydevbox.local ErrorLog "/private/var/log/apache2/myothervhost_error_log" CustomLog "/private/var/log/apache2/myothervhost_access_log" common </VirtualHost> 

其他的鬼可以跟随