如何部署nodejs,angularjs和apache

时间:2014-09-03 14:46:41

标签: javascript node.js angularjs apache .htaccess

我现在正在处理seed项目

我想用

nodejsapi server监听端口5001

express作为后端框架,

angularjs作为前端框架,

apachestatic file server(例如很多角度需要的.js文件)侦听端口5000


在角度方面,我有以下配置

app.config(['$locationProvider', function ($locationProvider) {
    $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix('!');
}]);

对于apache,我将以下配置添加到/etc/apache2/sites-available/000-default.conf

Listen 5000

<VirtualHost *:5000>
    DocumentRoot /var/www/seed/public
    <Directory /var/www/seed/public >
        AllowOverride All
    </Directory>
</VirtualHost>

我还添加了/public/.htaccess个文件

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # support angular
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) /#!/$1 
</IfModule>

当前的重写规则适用于角度,因为当用户刷新页面时它需要一个hashbang


现在我不知道如何将带有/api的网址的api请求重定向到端口5001

是否可以使用.htaccess文件执行此操作?

有没有更好的方法与nodejs,angularjs和apache合作?

我无法找到关于这种组合的任何教程......

感谢您阅读或回答我的问题

1 个答案:

答案 0 :(得分:0)

您需要在Apache中设置反向代理配置。首先确保已安装mod_proxy并可用。

然后像这样配置您的Apache虚拟主机:

ProxyRequests Off
<Proxy *>
  Order deny, allow
  Allow from all
</Proxy>
<Location /api>
  ProxyPass http://127.0.0.1:5001
  ProxyPassReverse http://1127.0.0.1:5001
</Location>

HTH