在几乎没有任何负载的情况下(可能有几个人每分钟触碰一次服务器),我们有一些超时令我疯狂。 我们使用nginx将非SSLredirect到SSL,终止SSL,然后将请求反向代理到haproxy,将其发送到我们的应用服务器之一。 我们的应用程序服务器运行乘客(导轨)+ nginx。 我们有一个mysql master + slave和一个memcached实例,我们最近开始使用它来进行一些查询。 这是我在nginx错误日志的第一层看到的一个典型错误,它将请求传递给haproxy(详细信息模糊处理): 2012/02/25 06:42:15 [error] 7838#0:* 60797上游超时(110:连接超时),从上游读取响应头时,client:1.2.3.4,server:domain.com,request: “GET / api / v1 / some_route HTTP / 1.1”,上游:“ http://127.0.0.1:82/api/v1/some_route ”,主机:“domain.com” 我不确定它是haproxy,乘客+ nginx,rails,memcached。 一个经验数据表明,它们似乎是一堆发生的,也就是说,如果我们有一个超时,我们看到其他几个,那么它们就会消失。 任何帮助将不胜感激。 很高兴发布任何configuration或任何有用的信息。
nginx保持locking状态。 我过去几天一直在使用DDOS。 这是一个大的POST洪水。 那么,GET和POST之间的混合。 GET似乎没有效果,我已经把一个页面放在login页面前面,这样用户在login之前必须填写一个validation码,以防止用户以前尝试login。 (他还在尝试,淹没我的login页面)。 现在他淹没了我的页面,validation了CAPTCHA,这是目前唯一能够影响到它的东西。 不过,我不确定为什么它会影响我的服务器。 它使Web服务器完全无法访问。 在validation页面的请求之间似乎有一个很大的延迟,所以我相信他正在做的只是告诉nginx他将发送POST数据,然后发送它非常缓慢,以保持连接打开。 有没有办法基本上超时的连接在这种情况下? 此外,现在这是一个头洪水,这似乎没有任何影响。 在我的terminal上观看所有这些连接。 编辑 :是的,现在我知道这是一个缓慢的HTTP请求攻击。 其中一些请求是30k字节只是为了login或提交validation码。 nginx需要20-300秒才能回复其中的一些。 编辑:为了扩大这一点,我相当肯定这是一个缓慢的后期洪水。
我现在正在进行DDOS攻击,攻击者有他的僵尸发送POST请求到我的一个页面。 起初,nginx只在几秒钟内回复,但过了一段时间就开始build立; nginx需要10分钟才能完成对这些请求的响应! 但为什么? 我不明白为什么。 我甚至不知道为什么我不能阻止它。 我有这些设置: client_header_timeout 5; client_body_timeout 5; keepalive_timeout 5 30; send_timeout 5; 所以5秒后不应该超时? 为什么会持续600秒以上? 有什么办法可以弄清楚这是什么types的攻击? 缓慢的标题? 慢POST? 我怎样才能检测到这个攻击是什么,我该如何阻止它呢? 还应该注意的是,连接是通过一个负载均衡器和一个Squidcaching反向代理,所以我可以读取客户端的真实IP的唯一方法是通过特定的HTTP头
我注意到,虽然安装nginx,它告诉我PCRE不可用。 我安装了PCRE:yum install -y pcre 当我重新启动nginx时,它显示这个错误: 使用正则expression式“.php $”需要nginx.conf中的PCRE库 我想启用PHP-FPM。 我该怎么办? 我正在使用CentOS。
我有Django运行并caching到Memcached中。 我在页面上有一些Ajax操作,当这些操作被执行,并且浏览器刷新时,CSS和JS文件就不会被find。 他们已经消失在Firebug中,并且网站只显示没有任何造型的物体。 我关掉了memcached,无法复制这个问题。 我在这里感到茫然,你们有没有听说过memcached之前的任何事情?
我试图转换为Apache创build的一组重写规则,用于托pipe与NginX(fastcgi,PHP)一起使用的WordPress站点。 据我所知,WordPress有一个页面(“ expo ”),然后使用主题中的代码来检查请求参数(“ p ”)。 然后它使用“ p ”来执行一些数据库查询和呈现内容。 所以你可以通过调用/expo?p=name_of_expo访问这个页面。 要求是URL的结构如下: /expo/name_of_expo 我已经把它剥离到我可以做的最基本的重写规则: location ~ ^/expo/.+/?$ { rewrite ^/(.+)/(.+)/?$ /$1/?p=$2? last; try_files $uri $uri/ /index.php?$args; } location / { index index.php; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 进入/expo?p=name_of_expo ,显示正确的页面。 但是,当去/expo/name_of_expo ,WordPress 404被触发。 […]
我拥有一个域,比如说example.com ,并且我将一条Alogging指向运行nginx的IP 123.123.123.123服务器。 当我在浏览器中打开example.com时,我到达正确的站点,但是所有链接都指向IP而不是域。 我究竟做错了什么? 这是一个Web服务器的问题?
我正在尝试使用Passenger for Rails项目连接NGINX Web服务器。 我检查了我的configuration文件,并通过端口883连接到站点。 这是我的configuration文件如下: http { passenger_root /home/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11; passenger_ruby /home/.rvm/wrappers/ruby-1.9.2-p290/ruby; server { listen 883; server_name www.example.com; root /home/samples/public; passenger_enabled on; ssl on; ssl_certificate /opt/nginx/conf/server.cert; ssl_certificate_key /opt/nginx/conf/server.key; location / { root html; index index.html index.htm; } } 使用以下命令启动NGINX Web服务器 sudo /etc/init.d/nginx start Starting nginx: [ OK ] sudo /etc/init.d/nginx status nginx (pid 19575) is […]
我试图从nginx官方仓库安装nginx。 我从nginx.org下载了nginx-release-rhel * .rpm,并且安装了yum。 但是,尽pipe新的nginx回购可以使用新的nginx-debug包,但nginx的可用版本是0.8.54。 我能做些什么来强制安装nginx 1.0.X? 编辑:configuration文件的更多信息。 这是/etc/yum.repos.d/nginx.repo文件: [nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/6/$basearch/ gpgcheck=0 enabled=1 这就是我们不得不说的: $ uname -a Linux ip-XX-XXX-XX-YYY 2.6.35.14-107.1.36.amzn1.i686 #1 SMP Thu Feb 16 23:14:37 UTC 2012 i686 i686 i386 GNU/Linux 最后,这是yum info nginx的输出: $ yum info nginx Loaded plugins: fastestmirror, priorities, security, update-motd Loading mirror speeds from cached hostfile * amzn-main: […]
什么是最好的方式来进行,如果我想安装PHP和服务一些PHP博客,已经通过乘客和Nginx的轨道页面服务ruby的VPS服务器? 我已经build立了我的vps跟随 http://coding.smashingmagazine.com/2011/06/28/setup-a-ubuntu-vps-for-hosting-ruby-on-rails-applications-2/