由于我目前在阿里云上安装的是WAMP服务,又要安装node.js的服务的话,就不能使用NGINX什么的,于是上网查了一下如何使用Apache来支持node.js和vue.js的服务,发现也并不难配置,使用ProxyPass即可。
原理:使用WAMP的时候外面可以在服务器上配置多个虚拟空间,只需要在httpd-vhosts.conf文件里添加<VirtualHost>记录,同时在host文件里里添加相应的127.0.0.1记录即可。当我们使用nodes.js和vue.js的时候,会在localhost:5000和localhost:8080分别提供后端和前端的服务。这时候,我们只需要添加两个<VirtualHost>记录,使用ProxyPass代理到这两个端口即可。
具体操作步骤如下:
第一步:在http.conf文件里,将下面两句前面的#删除。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
目的是开启proxy
第二步:在httpd-vhosts.conf文件里,添加一个记录,的如:
<VirtualHost *:80>
ServerName nodetest.cn
ServerAlias nodetest.cn
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:5000/
ProxyPassReverse http://localhost:5000/
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName vuetest.cn
ServerAlias vuetest.cn
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:8080/
ProxyPassReverse http://localhost:8080/
</Location>
</VirtualHost>
第三步:打开C:WindowsSystem32driversetc的host文件,然后添加下面两条记录:
127.0.0.1 nodetest.cn
127.0.0.1 vuetest.cn
第四步:重启Apache,访问nodetest.cn和vuetest.cn即可访问相应的服务。如果需要外网访问,将域名解析到服务器IP地址接口即可。
总结:这个ProxyPass的设置甚好,使用这种方式,理论上在服务器上可以利用不同端口提供无数个服务。
plus:不知道是不是幻觉,似乎使用http://127.0.0.1:8080比http://localhost:8080反应更快一点。
最新回复