Вот так. У меня есть веб-сайт Wordpress, работающий на моем основном домене, http://www.example.com
.Apache Proxy для Node.js и Wordpress на одном и том же «домене», но разные пути
.htaccess
включен на сервере, и я использую постоянные ссылки Wordpress для генерации довольно URL-адресов.
Теперь у меня есть другое приложение в Node.js (Express), которое я развернул на том же сервере и работает на номере порта 3000
. Поэтому, если я положил http://www.example.com:3000
, он запускает мое приложение Expressjs. и он работает безупречно.
Что я хочу - запустить приложение Node.js по определенному пути из того же домена. Например, если я ударил, http://www.example.com/node
, он должен принять пользователя в мое приложение Node.js, которое довольно неплохо, если я использую Apache mod_proxy
. Но это работает только для маршрута моего маршрутизатора Expressjs /
. Но у меня также есть несколько других маршрутов, например. /subscribe
, /confirm
, но никто из них не работает. Ниже приведена моя конфигурация Apache, которую я попытался выполнить, указав несколько директив ProxyPass
, но это не сработает.
ProxyPass /node http://127.0.0.1:3000/
ProxyPassReverse /node http://127.0.0.1:3000/
ProxyPass /node/subscribe http://127.0.0.1:3000/subscribe
ProxyPassReverse /node/subscribe http://127.0.0.1:3000/subscribe
Экспресс маршрутизатор довольно простой и использует следующие конфигурации приложения:
var router = express.Router();
app.use("/",router);
router.get("/",function(req,res){
res.sendFile(templatepath + "index.html");
});
router.get("/subscribe",function(req,res){
res.sendFile(templatepath + "subscribe.html");
});
router.get("*",function(req,res){
res.sendFile(templatepath + "404.html");
});
При попытке загрузить http://www.example.com/node/subscribe
он просто загружает *
маршрут и отображает 404.html
шаблон.