Blog

Blog

PHODAL

Varnish Nginx 多站点配置

继之前讲述《Amazon Linux Varnish 3 配置》,也简单地记录一下Nginx Varnish 3多站会的配置。

开始之前

你可能需要参考一下之前Varnish的安装部分,一个简单的映射关系如下图所示:

Varnish Nginx Multiple Site

当请求的域名是nginx1.phodal.com 就转向本地的8081端口,交由nginx来处理。

当请求的域名是nginx2.phodal.com 就转向本地的8082端口,交由nginx来处理。

Nginx Varnish 3站点配置

Nginx 多站点简单配置示例

A站的配置如下,端口用的是8081

server {
  listen 8081;
  server_name nginx1.phodal.com;
  index index.html index.htm;

  root /home/www/nginx1;

}

A站的配置如下,端口用的是8082

server {
  listen 8082;
  server_name nginx2.phodal.com;
  index index.html index.htm;

  root /home/www/nginx2;

}

这样我们只需要在我们的defaulct.vcl指向上述的域名就可以了。

Varnish 多站点配置

backend nginx1 {
  .host = "127.0.0.1";
  .port = "8081";
}

backend nginx2 {
  .host = "127.0.0.1";
  .port = "8082";
}

sub vcl_recv {
    if (req.http.host ~ "nginx1.phodal.com") {
        set req.http.host = "nginx1.phodal.com";
        set req.backend = nginx1;
    } else if (req.http.host == "nginx2.phodal.com") {
        set req.http.host = "nginx2.phodal.com";
        set req.backend = nginx2;
    }
}

当然一个真正的配置是不会这么简单地。。

重启nginx,varnish服务

Nginx重新载入配置

测试Nginx语法是否正确

 nginx -t

Nginx可以用

  /etc/init.d/nginx reload

重新载入配置

 service nginx reload

或者重启,只需要将上面的reload改为restart

Varnish重新载入配置

测试Varnish语法是否正确

varnishd -C -f /etc/varnish/default.vcl

可以直接用命令

varnish_reload_vcl

也可以用和nginx一样的方法

 service varnish restart

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签