Я работаю над проектом, в котором содержимое сайта основано на PHP (CodeIgniter) за сервером Apache, и моя обязанность - написать node.js как API к предстоящей мобильной версии приложения. (Обратите внимание, что наш хостинг управляется, у нас нет доступа к виртуальному хосту, поэтому использование proxypass недоступно)Запуск Node.js за Apache, конфигурация .htaccess вместе с PHP
Я должен сделать мой файл узла за Apache в URL, например, «domainname/api». Когда указан URL-адрес, Apache должен свести этот запрос к порту localhost: port, где находится узел.
Вот мой node.js файл:
var fs = require('fs');
var http = require('http');
var app = require('express')();
var options = {
};
app.get('/', function (req, res) {
res.send('Hello World!');
});
http.createServer(app).listen(61000, function() {
console.log('Started!');
});
Вот мой файл .htaccess:
RewriteEngine on
RewriteRule ^$ /index.php [L]
RewriteCond %{HTTP_HOST} !^ourdomainname\.com
RewriteRule (.*) http://ourdomainname.com/$1 [R=301,L]
RewriteCond $1 !^(index\.php|info.php|resource|system|user_guide|bootstrap|robots\.txt|favicon\.ico|google<somevalues>.html)
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteRule ^/api$ http://127.0.0.1:61000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/api/(.*)$ http://127.0.0.1:61000/$1 [P,L]
Хотя узел работает локально (на нашем управляемом сервере хостинг) (я могу назвать «рысь localhost: 61000/"и посмотреть правильный вывод), он не работает на внешней локальной. Все наши призывы к «ourdomainname.com:61000/api» отправляются в CodeIgniter (PHP), а не в наш файл node.js.
Любая помощь приветствуется.