varnish - 配置 Varnish 4 多个域不同端口
问题描述
我得到这个来加载两个网站,但是我无法登录两个 wordpress 网站。
backend websiteone {
.host = "127.0.0.1";
.port = "7070";
}
backend websitetwo {
.host = "127.0.0.1";
.port = "2082";
}
sub vcl_recv {
if (req.http.host ~ "^(.*\.)?websiteone\.com$") {
set req.backend_hint = websiteone;
return (hash);
}
if (req.http.host ~ "^(.*\.)?websitetwo\.com$") {
set req.backend_hint = websitetwo;
return (hash);
}
}
解决方案
这是我为解决此问题所做的工作:
mkdir /etc/varnish/sites-enabled
cd /etc/varnish/sites-enabled
纳米siteone.com.vcl
sub vcl_recv {
if (req.http.host == "siteone.com") {
if (req.url ~ "/(cart|my-account|checkout|addons|/?add-to-cart=)") {
return (pass);
}
}
}
纳米sitetwo.com.vcl
backend sitetwo {
.host = "127.0.0.1";
.port = "2082";
}
sub vcl_recv {
if (req.http.host == "sitetwo.com") {
set req.backend_hint = sitetwo;
}
}
然后我不得不编辑 /etc/varnish/default.vcl
cd /etc/清漆/
纳米默认.vcl
如上所示,后端是为 sitetwo 配置的,但是 siteone 的后端是在 default.vcl 中配置的,所以我更改了
backend default {
.host = "127.0.0.1";
.port = "7070";
}
并将这两行添加到 default.vcl 的底部
include "sites-enabled/siteone.com.vcl";
include "sites-enabled/sitetwo.com.vcl";
现在一切似乎都正常工作!如果我必须添加更多站点,我所要做的就是在 /sites-enabled 文件夹中创建 sitetree.com.vcl 并粘贴
backend sitethree {
.host = "127.0.0.1";
.port = "port number";
}
sub vcl_recv {
if (req.http.host == "sitethree.com") {
set req.backend_hint = sitethree;
}
}
注意:Siteone 正在运行一个电子商务站点,因此如果您没有运行商店,那么您应该能够在 siteone.com.vcl 中使用以下内容
sub vcl_recv {
if (req.http.host == "siteone.com") {
set req.backend_hint = siteone;
}
}
推荐阅读
- c# - .NET Core 环境变量返回 null
- autosar - 我们如何在 RTE 中为应用层接口分配初始值?
- obfuscation - Dotfuscator 专业版字符串加密不起作用
- java - Tapestry 5.1 中的 AjaxResponseRenderer
- python - 作为子进程 1 运行连续脚本,直到子进程 2 中的循环完成
- sql - 查看 django-rest 中的 sql 查询
- python - np.where() 的内部工作原理以及如何检查空虚/虚无
- reporting-services - 如何根据参数值隐藏图表系列?
- python - 使用面板时 Altair 绘图未显示
- filtering - spring-boot-maven-plugin 没有过滤