Articles of nginx

NginX proxy_read_timeout TCP连接状态

当NginXconfiguration为反向代理,并放弃等待下列原因 proxy_read_timeout proxy_connect_timeout proxy_send_timeout 它发送504网关超时给客户端。 它打开的TCP套接字是做什么的,或者试图打开上游http服务器,例如Apache? 它被另一个传入的请求重新使用还是closures它?

请问nginx路由没有stream量上游主机与权重0?

我想临时路由一个nginx上游的主机。 而不是评论它,因为这意味着nginx将完全程序化意识到它,我想知道是否将其权重设置为零将具有相同的效果(路由没有stream量的主机)。 这从http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream的文档不清楚 请问nginx荣誉weight=0 ?

为什么部分内容不在nginx(mp4)中?

我在这里运行nginx v.1.9.3来为我的网站和video文件提供stream媒体服务。 我看到mp4文件始终以200的代码提供,部分内容请求被忽略。 有时video能够在浏览器中“search”,有时则不能。 我使用了各种文件格式,结果从ok-ish到致命的坏。 我使用curl -I查看nginx的返回数据,看到没有提到接受字节范围的服务器,当我手动请求使用curl文件的部分我看到,在所有情况下,返回代码是200。 我已经testing过,没有在nginxconfiguration文件中激活的mp4模块,也没有比另一个明显的优势。 一个示例文件可以在这里查看(这是MP4的h264格式,因为我听说这是更好的现代浏览器): https : //www.ureka.org/file/play/18212/censored%20on%20google%202-h264。 MP4 这是我的网站的configuration文件: server { server_name www.mysite.org; listen 443 ssl spdy default_server; ssl_certificate_key /mysitekey.key; ssl_certificate /mysitekey.crt; keepalive_timeout 300; spdy_keepalive_timeout 300; index index.php index.html index.htm; # https only, mode – Remember this setting for 365 days add_header Strict-Transport-Security max-age=31536000; access_log /mysite.log; error_log /mysite.log; root /mysite/path; […]

fail2ban正则expression式filter不能用于nginx日志文件

我一整天都在砸我的脑袋,试图将我的正则expression式筛选器与我的access.log匹配,但没有运气。 我已经在gentoo服务器上安装了fail2ban,运行良好(我手动放了我自己的IP,它工作),但fail2ban正则expression式失败,并返回0结果filter,甚至我的网站有重载攻击现在和最近几天。 顺便说一下,我不使用iptables软件在我的服务器(我需要安装一个为了fail2ban工作?)我猜fail2ban不能读取我的logformat或我的时间格式,我试图调整一切,但没有运气,任何帮助是非常非常感激 这是我的jail.local [INCLUDES] before = paths-common.conf [DEFAULT] action=%(action_mwl)s ignoreip = 127.0.0.1/8 192.168.99.25 ignorecommand = bantime = 86400 findtime = 300 backend = gamin [wp-login] enabled = true filter = wp-login banaction=iptables-allports logpath = /var/log/nginx/localhost*access_log bantime = 7200 maxretry = 1 [nginx-nohome] enabled=true port=http,https filter=nginx-nohome logpath=/var/log/nginx/localhost.error.log bantime=86400 maxretry=2 [nginx-dos] enabled = true port = […]

为什么我不能超过32k或65k TIME-WAIT连接?

我一直在试图调整我们的Ubuntu 14.04 LTS Web服务器实例,托pipeWeb应用程序和反向代理Nginx,以便尽可能多地处理给定的硬件请求。 这是一个具有8x vCPU的c4.2xl EC2实例。 我从办公室机器上运行以下两个基准testing工具(不是同时): wrk -c1000 -d2m -t8 –timeout 90 –latency http://api.mysite.com/2/ping # or ab -k -n 100000 -c 1000 http://api.mysite.com/2/ping 我所看到的是通过运行ss -tan | wc -l ss -tan | wc -l在TIME-WAIT我总是最多可以连接65.5k个连接 我的操作系统设置是: net.ipv4.ip_local_port_range value="15000 65000" /etc/security/limits.conf有“www-data hard nofile 100000” /etc/pam.d/common-session*更新为上面的内容 而nginx的设置是: worker_processes auto; # will result in 8 on this machine […]

