标签: http

Squid 或其他带有 SSD 缓存存储的 HTTP 缓存?

我正在考虑在带有 SSD 驱动器的系统上设置鱿鱼(或可能是清漆)缓存。

明显的好处是这些系统具有很高的读取速度,我希望我的命中率相当高。

假设我可以将 7 个 SSD 放入 RAID 配置中。(有些情况可以让我打包更多)

实施问题:

  • 我应该使用RAID0吗?(我希望驱动器最终会失败,所以这看起来很危险。)

  • 我应该使用RAID10吗?(这将我的磁盘占用空间减半,这很昂贵。)

  • 我应该使用RAID5吗?(众所周知,SSD 具有“糟糕”的写入性能和写入限制,所有额外的奇偶校验写入可能会大大减慢这一速度。)

  • 我应该将每个磁盘视为自己的鱿鱼数据存储吗?(squid 处理多个数据存储的效果如何?如果/当一个失败时会发生什么?)

  • 我是否应该忽略数据存储而只是将 SSD 放入大型 SWAP 分区并让 linux VM 来做这件事?(看起来很草率)

在生产环境中使用 SSD 的人们的任何建议将不胜感激。(特别是如果您将它们用于 HTTP 缓存)

raid http ssd cache squid

9
推荐指数
1
解决办法
6334
查看次数

如何在 apache 中为文件发送 Content-Disposition 标头?

我有一个使用 apache 2 提供的文本文件目录。通常,当我(或任何用户)访问文件时,他们会在浏览器中看到它们。我想“强制”* Web 浏览器弹出“另存为”对话框。我知道这可能与Content-Disposition标题有关(更多信息)。

有没有办法为每个文件打开它?

理想情况下,我想要这样的东西:

<Directory textfiles>
   AutoAddContentDispositionHeaders On
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后 apache 将设置正确的内容处置标头,包括使用相同的文件名。

使用 apacheHeader指令可能会发生这样的事情。

如果通过在 debian 中站在 apache 中包含它,则奖励积分。

我可以做一个简单的 PHP 包装器脚本,它接受一个filename参数,调用header(...)然后打印文件,但是我必须验证输入等。这是我试图避免的工作。


* 我知道当涉及到网络时,您实际上不能强迫事物

http http-headers apache-2.2

9
推荐指数
1
解决办法
2万
查看次数

HTTP 中的 301 和 302 有什么区别?

我看到所有类似网站使用的 tinyurl 302

但有什么区别?似乎两者都为我工作

http redirect http-status-code

9
推荐指数
1
解决办法
4267
查看次数

混合颠覆“SVNParentPath”和每个存储库配置?

给定使用 SVNParentPath 的典型 Subversion/Apache 配置,存储库托管/svn/如下:

<Location /svn>
    DAV svn

    SVNParentPath /srv/source/svn/repos
    SVNReposName "Subversion Repository"

    AuthzSVNAccessFile /srv/source/svn/authz
    Satisfy Any

    AuthType                Basic
    AuthBasicProvider       file
    AuthName "Subversion Repository"
    AuthUserFile /srv/source/svn/htpasswd

    Require valid-user
</Location>
Run Code Online (Sandbox Code Playgroud)

有没有办法覆盖特定存储库的此配置,而不必将它们托管在不同的路径上?也就是说,有什么办法可以添加这样的Location块...

<Location /svn/my_special_repo>
    SVNPath /srv/source/svn/repos/my_special_repo
    AuthzSVNAccessFile /srv/source/svn/repos/my_special_repo/conf/authz
</Location>
Run Code Online (Sandbox Code Playgroud)

...并让它覆盖Location块中提供的配置 /svn?我尝试使用上述配置执行此操作时,在 Apache 错误日志中遇到了奇怪且无用的错误,例如:

[Wed Feb 02 11:28:35 2011] [error] [client 10.10.209.120]
(20014)Internal error: Can't open file '/srv/source/svn/repos/svn/format':
No such file or directory
Run Code Online (Sandbox Code Playgroud)

所有这些似乎都是 mod_dav_svn 告诉我我不能做我想做的事情的方式。我愿意接受解决方案或替代方案!

编辑:嗯,我可以看到这个问题在读者中引起了很多兴奋。为了记录,我最终可能要做的是为我们所有现有的存储库生成每个存储库的配置,然后放弃SVNParentPath基于配置的配置。per-repo Apache 配置是最小的,尤其是使用类似 …

http svn version-control authorization apache-2.2

9
推荐指数
1
解决办法
5121
查看次数

如何通过http命令行下载文件?

我需要从 Windows Server 2008 上的命令行通过 http 下载文件。我正在寻找类似wget 的东西,但它必须是一个内置工具。

有这样的工具吗?

windows-server-2008 http

9
推荐指数
1
解决办法
3万
查看次数

使用涓流来减慢浏览器的速度

根据涓流的手册页,http://linux.die.net/man/1/trickle我可以限制一个进程的下载速度,例如

trickle -u 10 -d 20 ncftp 启动 ncftp(1) 将其上传容量限制为 10 KB/s,下载容量为 20 KB/s。

我将如何限制google-chromefirefox使用trickle

编辑:对于那些问我为什么问这么明显的问题的人,我试过了

