gpt4 book ai didi

node.js - 使用 node-http-proxy 从 NodeJS 到 Apache 的反向代理不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 22:38:12 29 4
gpt4 key购买 nike

在我的 vps 上尝试使用 node.js 时,我偶然发现了一个似乎无法修复的问题。

我在 ubuntu 13.04 上有一个与 node.js 一起运行的 apache 服务器。我的想法是使用 node-http-proxy 创建反向代理。可以找到足够的相关信息,但我似乎有一个找不到的错误。

首先我更改了 apache 端口:

NameVirtualHost *:9000
Listen 9000

然后我就有了 hello.js 文件:

var http = require('http');
var httpProxy = require('http-proxy');

var options = {
router: {
'somesite.com': '127:0:0:1:9000'
}
}

var proxyServer = httpProxy.createServer(options).listen(80);

console.log("Proxy server running!");

最后是 apache somesite.com 配置:

<VirtualHost *:9000>
ServerName somesite.com
ServerAdmin info@somesite.com
ServerAlias www.somesite.com

DocumentRoot /var/www/somesite.com/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我在 public_html 中有一个基本的 html 文件,以确保一切正常。当我启动两台服务器并访问 somesite.com 时,我只看到一个空白网页(如果我检查源代码,则没有任何内容,而不是我自己的文件)。

如果我在另一个端口上启动一个简单的 Node 服务器并将流量路由到该端口,那就可以了,所以我假设我的问题与 apache 相关,但我无法弄清楚出了什么问题。

编辑1:显然我的代理只适用于 somesite.com 而不是 www.somesite.com。如果我访问 somesite.com,我会得到:

 An error has occurred: {"code":"EINVAL","errno":"EINVAL","syscall":"connect"}

编辑2:如果我检查 apache 的访问和错误日​​志,它似乎从未收到任何内容。找不到我的消息

编辑3:我更改了nodejs正在监听的端口,认为可能与以root身份运行有关,但即使在随机的高端口上运行,它也不起作用。它似乎无法在自身和 apache 套接字之间建立连接(当我直接浏览它时,它工作得很好)。

最佳答案

显然,在 hello.js 脚本中用 localhost 替换 127.0.0.1 就可以了。不完全确定原因(我猜这与我的主机文件有关),但它有效。

关于node.js - 使用 node-http-proxy 从 NodeJS 到 Apache 的反向代理不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20613074/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com