Articles of http headers

在Apache中将机器主机名作为标题发送

我有一组负载均衡器后面的linux apache 1.3服务器,我希望能够一眼就能确定我正在访问的服务器。 负载平衡器的监视能力受到严重限制,所以我想要做的就是configurationapache发送一个额外的头部来指明机器的主机名。 我知道我可以使用主机名将头部硬编码到httpd.conf中: Header set X-Which-Host-Am-I 'host1' 但是,所有服务器都使用rsync进行镜像,包括configuration,因此硬编码的主机名已经不存在了。 有没有办法我可以调用hostname命令并将其转储到标题中? 说明:由于这些服务器上存在多个虚拟主机,因此我需要物理机的主机名,而不是请求中的域名。

如果我发送一个HTTP GET请求,我收到在GET响应?

这可能是一个非常基本的问题,所以请原谅我的无知 服务器使用哪种方法来响应所获得的请求? 我正在做一个networking应用程序,并有一个特定的路线,返回一个大的(如.iso图像)文件。 所以当用户点击一个下载button时,我会让JavaScript用{method: "GET"}请求URL。 当HTTP方法服务器用来发送文件的时候,在用户的机器上下载什么时候? 我很困惑: 如何处理服务器上传用户下载? 它是否默认为大型文件的POST? 作为一名程序员,我如何确保为我的最终用户下载容易(可恢复)?

如何使用php-fastcgi删除nginx中的“Client-Peer”(etc)头

我的设置: 操作系统:Ubuntu 11.04 HTTP服务器:nginx 1.2.1 用HttpHeadersMore模块编译 通过php-fastcgi处理PHP (其他不相关的软件 – ruby,python等) 我的问题: 我试图完全屏蔽服务页面的软件(部分安全,主要是因为它很有趣),我设法改变服务器名称,并删除了PHP-fastcgi添加的X-Powered-By头, m无法删除三个标题: Client-Date: Thu, 14 Jun 2012 20:32:34 GMT Client-Peer: 205.186.146.37:80 Client-Response-Num: 1 我已经使用more_clear_headers模块中的more_clear_headers,但是这样做不起作用,尽pipe能够删除X-Powered-By头文件。 这是在我的http块 more_set_headers "Server: Tesco Value"; more_clear_headers "X-Powered-By"; more_clear_headers "Client-*"; more_clear_headers "Client-Date"; more_clear_headers "Client-Response-Num"; more_clear_headers "Client-Peer"; more_clear_headers "X-Pingback"; add_header X-Required-Volume-Setting 11; add_header X-Required-Speed 88mph; # NEW: added in thanks to the […]

加载Apache头文件模块,但不能在htaccess中设置头文件

我有Apache 2.2.29(Unix)设置和运行在我的新开发机器(MAC)。 我正在尝试为一个API项目设置CORS头文件 – 我已经做了很多次了。 该项目的htaccess文件如下所示: <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, PATCH, DELETE" Header set Access-Control-Allow-Headers "X-Accept-Charset,X-Accept,Content-Type" ServerSignature Off </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /cms/public RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC] RewriteRule (.+) index.php?p=$1 [QSA,L] </IfModule> 和头文件模块加载我的conf: LoadModule headers_module libexec/mod_headers.so 该模块文件存在于apache conf中显示的位置,并且被加载OK: […]

nginx:在重写的位置块中指定自定义标题

我正在尝试为nginx中的特定location块设置一些标头。 我遇到的问题是这些location块包含rewrite语句,显然这似乎删除自定义标头。 在这个例子中,我有两个规则: 里面的/static文件应该已经expires max; (其中设置头Cache-Control: max-age=some huge value和Expires: some future date really far off ),并将其名称被重写为不包含/static 其他地方的文件应该有Cache-Control: public (没有max-age ) 这是我尝试的configuration: server { listen [::]:80; root /somepath; location /static { expires max; rewrite /static(.*) /whatever$1; } add_header Cache-Control public; } 并具有以下目录结构: /somepath /somepath/f1.txt /somepath/static/f2.txt 然后我们得到以下内容: f1.txt : Cache-Control: public ,no Expires标题 f2.txt : Cache-Control: public […]

