Articles of tcp

private_pub / faye和nginx tcp – 502错误的网关

所以我得到了所有设置的nginx的tcp模块,并试图用private_pub(faye)用于websockets。 截至目前,我得到非常缓慢加载从faye和502坏门错误。 每个人都指向如此configuration它: 我在我的nginx.conf中有这个: tcp { timeout 1d; websocket_read_timeout 1d; websocket_send_timeout 1d; upstream websockets { server 199.36.105.34:9292; check interval=300 rise=2 fall=5 timeout=1000; } server { listen 9200; server_name 2u.fm; timeout 43200000; websocket_connect_timeout 43200000; proxy_connect_timeout 43200000; so_keepalive on; tcp_nodelay on; websocket_pass websockets; } 我已经尝试了networking上的每一个变化。 我希望能够从我的域名“2u.fm/faye”中find它,但唯一可以实现这一目标的方法是在我的http块中执行代理: location /faye { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host […]

nginx – 把PHP通过TCP而不是套接字

我收到这样的错误: 2014/07/18 15:01:24 [error] 5700#0: *1 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: serv_name.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "serv_name.pl" 我知道要解决这个问题,我必须通过TCP而不是套接字的PHPstream量。 只有一个webb应用程序 – 我们有12个网站在nginx上运行。 我怎样才能做到这一点speciefiednetworking应用程序? 添加/etc/php5/fpm/pool.d目录文件web_name.conf就足够了? 我应该把这个文件放进去 我必须添加更多的信息,因为我搞砸了一点。 上面的错误是SQL请求,并发生与套接字PHPstream量相关的并行错误502 – 这就是为什么我写了有关将套接字更改为TCP。

与nginx一起使用TCP_QUICKACK

最近我在服务器端延迟的ACK和客户端的Naglealgorithm相结合,产生了可识别的40毫秒的延迟,这是logging在这里: http : //www.boundary.com/blog/2012/ 05 /知-A-延迟纳格尔algorithm,和你/ 解决这个问题的最简单的方法是在客户端使用TCP_NODELAY(或者TCP_CORK也应该在我们的例子中工作)。 但是,我没有直接控制客户端,并想尝试服务器端修复。 看起来,TCP_QUICKACK选项会在这里执行这个技巧,因为服务器会立即进行ACK,导致客户端的Naglealgorithm无延迟地发送下一个数据包。 令人惊讶的是,我之前找不到任何人提到这个问题。 这是不是一个好主意(除了我们会发送更多,可能是无偿的确认)? 由于看起来不像这个选项可以通过任何nginxconfiguration,所以直接打补丁是最好的select(可能是http://hg.nginx.org/nginx/file/dcae651b2a0c/src/http/ngx_http_request。 c#l3025 )? 谢谢!

保护Elasticsearch集群

我想创build一个安全的Elasticsearch集群。 关于我的使用案例。 我想要一个多租户系统。 用户必须具有对自己的名称空间的pipe理访问权限。 几次尝试后,我现在只是给用户自己的集群(通过docker)。 尝试1:在具有多租户的专用节点上屏蔽。 这需要我为每个用户修改angular色yml文件。 这是麻烦和痛苦的。 尝试2:docker集装箱+盾牌:经过一些试验和错误,这看起来工作正常,但我不喜欢的许可,我也不明白如何确保TCP传输。 尝试3: Docker容器+ nginx反向代理&htpasswd:这对于确保http传输非常有效,并且现在在Kibana中支持基本身份validation,它与kibana非常相称 。 不幸的是,这限制了我的群集能力,因为9300是开放的。 尝试4:我即将尝试docker集装箱+search卫队:这看起来像一个体面的select,但我仍然不知道如何保证TCP传输。 人们如何确保多租户Elasticsearch集群的安全?

SYN数据包在较高stream量ubuntu 12 nginx服务器上被忽略

我有一个Ubuntu的12.04服务器与端口80的nginx 只有一个防火墙规则,涉及端口映射端口26到25 nginx被设置为侦听端口80,最初以一种相当默认的方式,但现在使用 listen xxxx:80 backlog=5000; nginx不是那个加载的,大概有50个请求,说nginx_status Active connections: 480 server accepts handled requests 84618 84618 143733 Reading: 0 Writing: 4 Waiting: 474 一些用户抱怨他们的一台计算机(例如“只在家中发生”)似乎忽略了其SYN数据包。 他们可以ping没有损失。 有时他们会得到一些对tcp请求的响应。 他们可以在安静的端口上得到响应,例如pop服务器。 但一般来说,他们经历了很长的时间 我有他们的数据包转储显示这一点。 就我而言,我也可以看到一些 IP地址被忽略了。 这里举例来说,从端口2010到端口80的多个SYN数据包不被回应,而服务器正在履行端口2031上的先前连接 02:21:46.950979 IP 72.38.0.37.2010 > 64.91.255.98.80: Flags [S], seq 3835139709, win 65535, options [mss 1460,nop,wscale 3,nop,nop,TS val 0 ecr 0,nop,nop,sackOK], length 0 02:21:49.887320 IP […]

太多的nginx等待连接

下面我的nginx状态: Active connections: 1156598 server accepts handled requests 429477742 429477742 2435052040 Reading: 353 Writing: 45136 Waiting: 1111109 我们可以看到,有1111109个等待连接。 但是用ss -s我只能得到24453个tcp连接: Total: 17618 (kernel 0) TCP: 24453 (estab 17007, closed 6489, orphaned 622, synrecv 0, timewait 6466/0), ports 0 Transport Total IP IPv6 * 0 – – RAW 0 0 0 UDP 2 2 0 TCP […]

configurationNginx为TCP负载均衡器

我想使用Nginx 1.9作为TCP负载均衡器。 我遵循https://www.nginx.com/resources/admin-guide/tcp-load-balancing/中的教程,但没有奏效。 每次我尝试启动nginx时,都会出错: nginx: [emerg] unknown directive "stream" in /opt/nginx/nginx.conf 这是我的nginx.conf文件: events { worker_connections 1024; } http { # blah blah blah } stream { upstream backend { server 127.0.0.1:9630; server 127.0.0.1:9631; } server { listen 2802; proxy_connect_timeout 1s; proxy_timeout 3s; proxy_pass backend; } } 你能告诉我如何configuration它吗?

如何使用nginx从http负载均衡器迁移到https

所以我的负载平衡器看起来像这样: upstream myapp1 { server 192.168.0.20; server 8.8.8.8 backup; } server { listen 80 default; location / { proxy_pass http://myapp1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 而群集上的许多域configuration之一( 192.168.0.20 )如下所示: server { listen 80; root /var/www/maximilian.xyz/public_html; index index.php index.html index.htm; server_name maximilian.xyz www.maximilian.xyz; … } 现在,你不知道的一点! 我一直在使用stream {…}configuration来学习本教程 ,以与上面相似的方式来覆盖ssl / https […]

如何模拟大量的同时请求到Web服务器?

我想看看我的nginx + node.js设置可以走多远,我可以做出什么样的变化,以挤出额外的性能我已经无意中发现了一些优秀的文章,详细介绍了一些调整,可以做到操作系统承受更多的请求我不确定我完全理解) 假设我想看看它在一段时间内如何处理每秒60,000个请求。 我试过apachebench和beeswithmachineguns 。 apachebench似乎是有限的本地约3500请求或东西。 提高并发性只会降低平均需求。 我使用beeswithmachineguns每秒可以看到(声明)每秒5000个请求到一个testing页面,但是这还不够我想要的。 但是,这似乎有点在车边。 有没有可靠的方法来模拟这样的大量请求?

反向代理Elasticsearch传输端口

在我的环境中,elasticsearch坐在只有标准端口(80,443等)的服务器上。 所有其他端口都被防火墙closures。 我目前在端口80上有一个反向代理,将所有elasticsearch HTTP请求重新路由到elasticsearch的http端口。 我也想将TCP请求重新路由到elasticsearch的传输端口 ,以便我的本地客户端可以直接查询elasticsearch作为客户端节点。 Nginx 1.9.0最近允许TCP负载平衡,这是我想利用这个,但我有一些麻烦让我的系统工作。 这里是我的nginx.conf文件(删除HTTP上下文来隔离问题): worker_processes 1; events { worker_connections 1024; } stream { server { listen 80; proxy_pass 127.0.0.1:9300; } } 我的客户端节点设置为与mydomain.com:80对话,所以理想情况下应将所有stream量路由到内部传输端口。 但是,我收到以下例外: org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available 有什么我需要configuration我的客户端节点或tcp代理? 编辑1: 一些额外的信息。 我把Elasticsearch的传输端口从9300改为8030,这是一个开放的端口。 当我相应地将我的nginx.conf更改为proxypass 127.0.0.1:8030我的本地客户端节点开始工作,并得到适当的答复我的查询。 所以问题似乎是,如果我代理传递到一个已经打开的端口,它的工作原理,但如果端口closures(9300),代理通过失败。 有谁知道这是为什么,如何解决它? 如果可能的话,我宁愿坚持使用端口9300。