Articles of http

将所有请求redirect到HTTPS,除了一个子目录

我试图从自签名证书转到我们的nginxnetworking服务器上encryption证书。 目前,我将所有请求redirect到http/80到https/443 ,它使用我刚刚创build的自签名证书。 现在 – 根据我的理解,Let's Encrypt向端口80发出请求(因为我使用的是certbot的webroot选项)。 这些请求被redirect,导致证书生成失败。 我试图用下面的服务器块来实现这个function,在80端口监听: server { listen 80; server_name sub.domain.tld; server_tokens off; location /.well-known { root /var/www/letsencrypt; } location / { return 301 https://$host$request_uri; } } 但是https/443 /.well-known请求被redirect到https/443 。 如何将所有请求从http/80redirect到https/443 ,除了对/.well-known/的请求?

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

我有一个文本文件的目录,我服务了Apache 2.通常当我(或任何用户)访问文件,他们在浏览器中看到他们。 我想“强制”* Web浏览器popup一个“另存为”对话框。 我知道这是可以做的Content-Disposition标题( 更多信息 )。 有没有办法打开每个文件? 理想情况下,我想这样的事情: <Directory textfiles> AutoAddContentDispositionHeaders On </Directory> 然后apache会设置正确的内容处置标题,包括使用相同的文件名。 像这样的东西可能是与Apache Header指令。 奖励点,如果它包括在debian站在阿帕奇。 我可以做一个简单的PHP包装脚本,它接受一个filename参数,调用header(…) ,然后打印文件,但然后我必须validationinput等,这是我试图避免的工作。 *我知道,当涉及到networking时,你实际上无法强制

Web服务器/ http协议如何处理版本控制和压缩?

当客户端浏览器从Web服务器请求文件时,我知道会执行某种检查,因为Web服务器所需的文件可能已被Web浏览器caching。 所以,如果caching中存在文件,则不会发送文件。 但是,如果文件在浏览器中caching后,服务器上的文件发生了变化,则无论如何都会发送和更新文件。 然后,如果您在服务器上启用了压缩function(例如gzipping),则要提供给客户端的文件必须在途中进行gzip压缩,这需要进行一些服务器端处理。 但是,这是如何pipe理的? 在我看来,逻辑的方法是,Web服务器也应该有一个caching,包含在一定的时间范围内所请求的所有文件的最新版本,因此这些文件的压缩版本,以便压缩不必每次请求文件时都要完成。 而且,文件最终是如何请求的? 浏览器是否要求input文件,每次在HTML代码中遇到一个文件,并且该文件没有存储在本地caching中,还是将所有需要的文件求和并同时要求整个文件? 但是这只是从编程的angular度来猜测,而我并不知道。 如果Web服务器系统中的答案非常不同,我主要对Apache感兴趣,但其他答案也是值得赞赏的。

我如何将一个子域重新路由到localhost +端口号?

我有几个Web应用程序在我的开发人员机器上运行。 他们模仿我们在子域上托pipe的生产Web应用程序。 例如,考虑: api.myserver.com – is mimicked by 127.0.0.1:8000 www.myserver.com – is mimicked by 127.0.0.1:8008 and so on… 我怎样才能使我的Windows 7机器上的HTTP调用“api.myserver.com”(注意缺less端口号)redirect到127.0.0.1:8000等? 请注意,这需要同时适用于客户端调用(在浏览器中)和服务器端调用(从IIS到Python开发服务器,反之亦然)。 我需要一个代理来运行本地来实现吗? 你能推荐这样的工具吗?

(200好)接受 – 这是一个黑客攻击的尝试?

我认为这是一些types的黑客攻击。 我试图谷歌它,但我得到的网站看起来像他们已经被利用。 我看到了一个看起来像这样的页面的请求。 /listMessages.asp?page=8&catid=5+%28200+ok%29+ACCEPTED “(200 OK)ACCEPTED”是奇怪的。 但它似乎没有做任何事情。 我在IIS 5和ASP 3.0上运行。 这是“黑客”意味着一些其他types的Web服务器? 编辑: 普通的请求看起来像: /listMessages.asp?page=8&catid=5

wget收到文件并挂起

我试图打败奇怪的问题 – wget获取文件,将其保存到磁盘并挂起。 这里是细节: wget –server-response –ca-directory=/etc/ssl/certs –no-dns-cache -T 1 –read-timeout=1 –header="Connection: close" https://api.vk.com/method/users.get?uids=1&fields=first_name,last_name,photo,photo_big 详细日志: Setting –server-response (serverresponse) to 1 Setting –ca-directory (cadirectory) to /etc/ssl/certs Setting –dns-cache (dnscache) to 0 Setting –timeout (timeout) to 1 Setting –read-timeout (readtimeout) to 1 Setting –header (header) to Connection: close DEBUG output created by Wget 1.11.4 on linux-gnu. –2015-05-06 […]

随着时间的推移,响应时间会减慢,从哪里开始进行故障排除?

当我提出这个问题时,我的IT人员只是耸耸肩,所以我正在向SE寻求帮助。 我觉得这张图片显示的最好。 很简单,随着时间的推移,反应时间越来越差,直到午夜时分,事情发生了,并且几乎恢复了正常。 我们在IIS上,这个页面恰好仍然在经典的ASP,但是这发生在所有页面,即使是普通的HTML页面,我认为这排除了SQL连接问题。 我想我的问题是,我从哪里开始看? 我经历了常规的日志,没有看到任何跳出我的东西。 但是显然有一些事情,我不知道从哪里开始。

Monit使用404页面监视http状态

我正在尝试使用404或403页面监视HTTP状态。 大家都知道Monit把这些页面当作失败的连接,但是我怎么能改变这个页面。 我只想监视它显示404或403页面。 如果可能的话,我需要用这个configuration来检查它。 这是我的检查configuration: check process httpd with pidfile /var/run/httpd.pid start program = "/etc/init.d/httpd start" stop program = "/etc/init.d/httpd stop" if failed host hostname port 80 protocol HTTP request "/" then exec "/bin/bash -c '/bin/echo -e "hostname\thttpd\t3\tFAILED" | /usr/sbin/send_nsca -H nagiosserver -c /etc/send_nsca.cfg; /usr/bin/monit restart nginx;'"

内容长度标题不存在

我在Linux上安装了nginx服务器。 当我用curl发送请求时, Content-Length头部在响应中缺失。 1.php文件是: <?php echo "hello"; ?> 示例请求是: curl api.mysite.com/taxi/1.php -i HTTP/1.1 200 OK Server: nginx/1.2.1 Date: Wed, 17 Sep 2014 06:16:00 GMT Content-Type: text/html; charset=utf8 Vary: Accept-Encoding X-Powered-By: PHP/5.4.4-14+deb7u14 Age: 0 X-Cache: MISS from cache.turonnet.uz Transfer-Encoding: chunked Connection: keep-alive 我该如何解决这个问题?

Nginx忽略客户端的HTTP 1.0请求,并通过HTTP 1.1进行响应

我正在使用nginx/php5-fpm与代码进行testing <?php header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); // also tested: header("Status: 404 Not Found"); echo $_SERVER["SERVER_PROTOCOL"]; 并强制使用curl命令使用HTTP 1.0 。 curl -0 -v 'http://www.example.com/test.php' > GET /test.php HTTP/1.0 < HTTP/1.1 404 Not Found < Server: nginx < Date: Sat, 27 Oct 2012 08:51:27 GMT < Content-Type: text/html < Connection: close < * Closing connection #0 HTTP/1.0 正如你所看到的,我已经在请求使用HTTP […]