问题:我需要在不同域的同一台服务器上托管Node-application和php-application。
example.com应该正常使用端口80,但是node-example.com应该路由到端口3000。
使用mod_proxy将所有流量从端口80路由到3000可以正常工作,因此:
<VirtualHost *:80>
ServerAdmin info@node-example.com
ServerName node-example.com
ServerAlias www.node-example.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>
但是,这会使example.com和node-example.com都指向localhost:3000并运行Node-app。
有没有办法让example.com指向端口80?
例如example.com/old-admin也可以指向端口80。
最佳答案
只需制作两个<VirtualHost *:80>
标签
<VirtualHost *:80>
ServerAdmin info@node-example.com
ServerName www.node-example.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin info@node-example.com
ServerName node-example.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:80/
ProxyPassReverse http://localhost:80/
</Location>
</VirtualHost>
它应该以这种方式工作;)
或者,如果您的
localhost:80
应用程序不是节点,则可以删除该目标的<Proxy *>
和<Location />
标签,并将其替换为DocumentRoot /var/www/node-example.com
-index.html的静态路径