由于我目前在阿里云上安装的是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反应更快一点。

最后编辑:2020年12月27日 ©著作权归作者所有

发表评论