作者:山野木每子 | 来源:互联网 | 2023-05-24 19:57
我必须缓存多个后端服务器,我从Nginx切换到Varnish,最后发现2个服务器需要运行HTTP基本身份验证.我尝试这个链接http://blog.tenya.me/blog/2011/12/14/varnish-http-authentication,它对我不起作用(他们运行Varnish 3)是否有一种简单的方法来配置清漆中的基本身份验证4?
1> Jacob Rastad..:
您可以使用VMOD basicauth
安装Varnish VMOD
首先,您需要安装它.从Git repo下载basicauth的源代码.提取到你的homedir例如〜/ vmod-basicauth /
您还需要使用Varnish源来构建VMOD.
在Debian/Ubuntu类型中
apt-get source varnish
这会将源复制到您的密码.
然后执行此操作以安装它.请注意,您需要根据您的设置和清漆版本更改路径
cd ~/vmod-basicauth
./configure VARNISHSRC=$HOME/varnish-4.0.2
make
sudo make install
sudo make check
更新
似乎源已从Ubuntu和Debian软件包中删除(很可能是偶然的).
直接从Git下载源代码(v4.0.2)
制作清漆
您必须"制作"下载的来源
cd ~
wget https://github.com/varnish/Varnish-Cache/archive/varnish-4.0.2.zip
unzip varnish-4.0.2.zip
cd Varnish-Cache-varnish-4.0.2
sudo ./autogen.sh
sudo ./configure --prefix=/usr
sudo make
请注意,您不必安装源代码,因此请不要"make-install",因为这可能会破坏您当前的安装.
构建并安装VMOD
cd ~
./configure VARNISHSRC=$HOME/Varnish-Cache-varnish-4.0.2
make
sudo make install
sudo make check
如果无法自动检测,您还必须指定VMOD安装目录.如果./configure失败,请尝试此操作
./configure VARNISHSRC=$HOME/Varnish-Cache-varnish-4.0.2 VMODDIR=/usr/lib/varnish/vmods/
一些构建依赖项
我经常需要很多不同的构建依赖项,因此我经常在设置新的Varnish服务器时安装它们.
sudo apt-get install git-core zlib1g-dev automake build-essential libtool libssl-dev libreadline-dev libyaml-dev libsqlite3-dev ncurses-dev sqlite3 libxml2-dev libxslt1-dev libpcre3-dev libcurl4-openssl-dev python-docutils python-software-properties libvarnishapi-dev
配置Varnish以使用VMOD
它使用.htpasswd文件进行身份验证,而不是直接将密码存储在VCL中.
确保将"/var/www/.htpasswd"更改为htpasswd文件的路径.
#default.vcl
import basicauth;
sub vcl_recv {
if (!basicauth.match("/var/www/.htpasswd", req.http.Authorization)) {
return(synth(401, "Authentication required"));
}
}
#Prompt the user for a password
sub vcl_synth {
if (resp.status == 401) {
set resp.http.WWW-Authenticate = "Basic";
}
}