Eu estou tentando executar um aplicativo Node.js em uma porta de escuta do servidor Apache 80 aqui está o meu arquivo Virtualhost:
<VirtualHost *:80>
ServerName mikus
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ProxyPreserveHost On
ProxyPass /node http://localhost:8000/
ProxyPassReverse /node http://localhost:8000/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Aqui está o meu arquivo app.js:
var express = require("express");
var app = express();
app.get("/node", function(req, res) {
res.setHeader("Content-Type", "text/plain");
res.end("Welcome apache");
});
app.listen(8000, "localhost");
E quando estou tentando executar o aplicativo em"localhost / node" ou ip_adress / node, eu tenho um erro 502 Proxy: O servidor proxy recebeu uma resposta inválida de um servidor upstream. O servidor proxy não pôde manipular a solicitação GET / node.
Razão: falha de pesquisa de DNS para: localhost
Servidor Apache / 2.4.7 (Ubuntu) em 127.0.0.1 Porta 80.
Obrigado.
Respostas:
0 para resposta № 1Ativar proxy em app.js
:
app.enable("trust proxy");
E corrija o uri para a rota válida em node.js:
ProxyPass /node http://localhost:8000/node
ProxyPassReverse /node http://localhost:8000/node
0 para resposta № 2
localhost pode ser um endereço ipv6, tente 127.0.0.1 insteed