使用mod_rails(乘客)减少机器人的优先级

时间:2013-12-06 03:01:05

标签: ruby-on-rails passenger bots thin

使用我当前的瘦设置,我可以减少机器人优先级,将它们重定向到一个优先级较低的特定服务器实例:

# put some bots in one proxy port
RewriteCond %{HTTP_USER_AGENT} (?:Googlebot|bing|Mediapartners|Adsbot|Feedfetcher) [NC]
RewriteRule ^.*$ http://localhost:50003%{REQUEST_URI} [P,QSA]
# deny other bots
RewriteCond %{HTTP_USER_AGENT} baidu [NC,OR]
RewriteCond %{HTTP_USER_AGENT} bot [NC]
RewriteRule ^.*$ - [F] 
# deny empty user-agent
RewriteCond %{HTTP_USER_AGENT} ^-?$
RewriteRule ^.*$ - [F] 

然后运行

降低优先级
renice 20 `cat tmp/pids/thin.50003.pid`

但我不知道如何使用Passenger,因为它不使用平衡器。这对我的服务器来说非常必要......

1 个答案:

答案 0 :(得分:1)

您可以使用Phusion Passenger的Standalone mode来实现这一目标。以低优先级启动具有1个进程的独立服务器:

nice passenger start -p 50003 -e production

现在Passenger将侦听端口50003,您可以继续使用现有的重写规则和代理规则。