使用Otto在AWS上部署Node.js应用程序

尝试使用Otto部署Node.js应用程序时,部署的应用程序无法访问。 我创build了一个简单的应用程序 ,只需监听端口80并回答状态请求: var express = require('express'); var app = express(); var port = 80; app.get('/status',function(req,res){ res.json({ hostname: req.hostname, address: req.ip }); }); var server = app.listen(port,function(){ console.log('PORT='+port); }); Otto创build的本地虚拟机工作正常: host$ otto compile host$ otto dev host$ otto dev ssh guest$ npm install guest$ sudo npm start host$ curl http://`otto dev address`/status 但是,当应用程序在AWS上部署时 host$ otto […]

Nginx作为caching代理:尝试第二个上游,如果第一个返回404

对于使用nginx作为caching代理,有没有办法configuration2上游服务器的方式,它总是尝试第一个,除非那个返回404,只有在这种情况下,它会尝试第二个上游? 我知道上游configuration块中的backup选项,但只有在第一个服务器不可用时才会尝试该服务器。 我在说如果第一个服务器可用,但只是那个特定的请求的文件返回404。

使用uWSGI的内置负载均衡器和nginx

我有一个通过wsgi公开的python应用程序,并将其部署到世界。 没有从它提供的静态资产。 该应用程序将被部署到一台机器。 我将使用uwsgi来服务wsgi应用程序,并可以考虑两个选项: 通过机器上的单个uwsgi实例来服务,(弄清楚并用好多的工人/进程来旋转可能会启动2 *#个内核) 在同一台机器上运行多个uwsgi实例,每个实例都有一个worker,位于nginx之后。 在nginx后面运行单个uwsgi实例 有一件事要记住,服务器已经在负载均衡器后面了。 如果我有静态资产,我会考虑试用#2或#3。 因为没有静态文件,所以这似乎是矫枉过正。 在这种情况下,在nginx后面运行uwsgi会有什么好处吗? 反对一个单一的uswgi服务器与适当数量的工人?

如何通过后端的ETag / Last-Modified字段更新Nginx反向代理caching?

我试图让我的Nginx反向代理正常工作。 但是,我发现一旦文件被caching,即使后端文件被改变,它也不会更新/重新生效,这可以通过ETag或LAST-Modified字段来识别。 有人可以请帮助我解决这个问题? 这是我的设置: proxy: proxy.test.com backend: back.example.com nginx设置: proxy_cache_path /home/cache levels=1:2 keys_zone=cache_rev:16m inactive=14d max_size=12g; proxy_cache_key "$scheme://$host$request_uri"; server { listen 80 default_server; resolver 74.82.42.42; server_name proxy.test.com; location ~ ^/ { proxy_pass http://back.example.com$request_uri; proxy_redirect off; proxy_buffering on; proxy_cache_revalidate on; proxy_pass_header Set-Cookie; proxy_cache cache_rev; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_cache_valid 200 1d; proxy_set_header […]

Nginx的代理图像/ JavaScript外部托pipe

我试图用nginx代理一个由外部主办的javascript和图片 我在https上运行我的网站,他们只通过http提供的文件,我已经有与他们有关的联系,但不能给时间线,当他们走了解决这一点。 所以没有我想在我的nginxconfigurationproxy_pass这些文件我有以下位置块 location /blogcounter/image { #rewrite ^/blogcounter(.*) /$1 break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://widget.external-domain.tld/$uri$is_args?$args; } location /blogcounter.js { #rewrite ^/blogcounter(.*) /$1 break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://widget.external-domain.tld/$uri$is_args?$args; } 我想在我的网页上的小工具是。 <a title="external-domain.tld" href="http://external-domain.tld/" id="hr-random_id" target="_parent"> <img src="https://my-domain.tld/blogcounter/image?image=red_s&blog_id=random_id" alt="alt-text" border="0"> </a> <script type="text/javascript"> var […]