(Ubuntu的10.04)我已经部署在VPS我的应用程序的NodeJS。 我主持它的一个子域(subdomain.myapp.com:3000),我只是有一个IP地址
默认情况下,端口80是使用Apache作为默认。 我只是希望我的应用程序应该在3000端口上运行,但URL应该是(subdomain.myapp.com)
这是可能的或的NodeJS我必须调整我的虚拟主机或Apache的文件。
(Ubuntu的10.04)我已经部署在VPS我的应用程序的NodeJS。 我主持它的一个子域(subdomain.myapp.com:3000),我只是有一个IP地址
默认情况下,端口80是使用Apache作为默认。 我只是希望我的应用程序应该在3000端口上运行,但URL应该是(subdomain.myapp.com)
这是可能的或的NodeJS我必须调整我的虚拟主机或Apache的文件。
对的,这是可能的
在Apache虚拟主机文件具有以下配置
<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的默认配置)
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
它必须在httpd.conf文件
那么你应该重新启动Apache和它必须是精品!
与Apache 2.4 @drinchev答案只是一个更新。*
启用代理模式:
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的回答几乎是为我工作,而是因为我在我的dev的盒子运行多个虚拟主机它也不太。 一对夫妇的小改动瞒住重挫我的所有其他虚拟主机。
<Proxy *>
需要的是
<Proxy mynodejs.mydevbox.local>
和
<VirtualHost *:80>
需要的是
<VirtualHost mynodejs.mydevbox.local:80>
所以,在我的本地开发机被命名为“mydevbox.local”和我的节点虚拟主机正在侦听端口3000,我的最终配置看起来更像是:
<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>
其他虚拟主机可以遵循