在Ec2上部署带有Apache代理的NodeJ(错误?)并记录日志

在Ec2上部署带有Apache代理的NodeJ(错误?)并记录日志,apache,node.js,amazon-ec2,logging,Apache,Node.js,Amazon Ec2,Logging,我有一个由两部分组成的问题 问题1 使用Apache作为我的nodeJS服务器的代理是错误的,因为它不能处理WebSocket。我目前正在使用Apache和BOSH,我想知道使用node部署的正确方法是什么,这样我也可以使用WebSocket 我的apache配置如下 ServerName example.com ProxyPass / http://localhost:9000/ ProxyPassReverse / http//localhost:9000/

我有一个由两部分组成的问题

问题1

使用Apache作为我的nodeJS服务器的代理是错误的,因为它不能处理WebSocket。我目前正在使用Apache和BOSH,我想知道使用node部署的正确方法是什么,这样我也可以使用WebSocket

我的apache配置如下



   ServerName example.com
   ProxyPass / http://localhost:9000/
   ProxyPassReverse /  http//localhost:9000/
  
        Order allow,deny
        Allow from all
  

这种做法完全错误吗?我可以毫无困难地使用我的应用程序(作为API使用)。我需要尽快添加websocket支持,那么这个配置会失败吗

问题2

我还想知道如何让NodeJS将日志写入文件。

事实上,疯狂的科学家确保人们不使用Apache或Nginx作为NodeJS的代理。如果你问我,我会说使用模块,更简单、更轻、更快(不太确定,但它是节点!)


至于日志记录,我建议使用非常容易使用的工具。

事实上,疯狂的科学家确保人们不使用Apache或Nginx作为NodeJ的代理。如果你问我,我会说使用模块,更简单、更轻、更快(不太确定,但它是节点!)

至于日志记录,我建议使用非常容易使用的工具。

1)使用Apache之类的工具来代理Node.js是错误的,最好使用类似或之类的节点解决方案。这是错误的,因为Apache正在阻塞每个连接并创建一个新线程,这与Nginx和Node完全不同。通过使用Apache,您将消除Node.js为您提供的优势(数千个并发连接和较低的内存占用)

2) 据我所知,最“流行”的日志库可能是。

1)使用Apache之类的工具来代理Node.js是错误的,最好使用或之类的节点解决方案。这是错误的,因为Apache正在阻塞每个连接并创建一个新线程,这与Nginx和Node完全不同。通过使用Apache,您将消除Node.js为您提供的优势(数千个并发连接和较低的内存占用)


2) 据我所知,最“流行”的日志库可能是。

对于新版本的Apache(2.4.5+),您可以使用mod_proxy_wstunnel来实现这一点

我最近做了一个简单的实验。它与Apache、Nodejs和socket.io的结合似乎可以很好地工作

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

ProxyPass /socket.io/1/websocket/ ws://127.0.0.1:8899/socket.io/1/websocket/
ProxyPass /socket.io/ http://127.0.0.1:8899/socket.io/
详情:

对于新版本的Apache(2.4.5+),您可以使用mod_proxy_wstunnel来实现这一点

我最近做了一个简单的实验。它与Apache、Nodejs和socket.io的结合似乎可以很好地工作

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

ProxyPass /socket.io/1/websocket/ ws://127.0.0.1:8899/socket.io/1/websocket/
ProxyPass /socket.io/ http://127.0.0.1:8899/socket.io/
详情:

alFReD NSH推荐的Nginx或node http proxy的推荐解决方案是什么?这与我的需求非常相似。我找不到很多关于为什么一个比另一个更好的信息。Nginx实际上是一个具有“插件”/“模块”(用于gzip、GeoIP、proxy ing等)的web服务器,而node http proxy只是一个使用node.js构建的代理。您可以使用Nginx(通常人们将其与其他模块一起使用,根据自己的需要定制),也可以只使用node http代理。无论你选择哪一个都是好的。你的答案对我来说似乎很熟悉!为什么我的回答没有被接受PI喜欢关于为什么Nginx比Apache更受欢迎的解释。除此之外,这两个答案都是非常翔实的,我真的很感激。谢谢。alFReD NSH推荐的Nginx或node http proxy的推荐解决方案是什么?这些解决方案似乎非常符合我的需要。我找不到很多关于为什么一个比另一个更好的信息。Nginx实际上是一个具有“插件”/“模块”(用于gzip、GeoIP、proxy ing等)的web服务器,而node http proxy只是一个使用node.js构建的代理。您可以使用Nginx(通常人们将其与其他模块一起使用,根据自己的需要定制),也可以只使用node http代理。无论你选择哪一个都是好的。你的答案对我来说似乎很熟悉!为什么我的回答没有被接受PI喜欢关于为什么Nginx比Apache更受欢迎的解释。除此之外,这两个答案都是非常翔实的,我真的很感激。非常感谢。