【问题标题】:Varnish and IIS清漆和 IIS
【发布时间】:2017-03-15 04:06:19
【问题描述】:

我已经在 Ubuntu 16.04 上配置了 Varnish。我配置了后端服务器和 vcl_recv 部分。 Varnish 配置在端口 80 上,IIS web 服务器也在端口 80 上运行。如何让 Varnish 服务器开始缓存 IIS web 服务器。 IIS 网络服务器也在运行 Drupal 7 和 8。我已经阅读了有关使用 Apache 和端口 8080 的文档,但这不是我的情况。我不确定如何将缓存与 Windows IIS Web 服务器集成。我的老板要求我让这个工作。我知道 IIS 上有缓存功能,但他们想使用 Varnish。因此,我们将不胜感激。

【问题讨论】:

    标签: varnish


    【解决方案1】:

    据我了解,您的 varnish 和 iis 不在同一台服务器上(一台 linux 和一台 windows)。

    设置起来应该非常简单。在 vcl 后端部分(ip 和端口 80)声明您的 iis 服务器并遵循文档,请记住,您的 varnish 服务器与您的后端服务器不同(在您的情况下为 iis,在文档中为 apache)。

    至于缓存,这将取决于您的需求。你需要告诉清漆你缓存什么以及缓存多长时间。您可以通过不同的方式来实现(在 iis Web 响应中返回缓存控制标头,在 varnish 中硬编码缓存时间...)。

    【讨论】:

    • 好的,谢谢。我如何测试缓存我的清漆服务器是否需要指向网络服务器,所以当你点击 url 时,它会首先进入清漆服务器
    • 当我现在输入 url 时它不可用,因为它指向我的清漆服务器,它应该在网络服务器之前首先获得请求。在 default.vlc 中,IIS Web 服务器被配置为使用端口 80,而 varnish 在端口 6081 上。所以缺少什么配置以允许 varnish 服务器首先获取请求以缓存信息。
    • 端口 6081 用于 varnish admin 我认为 Varnish 正在监听端口 80。你能分享你的 default.vcl 和你启动 varnishd 的参数吗?
    • varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,1024m
    • 后端drupal { .host = "drupal.miat.co"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } 后端 ncwrite { .host = "ncwrite.miat.co"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } sub vcl_recv { if (req.http.host == "drupal.miat.co"){ 设置 req.backend_hint = drupal; } elsif (req.http.host == "ncwrite.miat.co"){ 设置 req.backend_hint = ncwrite;返回(哈希); } }
    【解决方案2】:

    他们不能共享端口(如果在同一主机上)。否则,让 Varnish 在端口 80 上的“host1”上运行并在端口 80 上的“host2”上运行 IIS 是非常好的。

    如果在同一主机上:

    您必须更改 IIS 以在端口 8080 上工作,或者您必须更改 Varnish 以在端口 8080 上工作,然后将传入流量重定向到该端口。

    【讨论】:

    • 我的设置没有使用 Apache。我们正在使用 IIS 8 Web 服务器和带有 Varnish 4.0 的 Ubuntu 16.04。如何将流量重定向到首先点击 Varnish。现在网站指向 Varnish,但这不起作用。当有人点击 url 时,它应该首先访问 Varnish 服务器。
    • IIS 或 Apache 无关紧要。重要的是它们是否在同一台机器上。同一台机器=不能共享端口。不同的机器 = 不同的端口。
    • IIS Web 服务器在不同的机器上。 Varnish 在 Ubuntu 16.04 上运行。我已经配置了基本的 default.vcl vcl_recv 文件,但流量不会转到 Varnish DNS 管理员将 DNS 更改为指向 Varnish,但是当有人在 URL 中键入时找不到页面
    • 后端drupal { .host = "drupal.miat.co"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } 后端 ncwrite { .host = "ncwrite.miat.co"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } sub vcl_recv { if (req.http.host == "drupal.miat.co"){ 设置 req.backend_hint = drupal; } elsif (req.http.host == "ncwrite.miat.co"){ 设置 req.backend_hint = ncwrite;返回(哈希); } }
    • 后端drupal { .host = "drupal.miat.co"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } 后端 ncwrite { .host = "ncwrite.miat.co"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } sub vcl_recv { if (req.http.host == "drupal.miat.co"){ 设置 req.backend_hint = drupal; } elsif (req.http.host == "ncwrite.miat.co"){ 设置 req.backend_hint = ncwrite;返回(哈希); } }
    猜你喜欢
    • 2012-07-20
    • 2011-07-31
    • 2011-09-28
    • 2011-06-08
    • 2011-08-31
    • 1970-01-01
    • 2013-07-16
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多