我有一个在 Apache 2.2 下工作的 mod_rewrite 行,但不在 Apache 1.3 下:
RewriteRule ^(?!index.php)(?!skin/)(?!js/)(.+) /index.php?file=$1 [NC,L]
Run Code Online (Sandbox Code Playgroud)
如果我丢失了括号之间的负前瞻组件,我将丢失 500 状态代码。GoDaddy 不会为这个客户端的包升级 httpd(叹气),所以有没有人有一个可以在 1.3 中工作的解决方案(而且不会太乱:P)?或者甚至更好,谁能解释这里可能发生的事情?我保持好奇只是因为我找不到关于 1.3 中使用的 Perl 正则表达式引擎的任何信息,不支持负前瞻......
我正在创建一个 iOS 应用程序,它允许用户通过 POST 请求将图像/文本数据发送到我的网络服务器。当请求中不包含图像数据时,我成功地将 POST 发送到服务器。每当我使用图像数据进行 POST 时,服务器都会回吐一个403 forbidden. 我尝试将以下内容添加到脚本目录中的 .htaccess 文件中,但没有成功:
Options +Indexes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
Run Code Online (Sandbox Code Playgroud)
Web 浏览器和 Android 设备可以成功地将图像数据 POST 到脚本,唯一不能的设备是 iPhone。
将数据发布到其他托管服务提供商按预期工作 - 这只是这个主机 (ipowerweb.com)。
我注意到当我尝试将数据发布到服务器上的任何脚本时,它会返回一个403 forbidden. 另一个注意事项:我可以成功发布到由 ipowerweb 托管的另一台服务器,但我的似乎无法处理。
我的房东已尝试解决该问题,但无法解决,并且他们已将其标记为“已解决”,因此他们不再提供帮助。我希望让这个主机保持移动会很痛苦 - 作为最后的手段我会更换主机,所以请帮助我!
为什么只有当我通过 iPhone 应用程序提交数据时才会收到此 403 禁止错误?
如何解决此问题以便我可以成功发布数据?
任何关于我能做什么的建议将不胜感激。
编辑:作为请求,这里是响应头:
{
Connection = close;
"Content-Length" = 217;
"Content-Type" = "text/html; charset=iso-8859-1";
Date = "Wed, 12 Jan 2011 19:11:19 GMT";
Server = "Apache/2";
}
Run Code Online (Sandbox Code Playgroud)
编辑:这里的请求是请求标头(oops):
{ …Run Code Online (Sandbox Code Playgroud) 我目前正在使用 AWStats 分析服务器的 apache 日志,该服务器将链接等从 iOS 应用程序重定向到应用程序商店(因此我们可以跟踪点击率)。但是,在 AWStats 中,所有这些流量都归入操作系统类别中的“Mac OS X”。这显然对我们没有多大帮助。我们真正想要的不仅是检测 iPhone、iPod Touch 和 iPad,还有 iOS 版本号、硬件代际差异等。
我不认为可以通过 http 日志轻松检索代际差异(例如 iPhone 3G 与 iPhone 4),但我知道 iOS 版本在用户代理字符串中是正确的。
不过,我试图让 AWStats 识别 iOS 的尝试都没有奏效。我将应该在 Mac OS X 上执行此操作的行移到了 Mac OS X 之上,但无济于事。有没有人设法做到这一点,在 AWStats 或其他方式?如果需要的话,我会很好地转移到不同的系统。
作为记录,浏览器检测工作正常,它可以轻松区分mozilla,safari,iPhone safari和iPad safari。
我们的一位客户在安装相对较新的 sbs 时遇到了问题。
该域由一个带有 4 个 Windows 7 客户端和 3 个 XP 客户端的 SBS 2011 服务器组成。大多数情况下一切正常,但大约每 3 天,Windows 7 客户端在尝试接收计算机组策略时就会开始超时。
这会导致在早上进入登录屏幕之前延迟一小时。这伴随着事件 ID 6006,win 登录错误,说明处理策略需要 3599 秒。一旦他们启动,他们就可以毫无问题地登录,但是 gpupdate 在计算机策略上再次失败,并且 gpresult 返回访问被拒绝,即使以域管理员身份运行...此时如果我们重新启动服务器,网络可以正常运行 3 天.
我想也许它可能是 ipv6 或 smb2,但是在客户端上禁用 ipv6 没有帮助,并且客户端无论如何都可以在 smb2 上自由浏览 sysvol 文件夹。有没有人有我可以采取的任何想法或路线来进一步诊断问题?
我之前有一些带有负载均衡器的码头服务器。现在我想在不停机的情况下更新我的应用程序。当一个码头停机并且不再可达时,负载均衡器会自动将其从列表中删除,所以这不是问题。
主要问题是避免停机时间:因此,我必须确保一次只有一个码头重新启动 - 或者确保至少有 N 个码头在线!
目前我正在使用一个简单的 bash 脚本,我需要手动等待一个码头重新上线,然后再重新启动下一个码头等等。
现在 bash 对于这类东西并不是很理想,我希望有更适合使整个任务自动化的工具。例如http://jetty-number-n.com/ping,如果第 n 个码头在线,我可以使用一个简单的 ping URL响应 OK (200)。
我如何解决这个任务以及使用哪种工具?
感谢@ceejayoz,我找到了 ansible 的滚动更新。但它仍然不是最理想的,因为我需要设置一个固定的超时时间。
我有大量数据(+100 GB)可以存储到文件中。大多数文件都在 5k-50k 范围内 (80%),然后是 50k - 500k (15%) 和 >500k (5%)。文件的最大预期大小为 50 MB。如有必要,可以将大文件拆分为较小的部分。文件也可以按目录结构组织。
如果必须修改某些数据,我的应用程序会复制并修改它,如果成功,则将其标记为最新版本。然后,旧版本被删除。它是碰撞安全的(可以这么说)。
我需要实施一个故障转移系统来保持这些数据可用。一种解决方案是使用主从数据库系统,但这些系统很脆弱,并且强制依赖于数据库技术。
我不是系统管理员,但我阅读了 rsync 指令。它看起来很有趣。我想知道设置一些故障转移节点并使用我的主节点的 rsync 是否是一个负责任的选择。有没有人成功尝试过这个?
i) 如果是,我应该拆分我的大文件吗?rsync 在检测要复制/删除的文件方面是否智能/高效?我应该实现特定的目录结构来使这个系统高效吗?
ii) 如果 master 崩溃并且一个 slave 接管了一个小时(例如),让 master 再次更新是否像反过来运行 rsync 一样简单(slave to master)?
iii) 额外问题:是否有可能使用 rsync 实现多主系统?还是只有主从可能?
我正在寻找建议、技巧、经验等...谢谢!!!
Tomcat 是否受此漏洞影响?这是咨询公告。
我需要编写一个脚本来从 Linux 服务器收集 FusionIO 驱动器的清单数据。
我能找到的唯一方法是fio-status实用程序,但它旨在输出人类可读的文本,而不是机器可解析的文本。我可以刮它,但那很脏。
我查过了,/proc/fusion但没有足够的信息有任何用处。
我希望有更好的方法,无论是某种交互方式libiodrivesdk.so还是已经存在的实用程序来完成这项工作。
我最初使用的是 v1.2.7.2。在 Shane 的推荐下,我升级到 2.2.3.66。
fio-status 现在有一个-fk输出选项:
sles11-live:~ # fio-status -fk
; Retrieving Fusion-io product information...
[driver]
total_ioDimms=4
ioDrive_Duos=2
driver_version=unavailable
sdk_api_version=unavailable
[adapter 1]
product_name=IBM 640GB High IOPS MD Class PCIe Adapter
product_number=68Y7381
…
Run Code Online (Sandbox Code Playgroud)
呃,我希望 JSON 但乞丐不能挑剔。
我被 xfs' No space left on device击中。根据常见问题解答:
http://xfs.org/index.php/XFS_FAQ#Q:_Why_do_I_receive_No_space_left_on_device_after_xfs_growfs.3F
解决此问题的唯一方法是移动数据以释放 1TB 以下的空间。找到最旧的数据(即在第一次增长之前就已经存在)并将其移出文件系统(移动,而不是复制)。然后,如果您将其重新复制,数据块最终将超过 1TB,这应该为低于 1TB 的 inode 留出足够的空间。
但是我如何识别要移动的数据呢?我不能按年龄计算,因为前 10 TB 是在同一天使用rsync.
我试过了:
xfs_db -r -c "blockget -i 1 -n -v" /dev/md3
Run Code Online (Sandbox Code Playgroud)
但我似乎只得到文件的基本名称,而不是文件的完整路径。而且由于我的很多文件都被称为相同的(但在不同的目录中),所以这不是很有用。它似乎也给了我更多信息,只是 inode 1。
我有一种感觉,我可以使用xfs_db它来告诉我前 1 TB 中哪些文件正在使用块,但我一直无法看到如何使用。
(通过使用挂载选项inode64,文件系统不会在设备上留下 No space left,但是如果您稍后忘记使用 mount 选项,inode64那么您将再次在设备上获得No space left on device。我想避免使用挂载选项,inode64因为文件系统可能会被其他人安装在其他系统上,他们会忘记这一点,从而得到令人惊讶的No space left on device)。
我正在尝试导入由我使用 AD CS 在 Windows 中设置的 CA 创建的证书。我做了以下工作:
1) 创建自己的 CA (MyCompany)
2) 启用 Web 服务(主要是为了便于配置)
3) 在 Sonicwall 本身上生成证书请求
4) 使用 Web 服务对证书进行签名
5) 将签名证书导入 Sonicwall 。 ..这导致证书在“已验证”字段中显示“否”。
6)导入CA的证书。
这就是我卡住的地方。我试图导入 CRL 列表,但收到以下错误:CRL Error - Verification failed using CA certificate. 日志中不会出现更多错误。如果没有 CRL 列表,证书将无法验证,也不会出现在“管理”页面下,因此我可以选择它以通过 HTTPS 使用。
有任何想法吗?
编辑:当我尝试使用我的 HTTP 发布列表时,来自 Sonicwall:
07/02/2013 14:33:54.256 Alert VPN PKI Cannot Validate Issuer Path HTTPS
19 07/02/2013 14:33:54.256 Alert VPN PKI CRL validation failure for Root Certificate MyCompanyCA
20 07/02/2013 14:33:54.256 Alert VPN …Run Code Online (Sandbox Code Playgroud) apache-2.2 ×2
apple-ios ×2
analysis ×1
ansible ×1
apache-1.3 ×1
awstats ×1
fabric ×1
failover ×1
forbidden ×1
fusionio ×1
group-policy ×1
inode ×1
iphone ×1
large-data ×1
linux ×1
logging ×1
mod-rewrite ×1
puppet ×1
regex ×1
rsync ×1
security ×1
sonicwall ×1
ssh ×1
tomcat ×1
windows ×1
windows-7 ×1
xfs ×1