情况 我正在运行Etherpad ,它通过nginx代理。 Etherpad使用带有Socket.io的Websockets。 我的nginxconfiguration或多或less是这一个 。 socket.io的位置块是这样的: rewrite /CustomSubDir/socket.io/(.*) /socket.io/$1 break; proxy_pass http://localhost:CustomPort/; proxy_redirect / /CustomSubDir/; proxy_cookie_path / /CustomSubDir/; # usual proxy header proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-NginX-Proxy true; # websocket proxy_set_header Accept-Encoding ""; proxy_http_version 1.1; # http://nginx.org/en/docs/http/websocket.html proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_buffers 8 […]
我使用Activemq作为代理,客户端是Paho js发送websocket请求(ws协议)。 一切工作正常在服务器上,但是当服务器开始将nginx设置为代理时,客户端无法连接到服务器(但我可以连接到Activemq UI Web)。 我的nginx设置是: map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 16614; server_name mq.mysite.com; access_log /var/log/docker/nginx/access_activemq.log activemq_custom; location / { proxy_pass http://192.168.10.13:16614; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } 我正在使用80端口来侦听ActiveMQ的webUI和16614到ws协议。 有什么缺失的步骤?
我将NodeJS作为一种服务于AngularJS前端的Web应用程序服务器来运行。 他们仅通过WebSockets进行通信,使用Socket.IO的SailsJS实现。 在前端(客户端)和NodeJS后端之间,nginx作为代理,像这样configuration: server { listen 1337 ssl; location /socket.io/ { proxy_pass https://localhost:1338; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 到现在为止还挺好。 我现在想要监视和保护WebSocket连接。 特别是,我想防止XSS攻击,并排除试图暴力login到我的应用程序的IP。 我很新的东西,但经过一些研究,我遇到了fail2ban和nginx-naxsi这可能正是我所需要的。 但是,我不知道如何使他们与我的设置工作。 这甚至有可能吗? 我可以以某种方式拦截通过在代理中的WebSocket(是Nginx)隧道通信?
我被要求在没有websockets支持的服务器上testingmeteor(js)网站,我该如何实现? 我怎么才能真正知道一台服务器不能使用websockets?
我正在尝试使用Nginx和Puma在我的Rails API上设置一个WebSocket端点。 我有(工作但丑陋) 下面的Nginxconfiguration工作正常 ,但我觉得我可以使用更聪明的东西,以避免重复@puma和@puma_ws命名的位置: upstream puma { server unix:///path/to/socket.sock; } server { listen 80; server_name example.com; root /var/www/public; location / { try_files $uri/index.html $uri @puma; } location ~ ^/api/websocket { try_files $uri/index.html $uri @puma_ws; } location @puma { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://puma; } location @puma_ws { # These […]
我想知道nginx如何处理吨活跃websocket连接? 有许多限制,如打开文件的数量,IP < – >(IP,端口)等之间的最大TCP连接数为65k。 当我使用nginx作为反向代理,并且在websocket的上游有5个节点时,nginx和每个节点之间是否有高达65k的活动TCP连接? 如果我有超过300K的活动客户端服务的nginx,当然。 或者nginx websocket代理以另一种方式工作? 还有我的另一个问题:我应该调整哪些参数(限制)来处理这么多的连接?
我使用nodejs原型化了一个应用程序。 但是这个问题是指假设的大规模推出。 对服务器和/或带宽的要求更高:WebSocket保持活动连接还是重复客户端HTTP GET请求? 例如(也许是一个极端的例子),Twitter允许其客户端每隔20秒向其API发送一次GET请求,或者让每个客户端连接一个HTTP1.1 websocket效率更高? 大约每1分钟或更多,或更less? 顺便说一句,也许这没有关系,但假设GET请求将由nginx处理为应该节点,这是否会有所作为?
在CentOS 7 Linux上,我成功地使用HAProxy 1.5.14在Jetty 9之前,通过FastCGI为Wordpress网站提供服务 。 它工作得很好,但是对于在同一网站上的HTML5 / WebSocket游戏,需要更高的WebSocket连接到/ws/ URL的客户端和服务器超时。 所以我修改/etc/haproxy/haproxy.cfg文件到以下内容: global chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon tune.ssl.default-dh-param 2048 defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client […]
我所依赖的websocket库( PHP-Websockets )还不支持安全套接字( wss )。 我的网站通过https ,所以我不能使用不安全的ws连接。 我正在尝试使用Apache的mod_proxy将来自浏览器的安全请求转发到客户端。 使用Javascript var ws = new Websocket('wss://example.com/_ws_/'); Apache虚拟主机 ProxyPass "/_ws_/" "ws://127.0.0.1:8080/" ProxyPassReverse "/_ws_/" "ws://127.0.0.1:8080/" # I've also tried "/_ws_/" "ws://example.com:8080/" Same error below 尝试连接时,浏览器收到500 Server Error 。 日志显示: 没有协议处理程序对URL / _ws_ /有效。 如果您正在使用mod_proxy的DSO版本,请确保代理子模块包含在使用LoadModule的configuration中。 我已经确认,如果我删除了代理规则,请停止将用户redirect到https并尝试从浏览器连接到不安全的套接字: new Websocket('ws://example.com/') ,事情工作得很好。 我加载的Apache模块包括mod_ssl.c , mod_proxy.c和mod_proxy_http.c Apache 2.4
我将Tomcat安装为IIS后面的Java应用程序服务器。 使用下面的规则,我可以重写静态页面,但很可惜,websocket连接永远不会build立: <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <webSocket enable="false"/> <rewrite> <rules> <rule name="Redirect HTTP to HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/foo/{R:1}" redirectType="SeeOther" /> </rule> <rule name="Redirect from IIS to Tomcat" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{CACHE_URL}" pattern="^(.*)://" /> </conditions> <action type="Rewrite" url="{C:1}://tomcat.contoso.com/foo/{R:1}" […]