在我的vps上试验Node.js时,我偶然发现了一个似乎无法解决的问题。
在Ubuntu13.04上,我有一个apache服务器与node.js一起运行。我的想法是使用Node-HTTP-Proxy创建一个反向代理。关于这一点的足够的信息可以找到,但我似乎有一个我找不到的错误。
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时,我只看到一个空白的webbage(如果我检查source,则没有任何东西,而不是我自己的文件)。
如果我在另一个端口上启动一个简单的节点服务器,并将流量路由到该端口,那么这是可行的,所以我假设我的问题与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起到了作用。不完全确定为什么(我猜这与我的hosts文件有关),但它起作用了。
我有一个Apache-Server在端口80上运行我的PHP应用程序。PHP应用程序通过端口3000与NodeJS-Server(socket.io)通信。
我有一个带有Express和Socket.io(Ubuntu18.04)的Nodejs服务器应用程序。在nGinx(1.14)反向代理进入场景之前,它总是工作得很好。nginx服务器运行在Node.js应用程序的不同机器上,每个应用程序都在同一网络中的自己的虚拟机上。 2.1.1版本上的服务器和客户端。 我还尝试删除path选项,并为socket.io东西配置了一个特定的/位置(出于测试目的):
据我所知,问题必须与Ngnix反向代理和websockets如何路由有关。服务器对ping请求的答复似乎没有发送到客户端。但我似乎无法确定原因。任何帮助都是非常感谢的。
我最近开始在我的DigitalOcean Droplet(根访问服务器)中使用CloudFlare(反向代理),在那里我设置了部署。 恢复功能的最佳方法是什么?
下面是使用“ProxyPass”和“ProxyPassReverse”的apache反向代理配置片段 当我在wget命令下面运行时,它不知何故重定向到http: 如果我使用“/artifactory/webapp/#/home”运行wget命令,它可以在HTTPS上工作: 我没有在代理配置文件的任何地方定义重定向。 有人能提出这种行为背后的原因吗??如何避免将其重定向到HTTP?
我有一个apache服务器在运行,在这个服务器上我也有一个mongo数据库在运行,监听标准端口27017。 我试过这个,但似乎一点也不起作用: