Articles of networking

nginx websocket upgstream模块开发

我试图让nginx反转代理websocket连接,以便我可以在同一个端口上托pipe一个rails应用程序。 考虑到我们忽略了8字节的内容长度握手问题,我有几个关于这个话题的问题: 如果我要为当前http上游实现1.1 keep-alive,是否允许我使用nginx作为后端node.js websocket服务器实例的反向代理? (和我不知道,如果我正确理解这一点)考虑到我实现上游keepalive,这将意味着客户端和nginx之间的每个连接也导致nginx和node.js后端之间的连接,只要客户端连接到websocket? 如果是这样的话,那么与nginx的连接处理方式有冲突吗? 如果1.持有,你可以给我任何提示,我将如何执行这个? 谢谢,Reza Ps有一个ngx-upstream-keepalive模块不支持http。 http://mdounin.ru/hg/ngx_http_upstream_keepalive/

如何解决uwsgi服务无法在centos中启动7

uwsgi.service – uWSGI Emperor service Loaded: loaded (/etc/systemd/system/uwsgi.service; disabled; vendor preset: disabled) Active: failed (Result: start-limit) since Sun 2016-05-22 05:46:09 EDT; 5min ago Process: 6371 ExecStartPre=/usr/bin/bash -c mkdir -p /run/uwsgi; chown user:nginx /run/uwsgi (code=exited, status=1/FAILURE) May 22 05:46:09 apxyws systemd[1]: Failed to start uWSGI Emperor service. May 22 05:46:09 apxyws systemd[1]: Unit uwsgi.service entered failed […]

在Linux服务器中设置CDN

我正在为我的网站设置一个CDN。 我已经在Digital Ocean的虚拟服务器上托pipe了它,但我找不到configuration所有必要的howto的方法。 有没有人有一些build议?

把nginx放在uWSGI前面有什么好处?

我看到很多人用nginx运行他们的python应用程序,然后与nginx通信。 uWSGI可以直接作为Web服务器运行,它看起来相当快速和可扩展,所以把nginx放在前面的目的是什么?

如何访问docker定制桥networking中的端口

新的Docker文档说,你仍然可以在默认bridgenetworking中使用–link ,但是创build自己的bridge network更安全。 然后它说自定义bridge ,你不能再使用 – –link内部映射一个port 。 所以我想创build一个安全的隔离的自定义bridgenetworking,可以与对方的端口交谈。 例如,我在bridge网中有一个nginx容器,但也是包含angular应用程序的private network一部分。 我怎么能proxy来自nginx的angular container上的指定端口(例如port 8080 )的调用,而不暴露在全球angular端口? 更新: 我了解如何在同一个networking中创build容器,然后使用它们的容器名称用ping连接到对方。 我不明白的是如何访问另一个容器的port 。 例如,如果web2和nginx都在同一个networking上,我可以从nginx ping web2 ,但是如果我从nginx运行curl web2:4200 ,则Failed to connect to web2 port 4200: Connection refused 。 如何在不暴露port 4200情况下打开port 4200 ? nginxconfiguration文件 upstream web { server web2:4200; } upstream api { server api:3000; } server { listen 80; […]

用Lisp编写Web应用程序的首选方式是什么?

我一直在研究Nginx的模块(我的首选web服务器)为Lisp webapp服务,但是我一直没能find任何东西。 有Nginx的模块,还是有更好的方式来服务Lisp的webapps? 如果是这样,他们是什么?

为什么在Nginx的access.log中,request_time比upstream_response_time大得多?

我正在尝试改进一个Web应用程序的性能。 分析应用程序本身,我发现它的响应时间是完全可以接受的(100ms-200ms),但是当我使用ApacheBenchtesting应用程序时,响应时间有时会超过1秒。 当我仔细查看日志时,偶然发现request_time和upstream_response_time之间的差异很大: "GET /wsq/p/12 HTTP/1.0" 200 114081 "-" "ApacheBench/2.3" 0.940 0.286 "GET /wsq/p/31 HTTP/1.0" 200 114081 "-" "ApacheBench/2.3" 0.200 0.086 upstream_response_time与我在web应用程序中的分析非常接近,但对于第一个请求, request_time接近1秒。 什么可能导致这种差异? 我明白request_time是从收到的第一个字节到最后一个响应字节发出的,它会受到networking条件和客户端问题的影响。 我想知道我该如何尽可能地减less平均request_time ?

nginx + proxy pas – 504网关超时,1分钟后超时,30秒 尝试proxy_read_timeout但没有运气

这是我的configuration: location / { proxy_pass http://localhost:8003/; proxy_connect_timeout 3600s; send_timeout 3600s; proxy_read_timeout 3600s; include /etc/nginx/proxy_params; } 但是,1分30秒后,我得到504网关超时错误。 但不是根据我的以上configuration,是什么原因? 我怎样才能让它工作更多的秒钟。

Django性能监控

我有一个运行在django–nginx-gunicorn上的服务器。 我希望监控它的性能,并且知道哪个模块正在使用更多的资源,networking的性能等。 我尝试使用穆宁 ,这是非常有名的,但我不能得到它与Django的工作。 所以如果有人能帮我在我的基于Django的服务器上设置Munin,或者build议一个可以很容易地与Django合并的类似替代品,那将会非常棒。

你如何访问ngnix中的原始请求(和端口)

我有以下networkingconfiguration:F5 LB – > 2 NGNIX节点 – >应用程序服务器 对于服务器到服务器的调用,我们根据源服务器上的scheme,port和uri签署请求,并根据相同的参数重新对请求重新签名,从而比较目的地上的这个签名。 服务器到服务器调用遵循以下path:源服务器 – > F5 LB – > NGNIX – >目标服务器。 源服务器发送的原始请求将发送到https而不是端口,因此不带端口进行签名(或者使用默认端口)。 LB将自定义端口添加到请求并将其传递给NGNIX。 NGNIX依次被configuration为将请求的服务器scheme,主机和端口传递给应用服务器: proxy_set_header Host $host:$server_port; proxy_set_header X-Scheme $scheme; 目标服务器收到来自LB的端口,而不是源服务器发送的原始请求发送的端口,最终无法在目标服务器上进行签名检查。 使用ajp与代理服务器进行了相同的testing,并且通过的请求保存了原始端口,而不是由LB添加的端口。 仔细阅读后,会出现一个简单的问题: 如何在ngnix中访问原始请求(和端口)? 以下是相关configuration的其余部分: proxy.conf: proxy_redirect off; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; proxy_buffer_size 8k; proxy_http_version 1.0; proxy_set_header Host […]