繁体   English   中英

单域同一服务器上的Node.js和Apache

[英]Node.js and Apache for single domain same server

我建立了一个RESTful网站,它是用Angular2(前端)和Php(后端)编写的。 由于我正在使用Angular Universal,因此我需要Node.js来预处理Angular脚本。 如何配置服务器以同时托管Node.js和Apache? 我在线搜索,但找不到与“在单个域上共享Node.js和Apache”相关的任何资源...

如何配置我的Apache以将“所有内容”路由到/ 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等...:

每次使用www.example.com (/ api /和/ uploads /除外),然后要求Node.js从此/var/www/example.com/public_html/dist/文件夹中运行它。

我猜它与proxyproxy_http有关 ,但是我不知道如何配置它,因为我找不到与为single domain共享两个系统有关的任何资源...

我认为您应该在其他端口(例如8080)上运行Node.js,并在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/

然后将htaccess重写规则用于您的上传和api

您可以阅读有关mod_proxy的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM