я использую
Apache on port 8080
Nginx on 443
Varnish on 80
Я не хочу менять конфигурацию лака каждый раз, когда добавляю новый домен на сервер. Я хочу знать, есть ли какое-либо регулярное выражение или переменная, чтобы лак перенаправлял все домены на https.
sub vcl_recv {
if (client.ip != "127.0.0.1" && req.http.host ~ "example.com") {
set req.http.x-redir = "https://example.com" + req.url;
return(synth(850, ""));
}
}
sub vcl_synth {
if (resp.status == 850) {
set resp.http.Location = req.http.x-redir;
set resp.status = 301;
return (deliver);
}
}
у меня есть
example.com abc.com xyz.com 123.com www.420.com abc.123.com
Я хочу, чтобы все они перенаправляли на https со своими поддоменами (и, если возможно, со всеми будущими доменами).
Спасибо.
Попробуйте следующую конфигурацию
sub vcl_recv {
if (req.http.host == "www.example.com" &&
req.url ~ "^/admin")
{
if (req.http.X-Forwarded-Proto !~ "https") {
return (synth(850, "Moved Permanently"));
}
return (pass);
}
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
sub vcl_synth {
if(resp.status == 850) {
set resp.http.Location = "https://" + req.http.host + req.url;
set resp.status = 301;
}