Apache开启反向代理,启用的vhost文件为
<VirtualHost *:80>
ServerAdmin admin@gmail.com
ServerName localhost
ServerAlias localhost
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:9000/
ProxyPassReverse http://localhost:9000/
</Location>
</VirtualHost>
但这样代理的效果是,所有80端口的请求都被nodejs接受了,Apache上其他的目录没法访问。怎样能做到Apache和nodejs真正公用80端口呢?
最好通过是使用不同的域名来进行区分
这是我们在项目中用到的一个转发,实践证明是不会将所有的80
端口都转发到9000
,这是基于域名来判断是否需要转发,可以参考下。
<VirtualHost *:80>
ServerName www.test.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
通过
ServerName ooxx.com
ServerAlias *.ooxx.com
来区分。