标签: http

HTTP 主机名到 IP 地址路由

我目前有以下网络设置:

Router/Firewall > IIS Web Server

当 HTTP 请求通过时,IIS 将查看主机标头并决定返回哪个网站。

我现在的问题是我想在 web 服务器上设置虚拟机来托管基于 linux 的 web 服务器。我可以在路由器和主机虚拟机之间放置一个软件层,它会分析 HTTP 请求并根据主机名将请求转发到另一个 IP 地址?最终设置应如下所示:

Router/Firewall > Host VM > Hostname Redirect Software > VM Web Server

软件层可以是基于windows或linux的。

请您提供有关此问题的具体答案。非答案包括:购买新路由器、在 Windows 上运行 apache、更改我的主机文件、购买更多公共 IP 地址。

谢谢

virtualization http routing web-server

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

从 http 重定向到 https

我有一个运行在端口 443 上的 Hudson/Jenkins 安装,因此我可以使用https://ci.mydomain.com. 我没有像 Apache Httpd 那样在端口 80 上运行的网络服务器,但我希望如果用户键入http://ci.mydomain.com 它应该重定向到https://...

我试过iptables:

/sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 443
/sbin/iptables-save
chkconfig --level 35 iptables on
Run Code Online (Sandbox Code Playgroud)

但是浏览器告诉我,连接失败。所以我不想安装 Apache 网络服务器,我只想重定向http://ci.mydomain.com到https://ci.mydomain.com.

http https iptables redirect

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

我应该在仅 HTTPS 的服务器的端口 80 上使用 HTTP 代码 301 还是 426?

当用户在端口 80 上访问我的 SSL/TLS 专用服务器时,我应该用 做广告Upgrade Required (426)还是重定向Moved Permanently (301)?

每种方法的优缺点是什么?

据我所知,所有现代浏览器都支持 TLS 升级。然而,我发现w3m,lynx等等,别; curl、wget、 和各种机器人也不行。

ssl http tls 301-redirect

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

HTTP 代码 172 是什么意思?

浏览访问日志,有时我会看到

"POST / HTTP/1.0" 200

这应该没问题

但其他时候我看到

"POST / HTTP/1.0" 200 172

200旁边的172是什么意思?

另外,我看到一些有 7250 或 44

http apache-2.2

3
推荐指数
2
解决办法
1601
查看次数

If-Modified-Since vs. If-None-Match

通常的浏览器条件请求如下所示:

获取/i/yahoo.gif

HTTP/1.1 主机:us.yimg.com

If-Modified-Since: 2006 年 12 月 12 日星期二 03:03:59 GMT

If-None-Match: "10c24bc-4ab-457e1c1f" HTTP/1.1

但是 If-Modified-Since 和 If-None-Match 之间的关系是什么。或者?和?因此,如果其中任何一个“失败”,将发送新版本?

http

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

我的 ISP 正在做什么类型的魔术?

在尝试设置 OpenDNS 并且未能使网站过滤真正起作用时,我意识到我的 ISP 正在对所有 HTTP 请求做一些邪恶的事情。长话短说,如果有Host:标题,我使用什么 IP 地址都没有关系,我得到的网站取决于Host:标题而不是其他任何东西。

即使我在请求中指定 HTTP/1.0,它似乎也会自动使用 HTTP/1.1。

例子:

连接到google.com与Host: yahoo.com

$ echo -e "HEAD / HTTP/1.0\r\nHost: yahoo.com\r\n\r\n" | nc google.com 80
HTTP/1.1 301 Moved Permanently
Date: Mon, 02 Jan 2012 10:50:13 GMT
Location: http://www.yahoo.com/
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Cache-Control: private
Age: 0
Server: YTS/1.20.0
Connection: close

$
Run Code Online (Sandbox Code Playgroud)

连接到无效的 IP 地址 Host: yahoo.com

$ echo -e "HEAD / HTTP/1.0\r\nHost: yahoo.com\r\n\r\n" | nc 1.0.0.0 80
HTTP/1.1 301 Moved Permanently …
Run Code Online (Sandbox Code Playgroud)

