我想使用Node,因为它很快,使用我在客户端使用的相同语言,并且根据定义它是非阻塞的.但是我雇用编写程序进行文件处理(保存,编辑,重命名,下载,上传文件等)的人,他想使用apache.所以,我必须:
说服他使用Node(他放弃了一点点)
弄清楚如何在节点或文件中上传,下载,重命名,保存等文件
我必须在同一台服务器上安装apache和node.
哪个是最有利的情况,我该如何实现呢?
我们正在开发一个仅在现代浏览器(IE10 +)上运行的Web应用程序,原因各不相同.
我们实现的功能之一是Socket.io 1.x. 但是,默认情况下,Socket.io客户端会尝试支持较旧的浏览器,因此它会启动与长轮询的连接,然后将其更新到WebSockets.这是浪费时间和资源,因为我们知道浏览器支持WS.
我一直在搜索,我只能找到这个wiki页面,但是,它是关于Socket.io 0.9的.
最后,我找到了engine.io-client的文档(Socket.io-client基于1.x分支).这是我编写的代码,似乎正在运行.但是,我想知道它是否正确或者我做错了什么:
io.connect('https://...', {
upgrade: false,
transports: ['websocket']
})
Run Code Online (Sandbox Code Playgroud)
奇怪的是,仅仅将transports属性设置为数组websockets是不够的; 我也不得不禁用upgrade.它是否正确?
我做了一些新的发现.
随着transports设置为['websocket']只,它没有任何区别阉羊upgrade被启用.这是正常的吗?
尝试通过我的Apache2服务器访问ws:// localhost:8080 /时收到错误500.该服务器运行OpenSuse Leap 42.1和Apache 2.4.16.
启用了这些Apache2模块:mod_proxy,mod_proxy_http,mod_proxy_wstunnel.
从本地网络调用请求时,一切正常.网址示例:http://<myhost-ip-address>/api/ws/<some-url>.它返回状态101和响应:Upgrade: websocket.没关系.
来自外部网络的同类请求失败.网址示例:ws://www.mysite.com/api/ws/<some-url>.它返回错误500.
Apache访问日志包含: GET /api/ws/<some-url> HTTP/1.1" 500 ...
Apache错误日志包含: [proxy:warn] AH01144: No protocol handler was valid for the URL /api/ws/<some-url>. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
我的httpd.conf:
<VirtualHost *:80>
ServerName mysite.com
ServerAlias mysite.com
# Redirection for ws protocol
ProxyPreserveHost On
ProxyVia full
ProxyRequests OffHere
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/api/ws/(.*) [NC]
RewriteCond …Run Code Online (Sandbox Code Playgroud) 找不到解决办法。我不太喜欢 apache 配置,但我目前需要它来重新路由到本地服务器。我正在使用在 Internet 某处找到的重新路由的解决方案。有效。我有一个连接,但我收到此错误。WebSocket 握手:意外响应代码:400
代码:
<Location /tools/>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/tools/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule "^/tools/socket.io" "ws://localhost:8080/socket.io/" [P,L]
ProxyPass http://localhost:8080/
ProxyPassReverse http://localhost:8080/
</Location>
Run Code Online (Sandbox Code Playgroud) 问:如何使用基本身份验证将Apache 2.4配置为Portainer的反向代理?
Portainer是用于管理Docker容器的UI.Portainer文档有一个示例nginx配置,但遗憾的是没有apache.
apache user-interface reverse-proxy basic-authentication docker