У меня есть два веб-сайта, использующих Wordpress и Nginx, и я пытался поставить Varnish впереди, но при изменении порта прослушивания Nginx на 8080 все веб-сайты входят в цикл перенаправления.
На включенных сайтах у меня есть все разные хосты, разделенные файлом, как таковые:
server {
server_name xpto.xyz.com;
root /usr/share/nginx/www/xpto.xyz.com;
include global/common.conf;
include global/wordpress.conf;
}
В common.conf я настроил порт для прослушивания.
Что касается Varnish, у меня в файле varnish есть следующее:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
И в default.vcl есть:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
# Drop any cookies sent to Wordpress.
sub vcl_recv {
if (!(req.url ~ "wp-(login|admin)")) {
unset req.http.cookie;
}
}
# Drop any cookies Wordpress tries to send back to the client.
sub vcl_fetch {
if (!(req.url ~ "wp-(login|admin)")) {
unset beresp.http.set-cookie;
}
}
Кто-нибудь может мне помочь? Заранее спасибо.
Я думаю, что ваш wordpress, вероятно, выполняет перенаправление, потому что он видит трафик, поступающий на 127.0.0.1:8080, и хочет перенаправить на каноническое имя сайта. Попробуйте использовать curl
для извлечения сайта из разных слоев стека, и вы сможете убедиться в этом сами.