http isp http-headers

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

使用 curl 请求重定向到带有锚标记的相对 URL 的 URL

我正在使用 curl 请求使用以下Location:行重定向到不同 URL 的 URL :

Location:/path/to/resource#name
Run Code Online (Sandbox Code Playgroud)

据我了解,根据 HTTP 规范,重定向响应中的那一行是无效的,因此整个 curl 调用失败是可以理解的(在这种情况下,响应代码为 400)。但是,使用 wget 或 Web 浏览器请求 URL 会成功呈现页面(我假设通过在重定向之前填充绝对路径或删除锚标记的启发式方法)。

有什么我可以做的让 curl 做同样的事情(做成功跟随重定向所必需的事情,即使它是“正式”格式错误的)?

编辑:更多细节。最终的响应代码是 400(不是 404 或其他)。当我做一个HEAD请求(有curl -I -L),我得到一个302 Found(有Location: /Error)重定向到500 Server Error。但是,如果我执行常规请求(没有-I选项但有-L选项),我会得到http_code(在 curl 中--write-out)的400. 因此,在这种情况下,HEAD 请求的功能似乎与标准 GET 不同。

http redirect http-headers curl

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

CloudFront - 用户不停地请求静态文件以增加您的账单?

有一次我有这种奇怪的疑惑。

如果我使用 CloudFront 作为我的 CDN,我会按对我的静态文件的请求付费。

在此处输入图片说明

所以疑惑来了。是否可以不停地请求同一个文件(使用脚本或其他东西),以提高您的账单?在我看来这是一个相当公平的问题,不是吗?

http amazon-s3 cdn amazon-cloudfront

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

在 Nginx 上启用 gzip

是的,我知道还有很多其他问题看起来与此完全一样。我想我一定看过所有这些。两次。绝望中,如果我的特定配置是问题,我将添加另一个。忍受我。

首先,问题:我需要做什么才能让 gzip 压缩工作?

我安装了一个运行 nginx 1.1.19 的 Ubuntu 12.04 服务器。Nginx 与以下软件包一起安装:

nginx
nginx-common
nginx-full
Run Code Online (Sandbox Code Playgroud)

http我的块nginx.conf看起来像这样:

http {
  include /etc/nginx/mime.types;

  access_log /var/log/nginx/access.log;

  sendfile on;

  keepalive_timeout  65;
  tcp_nodelay        on;

  gzip  on;
  gzip_disable "msie6";

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}
Run Code Online (Sandbox Code Playgroud)

PageSpeed 和 YSlow 都报告我需要启用压缩。我可以看到请求标头指示Accept-Encoding:gzip,deflate,sdch,但响应标头没有推论Content-Encoding标头。

我已经试过各种其他配置值(gzip_vary on,gzip_http_version 1.0,等),但没有喜悦。

据我所知,我只能假设 nginx 是通过压缩支持编译的,但是如果有任何方法可以验证这一点,我很想知道。

如果有人看到我遗漏的任何内容或可以建议进一步调试,请告诉我。我不是系统管理员,我是 Nginx 的新手,所以我已经用尽了我能想到或读过的所有内容。

谢谢。

linux ubuntu http nginx gzip

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

iptables - 删除所有 HTTP(S) 流量,但来自 CloudFlare

我想只允许来自 CloudFlare 的 HTTP(S) 流量。这样攻击者就不能直接攻击服务器。我知道 CloudFlare 主要不是 DDoS 缓解器,但我想尝试两种方法。

我目前只能访问 iptables(仅限 ipv4),但很快就会尝试安装 ip6tables。我只需要尽快解决这个问题。(我们正在收到(D)DoSed atm。)

我在想这样的事情:

iptables -I INPUT -s <CloudFlare IP> --dport 80 -j ACCEPT
iptables -I INPUT -s <CloudFlare IP> --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j DROP
iptables -I INPUT -p tcp --dport 443 -j DROP
Run Code Online (Sandbox Code Playgroud)

我知道 CloudFlare 有多个 IP,但仅举个例子。

这是正确的方法吗?

http iptables ddos block cloudflare

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