我试图在Apache服务器侦听端口80上运行Node.js应用程序 这是我的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>
这是我的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');
当我试图在&#39; localhost / node&#39;或ip_adress / node,我有502代理错误:代理服务器从上游服务器收到无效响应。 代理服务器无法处理请求GET /节点。
原因:DNS查找失败:localhost
Apache / 2.4.7(Ubuntu)服务器,位于127.0.0.1端口80。
感谢。
答案 0 :(得分:0)
在app.enable('trust proxy');
中启用代理:
ProxyPass /node http://localhost:8000/node
ProxyPassReverse /node http://localhost:8000/node
并修复node.js中有效路由的uri:
gets
答案 1 :(得分:0)
localhost可能是ipv6地址,请尝试127.0.0.1 insteed