我在端口90上运行了一个运行wordpress的apache。我已经在它前面放了一个清漆缓存,并在端口80上运行清漆。
我在这里使用4.0 vcl:https://github.com/nicolargo/varnish-nginx-wordpress/blob/master/varnish/varnish4-wordpress
当我申请我的网站时:80我将301重定向到:90 ...当然,这不是清漆点?我该如何避免这种情况并坚持下去:80 ??
我是varnish / vcl的新手,所以我很遗憾不知道该找什么。我确定它在VCL中虽然:)
相关帖子(但此处未回答):Why is Varnish redirecting as 301?
答案 0 :(得分:1)
肯定不是在VCL。但是,请注意,从提供的default.vcl
开始构建,逐位添加,以了解它是如何工作的更好。
至于为什么它没有工作以及修复它的方法。
选项#1。告诉你的PHP真正的端口是什么。
也许, 最简单的解决方法是编辑wp-config.php
并告诉Wordpress请求的真正来源。在<?php
:
$_SERVER['SERVER_PORT'] = 80;
选项#2。只需使用相同的端口。
您实际上可以在Varnish和Apache中使用相同的端口号(!)。只需将Varnish和Apache绑定到不同的接口,但相同的端口号。对于Linux机器,这些是不同的端口,使用相同的端口号没有问题。
所以Apache会有:
Listen 127.0.0.1:80
VCL中将有Varn:
backend default {
.host = "127.0.0.1";
.port = "80";
}
选项#3。不要使用Apache。 Nginx救援。
一个不太容易解决的问题可能是切换到Nginx,它可以很容易地绕过重定向中的端口&#34;问题只需一行配置:
port_in_redirect off;
如果Wordpress站点URL(在wp-admin中)设置为包含端口号,那么它自然会重定向您的位置。 Wordpress站点URL中不应存在端口号。