Nginx $ http_x_forwarded_for不总是被设置

我注意到在我们的访问日志中有时, $http_x_forwarded_forvariables没有被设置,相反,正确的IP是设置为$remote_addr 。 有没有可能将$http_x_forwarded_for设置为$remote_addr ,否则不存在? 基本上,在nginx逻辑中下面的伪代码 : if($http_x_forwarded_for == null) $http_x_forwarded_for = $remote_addr 我在$http_x_forwarded_for基础上设置了一些限制请求区域,所以我认为这个问题可能是为什么它不总是生效。 谢谢。

IIS 7.5自定义HTTP响应标题不起作用

尝试在Windows Server 2008 R2 Standard上新安装的IIS7.5上设置自定义HTTP响应头并且它们不起作用。 默认的头文件工作正常(X-Powered-By,等等)。 修改默认标题值(即将X-Powered-By更改为ASP.NET2)。 修改默认标题名称会导致标题停止输出(即将X-Powered-By更改为X-Powered-By2)。 有问题的网站是一个单一的HTML网页的testing网站。 自定义标头也不适用于ASP.NET 2.0站点。 我已经尝试在全球级别和网站级别设置标题无效。

HTTP请求的gzip不正确,找不到是谁在做

我们看到一些非常奇怪的HTTP响应,我们不知道是什么做的。 我们有一个应用程序服务器处理JSON请求。 有时候,响应会被gzip返回,但带有不正确的头部,导致浏览器无法正确解释。 问题是间歇性的,随着时间的推移会改变行为。 昨天上午,它似乎失败了50%,事实上,似乎与我们的两个负载平衡服务器之一。 在下午的晚些时候,它只有1000次失败了20次,并没有与应用程序服务器相关联。 这两个应用程序服务器使用mod_wsgi和Django应用程序堆栈运行Apache 2.2。 他们有相同的Apacheconfiguration和源代码树,甚至在Red Hat上安装相同的软件包。 前面有一个硬件负载平衡器,我不知道这个品牌或型号。 Akamai也是食物链的一部分,尽pipe我们移除了Akamai,但仍然存在问题。 这是一个很好的要求和回应: * Connected to example.com (97.7.79.129) port 80 (#0) > POST /claim/ HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15 > Host: example.com > Accept: */* > Referer: http://example.com/apps/ > Accept-Encoding: gzip,deflate > Content-Length: 29 > Content-Type: application/x-www-form-urlencoded > } [data not […]

IIS 7在自定义404错误页面上返回HTTP 200

我已经成功地为IIS7设置了自定义静态错误页面。 IIS7目前正在作为Java Tomcat应用程序的网关。 问题是当404错误页面被提供时,它被提供一个HTTP 200状态docker。 我想要一种configurationIIS以继续发送HTTP 404的方法。错误页面在webroot中以静态页面的forms存在。 这是我的web.config的主要部分: <system.webServer> <rewrite> <rules> <rule name="HTTP to HTTPS Redirect" enabled="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Found" /> </rule> <rule name="Reverse Proxy" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://localhost:8080/{R:1}" /> <conditions> <add input="{R:1}" pattern="error/*." negate="true" /> </conditions> </rule> </rules> </rewrite> <httpErrors errorMode="Custom" […]

nginx proxy_pass重写响应头的位置

这个nginx实例的目的是让GitLab和OpenWRT Luci通过一个反向代理redirect。 它已经为其他几个网站工作,所有这些网站都有一个基本的url,似乎对付这个问题。 本例中的GitLab在端口9000上的本地服务器上。 nginx网站在8080端口上。 OpenWRT具有完全相同的问题,但使用/ cgi-bin / luci / 示例位置的相关nginxconfiguration是; location /gitlab/ { proxy_pass http://127.0.0.1:9000/; proxy_redirect default; } 请注意,结果是相同的和没有一个结尾的斜线。 有一些头代理configuration选项被应用到这个位置。 # Timeout if the real server is dead proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; # Basic Proxy Config proxy_set_header Host $host:$server_port; proxy_set_header Origin $scheme://$host:$server_port; proxy_set_header Connection $http_connection; proxy_set_header Cookie $http_cookie; proxy_set_header Upgrade $http_upgrade; […]