我目前有以下网络设置:
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 地址。
谢谢
我有一个运行在端口 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.
当用户在端口 80 上访问我的 SSL/TLS 专用服务器时,我应该用 做广告Upgrade Required (426)还是重定向Moved Permanently (301)?
每种方法的优缺点是什么?
据我所知,所有现代浏览器都支持 TLS 升级。然而,我发现w3m,lynx等等,别; curl、wget、 和各种机器人也不行。
浏览访问日志,有时我会看到
"POST / HTTP/1.0" 200
这应该没问题
但其他时候我看到
"POST / HTTP/1.0" 200 172
200旁边的172是什么意思?
另外,我看到一些有 7250 或 44
通常的浏览器条件请求如下所示:
获取/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 之间的关系是什么。或者?和?因此,如果其中任何一个“失败”,将发送新版本?
在尝试设置 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)
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) 我正在使用 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 不同。
有一次我有这种奇怪的疑惑。
如果我使用 CloudFront 作为我的 CDN,我会按对我的静态文件的请求付费。

所以疑惑来了。是否可以不停地请求同一个文件(使用脚本或其他东西),以提高您的账单?在我看来这是一个相当公平的问题,不是吗?
是的,我知道还有很多其他问题看起来与此完全一样。我想我一定看过所有这些。两次。绝望中,如果我的特定配置是问题,我将添加另一个。忍受我。
首先,问题:我需要做什么才能让 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 的新手,所以我已经用尽了我能想到或读过的所有内容。
谢谢。
我想只允许来自 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 ×10
http-headers ×2
iptables ×2
redirect ×2
301-redirect ×1
amazon-s3 ×1
apache-2.2 ×1
block ×1
cdn ×1
cloudflare ×1
curl ×1
ddos ×1
gzip ×1
https ×1
isp ×1
linux ×1
nginx ×1
routing ×1
ssl ×1
tls ×1
ubuntu ×1
web-server ×1