我将关闭我的网站以升级代码。我想在升级过程中显示临时停机页面。为了防止机器人在停机期间尝试爬取我的网站,我应该确保在此窗口期间返回什么 HTTP 响应?
我已经设置了我的 nginx.conf 文件以使用我在网上找到的教程中的代理缓存。现在我想弄清楚如何检查它是否真的有效。
我在某处读到添加add_header X-Cache-Status $upstream_cache_status;到服务器部分的配置文件应该向响应添加一个缓存标头,该标头将显示它是否来自缓存(具有 HIT、MISS 或 EXPIRED 的值)。
我想知道我在哪里可以实际查看此标题(及其值),以及这是否是正确的方式/是否还有另一种方式。总的来说,我对网络技术很陌生,如果这是一个菜鸟问题,我很抱歉。谢谢!
我有一个带有 admin 子目录的网站,该目录受集成的 Windows 身份验证保护。从远程 PC 完美运行。但是当我尝试访问服务器本身上的这些页面时,我遇到了授权失败。我使用的是正确的主机名,而不是 localhost。试过 Chrome 和 IE,结果一样。
有什么建议?
我正在构建一个页面(使用 video.js,如果重要的话)可以容纳相当多视频的播放器——单击图像缩略图上的按钮,一个模式播放器打开,播放视频。工作正常; 没什么大不了。我的服务器是 Apache 2.2.15,fwiw。
问题:当我查看服务器日志时,我看到每个视频的条目的 HTTP 代码为 206(部分内容),例如:
GET /videos/a_video.mp4 HTTP/1.1" 206 1130496 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11"
Run Code Online (Sandbox Code Playgroud)
我不确定这些条目的确切含义。当这个页面加载时,1.1 MB 的内容是否真的通过网络推送到客户端,或者这只是当/如果用户真正请求文件时客户端打算使用的信息?将所有这些东西转储到用户/客户端对某人的带宽(更不用说我的站点)来说是一件非常吝啬的事情,尤其是在移动连接上。(基于一些额外的日志分析,看起来这些位真的被推送了,但是与其他更有知识的人一起检查这肯定是正确的做法......)
我正在尝试使用 404 或 403 页面监视 HTTP 状态。众所周知,Monit 将这些页面视为连接失败,但我该如何更改。我只想监控它是否显示 404 或 403 页面。
如果可能的话,我需要用这个配置检查它。
这是我的检查配置:
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;'"
Run Code Online (Sandbox Code Playgroud) 当我尝试编写这样的代码时:
1. http {
2. script
3. server {
4. ...
5. location ...
6. }
7. }
Run Code Online (Sandbox Code Playgroud)
我得到错误:
nginx: [emerg] unknown directive "http" in /etc/nginx/conf.d/nginx.conf:1
Run Code Online (Sandbox Code Playgroud)
当代码是这样的:
1. server {
2. ...
3. location ...
4. script
5. }
6. server {
7. ...
8. location ....
9. script
10. }
Run Code Online (Sandbox Code Playgroud)
……一切都稳定了。有人知道为什么我不能使用http吗?
我在每一个善用的例子中都看到了http,但是由于这个错误我不能善用它。
nginx: nginx version: nginx/1.0.10
nginx: TLS SNI support enabled
nginx: configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx …Run Code Online (Sandbox Code Playgroud) 似乎没有办法避免这个错误:“验证返回代码:20(无法获得本地颁发者证书)”。有没有办法避免使用 AB 进行发行人 ssl 检查(例如 wget 的 -no-check-certificate 选项)
提前致谢
我找到了 CDN 工作原理的解释。但是有一件事我真的不明白。假设在我的位置我设置多个DNS服务器和他们所使用的域名服务器的域dns1.example.com,dns2.example.com和dns3.example.com。该 DNS 服务器能够根据访问者的位置(ping、地理数据库、浏览器语言或其他任何内容)提供服务器 IP。现在我www.example.org在注册表中为我的域更新此名称服务器设置。
现在,第www.example.org一个使用过期 TTL 的请求尝试解析域。它问:
dns1.example.com但是,如果我理解正确,那么新 IP 将添加到所有这些名称服务器缓存中,直到 TTL 再次过期。那么如何根据访问者的位置将其他 IP 发送给访问者呢?
在这个答案中, theandym 说请求是“转发”的,但我认为这不是 CDN 的工作方式,因为“转发”意味着延长传输方式,导致加载时间更长。或者 CDN 是否要求域的 TTL 为零?
Update1
通过这个问题,我找到了谷歌的文档,描述了他们如何优化 CDN 性能。它没有解释 CDN 一般是如何工作的,但有一些有趣的解释,如下所示:
此后,每当客户端尝试获取托管在 CDN 上的内容时,客户端都会被重定向到确定其前缀具有最小延迟的节点。但是,此重定向基于与 DNS 名称服务器的 IP 地址相对应的前缀,该服务器代表客户端解析内容的 URL,通常与客户端位于同一位置。
这意味着 Google 首先会检查所有 IP 前缀的延迟,并为所有可用前缀定义 DNS 解析表 (?)。如果访问者拥有 IP 198.51.100.231 …
有没有一种(简单的)方法让 puppet 使用 Internet 上可用的文件作为文件的 Source 属性?
例如:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Run Code Online (Sandbox Code Playgroud) 我有一个由 Apache 提供服务的小站点(我不能将 Nginx 放在前面,也不能将 Apache 更改为任何内容),并且它被设置为通过 http 和 https 为同一个站点提供服务(没有重定向 http->https,所以到目前为止,因此 http 和 https 版本都是并行提供的)。
我需要的是.htaccess通过 http 和 https设置相同的 URI 来提供不同的文本文件?
就像http://example.com/proto.txt说“该站点通过 http”而https://example.com/proto.txt会说“该站点通过 https 提供服务”。
http ×10
apache-2.2 ×3
nginx ×2
ab ×1
apache-2.4 ×1
benchmark ×1
cdn ×1
htpasswd ×1
http-headers ×1
https ×1
iis-7.5 ×1
monit ×1
nameserver ×1
outage ×1
puppet ×1
puppetmaster ×1
ssl ×1