我注意到在我们的访问日志中有时, $http_x_forwarded_forvariables没有被设置,相反,正确的IP是设置为$remote_addr 。 有没有可能将$http_x_forwarded_for设置为$remote_addr ,否则不存在? 基本上,在nginx逻辑中下面的伪代码 : if($http_x_forwarded_for == null) $http_x_forwarded_for = $remote_addr 我在$http_x_forwarded_for基础上设置了一些限制请求区域,所以我认为这个问题可能是为什么它不总是生效。 谢谢。
我目前在Centos 6.6操作系统上运行nginx / 1.0.15。 该服务器具有以下规格: 英特尔(R)Atom(TM)CPU C2750 @ 2.40GHz(8核心) 32GB内存 5 x 6000 GB 7200 RPM(Raid 10) 问题 服务器有一个1Gbit / s的连接,但是在400-500Mbit / s之后会出现瓶颈。 服务在大约100个连接处开始下降..服务器的速度急剧下降(尽pipe仍有50%的带宽可用) NGINX服务器严格用于提供静态.mp4文件。 每个文件通常是400-1200MB(平均700MB) 我已经尝试了很多很多configuration,几乎所有的configuration都给了我相同的结果..我非常沮丧.. 服务器负载也永远不会超过0.3。 在我的configuration中是否有明显的错误或误导? 任何事情都可能有帮助 configuration /etc/nginx/nginx.conf user nginx; worker_processes 9; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 51200; use epoll; } worker_rlimit_nofile 600000; http { include /etc/nginx/mime.types; default_type application/octet-stream; […]
我目前正在尝试在我的个人服务器上运行hack.chat 。 长话短说,它由两台服务器组成。 首先是一个简单的httpd服务器提供JavaScript和CSS。 第二个聊天系统是javascript连接到websocket的一个node.js服务器。 这里出现了问题。 我希望使用端口80,在单个IP上使用不同的域名,在Nginx中使用单独的服务器块。 我跟着Nginx的websocket文件,但这是行不通的。 当websocket尝试连接时,它总是得到200返回代码,而如果我理解的很好,它应该得到101(切换协议)。 我的Nginx版本是1.8.0,我的服务器在linux 4.0.5下运行在gentoo上 下面是相关的nginx conf文件的转储: nginx.conf: user nginx nginx; worker_processes 1; error_log /var/log/nginx/error_log info; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$gzip_ratio"'; client_header_timeout 10m; client_body_timeout 10m; send_timeout […]
我试图在我的Ubuntu盒子上安装Madsonic ,并让Nginx运行在它的前面。 问题是,当我尝试通过Web界面上传东西时,我总是收到这个警告: 31115#0: *14 a client request body is buffered to a temporary file 这也解释了为什么上传窗口上的进度条不起作用。 这是我的相关Nginxconfiguration: # proxy the madsonic server here location / { proxy_pass https://madsonic-server/; proxy_redirect off; proxy_buffering off; proxy_request_buffering off; allow all; proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-Proto $scheme; client_body_buffer_size 0; […]
我们已经决定,我们要试验和限制每分钟的请求,而不是每秒在我们网站上的请求。 但是,在这种情况下,我被突发参数弄糊涂了。 我的印象是,当你使用'nodelay'标志时,速率限制设施就像一个令牌桶而不是一个漏桶。 情况就是这样,桶大小等于burst参数,每次违反策略(比如说1 req / s),就必须在桶中放置一个令牌。 一旦桶已满(等于突发设置),就会给你一个503错误页面。 我也有这样的印象:一旦违规者停止违反政策,一个令牌就会以1令牌/秒的速度从存储桶中删除,从而允许他重新进入该站点。 假设我有上述的正确的,我的问题是什么时候开始调整访问每分钟? 如果我们select每分钟60个请求,那么令牌桶以什么速率进行补充?
我开始一个小型networking托pipe公司来教我关于系统pipe理,我遇到的问题之一是如何限制每个虚拟主机(Debain / nginx)的带宽和磁盘空间? 还是我以错误的方式去做,不应该使用虚拟主机?
对于一个特定的项目,我必须实现一个临时文件服务器: 服务器必须提供中等大小的二进制文件(大约1 MB) 文件的最大生存时间是5分钟 文件将被上传10个左右的服务器 文件将被大约10个不同的服务器读取 一个给定的文件只能被一个服务器上传,并且只能被一个服务器读取 一个给定的文件可以在第一次成功读取后被销毁 服务器必须只使用非特权端口(无FTP或NFS) 服务器必须工作,没有任何root权限 服务器必须在Linux上工作 该服务器必须在局域网上可访问 客户端(上传和下载)只有Linux服务器(客户端代码必须也可以使用任何root权限) 我不需要正式的持久性(我可以接受在崩溃后丢失一些文件) 服务器必须只使用开源组件 它一定非常快! 我正在考虑两个解决scheme:一个REDIS实例(没有虚拟机,没有持久性) – 一个带DAV模块的NGINX服务器(PUT命令上传) 但我真的对其他解决scheme开放;-)
我使用这个指南来设置它,它正在服务我的Django应用程序一段时间,但添加一个新的Django模块后,没有触及任何nginx或uwsgiconfiguration,现在服务器导致502 502错误的网关错误。 nginx error.log说: * 1上游过早closures连接,同时从上游读取响应头,客户端:xxxx,服务器:blabla.com,请求:“GET / HTTP / 1.1”,上游:“uwsgi://127.0.0.1:4000”,主机: XXXX” 我感谢你的提示,以解决这个问题。
我试着将这些行添加到mime.types: application/x-gtar tar.gz tgz tar.bz2 tbz2 tbz; application/x-bzip2 bz2; application/x-gzip gz; 但是nginx会报告tar.bz2文件的“Content-Type:application / x-bzip2”。 我该如何解决? 附加问题:tar.bz2 / tbz2文件的正确MIMEtypes是什么? 不同的来源给了我各种不同的答案:application / x-gtar,application / x-compressed-tar,application / x-bzip-compressed-tar,application / x-tar-bz2,application / x-bzip2等同样为tar.gz / tgz
我有我的静态资产configuration为 location @upstream { proxy_pass http://localhost:82; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { try_files $uri @upstream; access_log off; expires max; add_header Cache-Control public; } expires max不受尊重。 我认为它尊重传入的服务器头。 如何修改这个设置expires头?