我已经使用Passenger-NGinx和Unicorn部署了我的Rails应用程序,但是检查日志变得非常困难,因为日志不断受到攻击(在根路径上)都是由它自己来的,即使有了没有真正的传入请求。不知道为什么会这样。这也意味着日志变得非常大,非常快。
我的unicorn.rb
文件如下所示:
# set path to application
tmp_dir = "/tmp"
app_dir = File.expand_path("../..", __FILE__)
shared_dir = "#{app_dir}/shared"
working_directory app_dir
# Set unicorn options
worker_processes 2
preload_app true
timeout 30
# Set up socket location
listen "#{shared_dir}/sockets/unicorn.sock", :backlog => 64
# Logging
stderr_path "#{shared_dir}/log/unicorn.stderr.log"
stdout_path "#{shared_dir}/log/unicorn.stdout.log"
# Set master PID location
pid "#{shared_dir}/pids/unicorn.pid"
有用的建议吗?谢谢!
看起来这是乘客本身的问题。我删除了Unicorn作为app服务器,现在使用Passenger,而Passenger日志也有同样的问题。
答案 0 :(得分:1)
如果没有更多信息,很难说流量来源是什么。您是否有健康检查或ping检查服务器的状态?流量可能来自机器人或搜索蜘蛛吗?如果您仍然不确定我是否考虑使用tcpdump
在端口80上收听,以查看有关流量来源的IP和其他信息。
在任何情况下,如果您希望排除此类请求,那么您可以编写自己的Rack中间件,以排除特定URL或IP来记录流量。这里有一篇关于它的更详细的博客文章:https://archive.dennisreimann.de/blog/silencing-the-rails-log-on-a-per-action-basis/。
您还可以考虑使用Lograge,它提供比Rails中包含的默认值更好的日志记录控制:https://github.com/roidrage/lograge。使用lograge,您可以使用配置中的payload[:ip].reject
语法拒绝基于IP地址或操作的请求:https://github.com/roidrage/lograge#what-it-doesnt-do。