trickle -u 10 -d 20 firefox

我收到一个错误

trickle: Could not reach trickled, working independently: No such file or directory

Firefox 随即打开,但绝对不受速率限制...

http rate-limiting

9
推荐指数
2
解决办法
5922
查看次数

为什么Django的开发服务器默认使用8000端口?

(我的问题并不是关于 Django。而是关于替代的 http 端口。我只是碰巧知道 Django 是一个相对著名的应用程序,默认情况下使用 8000,所以它是说明性的。)

我在野外有一个开发服务器,我们偶尔需要在不同的端口上运行多个 httpd 服务。当我需要启动第三个服务并且我们已经在使用端口 80 和 8080 时,我发现我们的安全团队已经锁定了来自 Internet 的端口 8000 访问。我知道端口 80 是标准的 http 端口,而 8080 通常是 http_alt,但我想向我们的安全团队提出案例,也开放 8000。为了证明这一点,我希望这个问题的答案可以为我提供在某些情况下使用 8000 端口而不是 8080 端口的合理论据。

还是只是一个没有意义的随机选择?

security http port

9
推荐指数
1
解决办法
1万
查看次数

Apache:发送到安全端口的不安全请求...想要重定向

前言

首先:简单的端口 80 -> 端口 443 重写不会解决这个问题。在几乎所有以前的问题,邮件线程,论坛线程等中,我发现这是第一个无知的回复,并且被重复了好几次。

其次:是的,我知道您不能在同一端口上提供 HTTP 和 HTTPS 流量。 这不是那个。

设想:

通过端口倍增托管多个站点的 Apache 服务器。端口 80 服务于公共站点。端口 443 服务于该站点的安全版本。

端口 7443、8443 和 9443 分别为单独的 SSL 安全站点提供服务。

如果用户输入错误的 URL,或者给出的链接无效,比如http://hostname.tld:7443,他们会看到以下荒谬的页面:

Apache 错误请求错误消息

而不是服务器只是将它们重定向到https://hostname.tld:7443

我的问题是,以Zeus 的屁眼的名义,您如何修改 Apache 的行为或此错误消息以自动重定向用户?

Apache 显然是在为非 https 请求提供服务(以显示该错误消息),即使它是为 HTTPS 配置的。对我来说,不只是默认进行重定向似乎非常愚蠢,但我可以理解为什么他们会采用他们所做的行为,即使我不同意。所以我的问题是:你能改变它吗?他们正在某处处理错误,并且 Apache 是配置的聚宝盆,因此有理由在某处处理此行为的指令,但到目前为止,我一直无法在几个小时的修补中找到它。

更新:

我尝试了多种方法,包括:

  • 使用ErrorDocument 400指令获取 CGI 和仅发送Status 301Location标头的 PHP 脚本。这导致空白页。ErrorDocument 400 https://hostname.tld:7443简单地使用会导致该链接显示在页面上。

  • 使用mod_rewriteI 或 Google 能想到的几乎所有组合,包括完全指导网站的一揽子声明;这些永远不会奏效。从字面上看,他们什么都不做。我猜测 Apache 甚至在尝试处理重写指令之前就遇到了上述错误。 …

http https custom-errors apache-2.2

9
推荐指数
1
解决办法
1万
查看次数

nginx 响应未知主机名?

我有两个域指向同一台服务器,一个我们将调用home,另一个我们将调用web

我在端口 80 上为 HTTP 和 443 为 HTTPS 运行 nginx。在我的服务器定义中,我定义了两个服务器:

server {
    listen 80;
    server_name web;
    # ...
}

server {
    listen 443;
    server_name web;
    # ...
}
Run Code Online (Sandbox Code Playgroud)

在实践中,它工作得很好。但是,当我尝试访问home指向与 相同的 IP 地址的 时web,我会得到服务,web而不是得到 404 或类似信息。

如何将 nginx 配置为与服务器名称不匹配的 404 请求?我是否需要定义一个默认服务器,它只会将事情退回到 404 秒?

http nginx https

9
推荐指数
3
解决办法
1万
查看次数

我的日志中的 HTTP COOK 请求方法是什么?

我在 Apache 日志中看到如下条目

178.216.185.210 - - [24/Feb/2014:11:46:40 -0500] "COOK /freesearch.php?portal=0a9&... HTTP/1.0" 303 589 "-" "Mozilla/4.0 (compatible; Synapse)"
Run Code Online (Sandbox Code Playgroud)

COOK代替通常的GETPOST

我尝试了各种搜索词,但找不到有关这可能是什么的任何信息。我还用谷歌搜索了用户代理字符串,发现它很可能是一个用Ararat Synapse构建的脚本。从使用该用户代理字符串发出的其他请求来看,这是一个不合格的人。

那么这只是一些编造的请求方法吗?

Apache 如何处理未知的请求方法?所有COOK请求的响应状态代码都记录为 303。Apache 是说See Other并且只提供相同的 URI?我没有看到来自同一个 IP 的另一个点击,所以我假设响应被简单地记录或忽略。他们可能稍后会从另一个 IP 回来。

所以我的脚本永远不会运行,对吗?

security http apache-2.2

9
推荐指数
2
解决办法
5911
查看次数