2016-12-02 8 views
0

Я пытаюсь развернуть приложение узла из локальной рабочей среды.экспресс-маршрутизация на производственном сервере

В моей локальной среде мой код выглядит как код ниже, и все работает отлично. Перейдите к localhost:3000, нажмите логин, и вас привезет на маршрут login.

МЕСТНОГО app.js файл

var express = require('express'); 
var bodyParser = require("body-parser"); 

var app = express(); 

app.use(express.static(__dirname + '/public')) 
    .use(bodyParser()); 

app.get('/login', function(req, res) { 
    res.send('log me in!'); 
}); 

console.log('Listening on 3000'); 
app.listen(3000); 

Я затем загружен на сервер и бегаю файл app.js с помощью forever - т.е. forever start app.js. Я могу перейти на домашнюю страницу, которая является index.html файлом в папке public. URL выглядит следующим образом - http://162.xx.xxx.xxx/project/public/

Мой app.js файл выглядит так же, как и выше, кроме этой линии:

app.get('http://162.xx.xxx.xxx/project/public/login', function(req, res) { 
    res.send('log me in!'); 
}); 

, когда я пытаюсь и перейти к URL входа он говорит:

запрошенный URL/проект/логин не найден на этом сервере. Apache Server по адресу http://162. . *. *** Порт 80

Может кто-нибудь посоветовать, что я делаю неправильно?

+0

Вы действительно хотите, чтобы поставить свой IP-адрес сервера в маршруте? – Raptor

+0

Первоначально я пробовал без него и использовал тот же код, что и мой локальный код, но это не сработало. Как вы думаете, он должен работать, если я просто использовал '/ login'? –

+0

Это должен быть только логин. Ваш Apache должен быть прокси-сервером, переходящим в 'localhost: 3000' – Raptor

ответ

0

Ваш апач должен быть просто прокси, переходя к узлу:

ProxyPass/http://localhost:3000/ 

Оставьте свой узел, который необходимо прослушивает порт 3000. Вы не должны изменять любые маршруты.

Затем откройте приложение из своего браузера, как: http://xxx.xxx.xxx.xxx/login

хорошо читать здесь: Apache and Node.js on the Same Server

+0

, когда я пытаюсь получить доступ к этому в своем браузере, он говорит: «Запрошенный URL/логин/не найден на этом сервере». –

+0

просто используйте 'http: // 162.xx.xxx.xxx/login'. Я ожидаю, что ваш apache virtualhost прослушивает порт 80? Пожалуйста, поделитесь своим приложением виртуального хоста apache, если это необходимо. – Raptor

+0

вот что он говорит 'Не найдено Запрашиваемый URL/логин/не найден на этом сервере. Apache Server at xxx.xx.xxx.xxx Порт 80' –

Смежные вопросы