Node.js和Apache用于单域同一服务器

时间:2017-08-06 05:26:35

标签: node.js apache angular

我构建了一个RESTful网站,它是用Angular2(前端)和Php(后端)编写的。由于我使用的是Angular Universal,我需要Node.js来预处理Angular脚本。如何配置我的服务器以托管Node.js和Apache?我在线搜索,但无法找到与 SINGLE 域" ...

共享Node.js和Apache相关的资源。

如何配置我的Apache以路由" everthing"到/ dist /文件夹(由Node.js提供服务),除了前缀为/ api /和/ uploads /的URI(到/ php /文件夹的路由)。

[后端] Api Php脚本:

如果www.example.com/api/?...?,请使用此脚本/var/www/example.com/public_html/php/api.php进行处理。

上传的图片

如果要求上传的img文件(www.example.com/uploads/[img*.png]),请尝试查看此/var/www/example.com/public_html/php/uploads/[img*.png]文件夹。

[前端] Html,Js等......:

Everyting www.example.com(/ api /和/ uploads /除外),然后让Node.js从这个/var/www/example.com/public_html/dist/文件夹中运行它。

我猜这与代理 proxy_http 有关,但我不知道如何配置它,因为我无法找到任何相关的资源共享single domain ...

的两个系统

1 个答案:

答案 0 :(得分:0)

我认为您应该在不同的端口上运行Node.js(例如8080)并在Apache配置(虚拟主机)中使用反向代理,如下所示:

ProxyPass        /api http://www.example.com/php/
ProxyPassReverse /api http://www.example.com/php/
ProxyPass        /uploads http://www.example.com/php/uploads/
ProxyPassReverse /uploads http://www.example.com/php/uploads/
ProxyPass        / http://www.example.com:8080/dist/
ProxyPassReverse / http://www.example.com:8080/dist/

然后为您的上传和api

使用htaccess重写规则

您可以阅读有关mod_proxy

的更多信息