我现在正在处理seed项目
我想用
nodejs
为api server
监听端口5001
,
express
作为后端框架,
angularjs
作为前端框架,
和apache
为static 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合作?
我无法找到关于这种组合的任何教程......
感谢您阅读或回答我的问题
答案 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