我有几个内部网站,我想通过插入一个URL与清漆。 例如,如果键入
http://www.example.com/serv1/--->http://192.168.0.1/application1 http://www.example.com/serv2/--->http://192.168.0.1/application2
但目前,我不明白如何configuration清漆。 我目前的configuration如下:default.vlc
vcl 4.0; backend vm1 { .host = "www.example.com"; .port = "81"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } backend serv1 { .host = "192.168.0.1"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } backend serv2 { .host = "192.168.0.3"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } sub vcl_recv { if (req.url == "^/serv1/*$") { set req.url = regsub(req.url, "^/serv1/*$","/application1"); set req.backend_hint = serv1; } else { set req.backend_hint = vm1; } if (req.url == "^/serv2/*$") { set req.url = regsub(req.url, "^/serv1/*$","/application2"); set req.backend_hint = serv2; } else { set req.backend_hint = vm1; } }
你可能意思是:
http://www.example.com/serv1/--->http://192.168.0.1/application1 http://www.example.com/serv2/--->http://192.168.0.3/application2
无论哪种方式,你也必须重写Host头。 并使用适当的正则expression式:
vcl 4.0; backend vm1 { .host = "www.example.com"; .port = "81"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } backend serv1 { .host = "192.168.0.1"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } backend serv2 { .host = "192.168.0.3"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } sub vcl_recv { if (req.url == "^/serv1($|/)") { set req.url = regsub(req.url, "^/serv1","/application1"); set req.http.host = "192.168.0.1"; set req.backend_hint = serv1; } else { set req.backend_hint = vm1; } if (req.url == "^/serv2($|/)") { set req.url = regsub(req.url, "^/serv2","/application2"); set req.http.host = "192.168.0.3"; set req.backend_hint = serv2; } else { set req.backend_hint = vm1; } }