Я пытался установить Varnish Cache с Magento 2. Кажется, он работает нормально (хотя у меня все еще нет кеша для поиска и удаления, по-видимому ...), но мой .htaccess
перенаправление для моей страницы «скоро» больше не работает.
У меня стандартный .htaccess
код для перенаправления других пользователей (кроме меня) на мою страницу, которая скоро появится:
# MAINTENANCE-PAGE REDIRECT
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^xx\.xxx\.xxx\.xxx
RewriteCond %{REMOTE_ADDR} !^xx\.xxx\.xxx\.xxx
RewriteCond %{REMOTE_ADDR} !^xx\.xxx\.xxx\.xx
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx
# RewriteCond %{REQUEST_URI} !coming/soon.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif|css|js|svg|eot|woff|woff2|php) [NC]
RewriteCond %{REQUEST_URI} !^/coming/soon\.html$
RewriteRule ^(.*)$ https://example.com/coming/soon.html [R=302,L]
</IfModule>
Это отлично работает без активированного Varnish Cache. С помощью Varnish Cache все люди (в том числе и я) перенаправляются на мою страницу, которая скоро появится.
Я пытался установить свой кеш лака .vcl
файл, чтобы сделать то же самое, но у меня есть ошибка (с моим IP и без), с пустой страницей кэша лака и кодом ошибки 302 с моим URL https://www.example.com/coming/soon.html
:
acl nosip {
"xx.xxx.xxx.xxx";
"xx.xxx.xx.xxx";
"xx.xxx.xxx.xx";
"xxx.xxx.xxx.xxx";
}
sub vcl_recv {
# Methode ip exclusion
if (client.ip !~ nosip) {
return (synth(302, "https://www.example.com/coming/soon.html"));
}
}
Это правильный способ сделать это?
Лак выполнен в виде обратный прокси перед сервером приложений, поэтому REMOTE_ADDR
серверная переменная (когда она попадает на ваш сервер приложений), скорее всего, будет IP-адресом этого прокси-сервера, а не исходным IP-адресом клиента.
Предполагая, что Varnish устанавливает соответствующий X-Forwarded-....
заголовки запросов, тогда вам, вероятно, нужно будет проверить X-Forwarded-For
Вместо этого заголовок HTTP-запроса. Например:
RewriteCond %{HTTP:X-Forwarded-For} !^xx\.xxx\.xxx\.xxx
Обратите внимание, что X-Forwarded-For
Заголовок потенциально представляет собой строку IP-адресов, разделенных запятыми. IP-адрес каждого прокси-сервера, который проходит через него, добавляется в конец.