2017-08-06 60 views
0

我構建了一個RESTful網站,它是用Angular2(前端)和Php(後端)編寫的。由於我使用的是Angular Universal,我需要Node.js來預處理Angular腳本。我如何配置我的服務器來承載Node.js和Apache?我在網上搜索,但無法找到與「共享的Node.js和Apache上域」的任何資源...Node.js和Apache爲單個域相同的服務器

如何我的Apache配置路由「寄託都」到/距離/文件夾(並由Node.js提供服務)除了前綴爲/ api /和/ uploads /(路由到/ php /文件夾)的URI之外。

[後端的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 /和/上傳/),然後要求的Node.js這個/var/www/example.com/public_html/dist/文件夾運行它。

我估計它關係到代理proxy_http,但我不知道如何配置它,因爲我無法找到與共享兩個系統爲single domain任何資源...

回答

0

我想你應該在不同的端口(如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