我最近把所有的实验室服务器从apache pre_fork / mod_php切换到了apache worker / fcgi / php-fpm,并且在正确设置了一切后,我注意到了最后一个问题。 php-fpm将它自己的日志logging“标题”添加到php错误日志中。 所以这(php-fpm添加它自己的头): Sep 21 22:01:50 dev-a-1 php-fpm: pool www: 2014-09-21@22:01:50 dev-a-1.sn1.j1n.us DEBUG(7): VB9KzAoAAAQAAFGbEuQAAAAQ: Hobis_Api_Bootstrap initalized (should only happen once) 应该看起来像这样(使用mod_php的日志条目的一个例子): 2014-09-21@22:01:50 dev-a-1.sn1.j1n.us DEBUG(7): VB9KzAoAAAQAAFGbEuQAAAAQ: Hobis_Api_Bootstrap initalized (should only happen once) 因为我将所有日志logging到系统日志,并在那里过滤,所以我可以添加一个正则expression式: .*(pool www:) 但我希望有一个更优雅的解决scheme。 有没有一个configuration选项,我可以设置,所以php-fpm只是直传? 我试着将catch_workers_output设置为yes,但是没有帮助。
我有一个非常简单的位置块在我的nginx conf中,看起来像这样: location ~* ^\/[a-z0-9]{24}$ { // do some things } 我试图捕捉以Mongo ObjectId结尾的url。 例如: https : //example.com/5550cdea6928495a25bb8df8 出于某种原因,nginx告诉我有一个错误: 2016/01/07 22:36:32 [emerg] 26445#0: unknown directive "24}$" in /etc/nginx/sites-enabled/mysite.com:32
我有一个文件夹中有几千个不同版本的文件。 ACZ002-0.p ACZ002-1.p ACZ002-2.p ACZ051-0.p ACZ051-1.p … 修改始终是点之前的最后一个数字。 我只需要保留最新版本的文件,但是我不知道如何继续使用我的代码。 $path = "E:\Export\" $filter = [regex] "[AZ]{3}[0-9]{3}\-[0-9]{1,2}\.(p)" $files = Get-ChildItem -Path $path -Recurse | Where-Object {($_.Name -match $filter)}
我在main.cnf中有这个: alias_maps= regexp:/etc/aliases 在那个文件里面,我有: /^reply*$/: jjj 现在,当我把它发送到[email protected],postfix反弹,因为 Recipient address rejected: User unknown in local recipient table; 如何configuration我的别名,以便人们可以发送reply*@mydomain.com并将其转发到[email protected]?
我一整天都在砸我的脑袋,试图将我的正则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 = […]
我们最近将我们的Apache 2.4.7模式从mpm_pre-fork切换到mpm_event。 从那以后,我们一直无法让我们的Files指令工作。 <Files "*.php"> Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0" </Files> 我确实设法解决这个混乱的问题: <Files ~ "((^$)|(php))"> 但是,根据我的正则expression式知识,这将在文件名中的任何位置匹配“php”文件。 我发现需要匹配这个其他问题的“空”情况。 我们也尝试了使用相同结果的FilesMatch 。 这些都不能从我从Apache 2.4文档中得知。 有没有其他人看到这样的问题? 更新 :我把服务器回滚到mpm_preforker和mod_php没有任何改变。 然后我清除了Apache和PHP,重新安装为mpm_preforker,它再次工作。 然后我升级到mpm_event和php-fpm,稍后停止工作。 我正试图隔离它打破的地方,并发布我发现的东西。 更新2 :这似乎与fastcgi或php-fpm的东西有关。 我有两个<Files>指令,一个用于生成唯一标头的html和一个用于php指令: <Files *.html> Header always set X-Aaron-files "html match" </Files> <Files *.php> Header always set X-Aaron-files "php match" </Files> 如果我去一个虚构的php文件,那么我得到一个404消息与php-match头。 但如果我去一个真正的php文件,然后服务器执行PHP文件,但不会返回标头指示一个php文件匹配。
我有一个容易受到攻击的页面,所以为了减less匿名攻击,我在我的.htaccess网站上find了这个代码: # BLOCK PROXY VISITS <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:VIA} !^$ [OR] RewriteCond %{HTTP:FORWARDED} !^$ [OR] RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteRule .* – [F] </IfModule> 我的问题是,一个广告客户在他的公司内部使用代理,因此无法访问我的页面。 我对正则expression式一无所知,尽pipe我认为当我看到它的时候我可以识别一个正则expression式 ,如“ 哦,看看正则expression式 ”。 我认为上面的条件是正则expression式,但我没有知识来改变它们, 只有来自这个特定静态IP的代理访问不被禁止。 如果可能,我该如何实现? 先谢谢你!
我需要运行cmd1 。 当且仅当从STDOUT中缺lessPATTERN时,我也需要运行cmd2 : cmd1 | grep "$PATTERN" || cmd2 但是我希望看到所有来自cmd1的输出,而不仅仅是匹配PATTERN的行。 我知道我可以做这样的事情: OUTPUT=`cmd1` echo "$OUTPUT" echo "$OUTPUT" | grep -q "$PATTERN" || cmd2 但是这会将STDOUT与STDERR分开。 另外,我宁愿有一个方便的一行。 所以我正在寻找一个grep的选项,或者替代grep,说:“ 不要过滤,只需设置退出代码 ”。
我有这个命令定义: define command{ command_name check_http_sane command_line $USER1$/check_http -H $HOSTNAME$ -r "HTTP/1.1 (200|301|302|303|304|307|401|418|426)" } 当我在命令行上手动运行它,它工作正常,但nagios(2.6)报告“找不到模式”错误。 我需要逃避什么吗? 编辑:如下所述,我通过用我自己的脚本replacecheck_http解决了这个问题(对我们的用例来说足够好)。 脚本: http : //pastebin.com/hNmz6Wa1
有时我会在Apache日志中看到可疑的“文件未find”错误集合,基本上使用该模式 File does not exist: /var/www/file, referer: http://my.server.com/file 用人的话来说:文件没有被find,尽pipe它在这里被引用。 一个明显的黑客攻击尝试,这是几乎不可能的(和REQUEST_URI往往足够的build议相同)。 在我看来,一个明确的fail2ban案例 – 如果我能得到反向引用在这里工作: failregex = ^%(_apache_error_client)s File does not exist: /var/www(.+), referer: http://.+\1$ (Justin案例:上面的例子假设该networking服务器的DIRECTORY_ROOT是/var/www ) 我search了几个小时,上下search了fail2ban的wiki ,但是没有任何地方可以find关于filter反向引用的声明。 他们不支持,或者我做错了吗? 任何提示如何使它工作(除了从“肮脏的黑客”,如首先使用mod-rewrite发送请求到另一个假的url,然后赶上(如果任何人有兴趣,我可以在一个答案详细说明这种方法),或者使用mod-security做类似的事情)? 整个日志行被要求: [Fri Nov 08 14:57:28 2013] [error] [client 50.67.234.213] File does not exist: /var/www/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found;, referer: http://www.myserver.com/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found; (对不起,日志只是切换,所以这个长期候选人是目前唯一剩下的;为了隐私的原因做了小的调整)