Centos 子域的plesk清漆
我知道我在问题中添加了太多的信息,但请容忍我 我们的网站在域名上运行,比如域名1.com,ip地址是192.168.1.25。现在,我们有了另一台通过IP运行的服务器,例如192.168.1.26,它有plesk panel 12.5.30。请注意,我们尚未将我们的域名domain1.com指向192.168.1.26,因为我们希望保留该域名 它是私有的,直到我们设置好所有内容并准备开始生产。我们已经在plesk panel中使用domain1.com设置了我们的域,并将staging.domain1.com创建为子域 我们修改了本地计算机上的主机文件,将staging.domain1.com指向192.168.1.26,这样我们就可以从新服务器访问我们的网站,而主域domain1.com仍在192.168.1.25上运行,我们可以作为domain1.com访问 基本上,我们是在192.168.1.26 IP上建立登台环境。我们确实有CentOS 6在新的过渡域上运行,我们在plesk panel中启用了防火墙规则在某些IP上运行网站 我们想在新服务器上配置varnish,并安装了它。[我们已经在plesk论坛上投票支持varnish请求。]在plesk上,我们确实有apache在端口7080上运行,nginx在端口80上运行Centos 子域的plesk清漆,centos,varnish,plesk,Centos,Varnish,Plesk,我知道我在问题中添加了太多的信息,但请容忍我 我们的网站在域名上运行,比如域名1.com,ip地址是192.168.1.25。现在,我们有了另一台通过IP运行的服务器,例如192.168.1.26,它有plesk panel 12.5.30。请注意,我们尚未将我们的域名domain1.com指向192.168.1.26,因为我们希望保留该域名 它是私有的,直到我们设置好所有内容并准备开始生产。我们已经在plesk panel中使用domain1.com设置了我们的域,并将staging.doma
> netstat -ntlp | grep -w 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29795/nginx
tcp 0 0 :::80 :::* LISTEN 29795/nginx
> netstat -ntlp | grep -w 7080
tcp 0 0 0.0.0.0:7080 0.0.0.0:* LISTEN 10161/httpd
我们在DNS中设置了一个记录192.168.1.26-staging.domain1.com,我们在staging域上获得了正确的IP。我们将/etc/varnish/default.vcl文件设置如下:
backend default {
.host = "192.168.1.26";
.port = "80";
}
backend admin {
.host = "192.168.1.26";
.port = "80";
.first_byte_timeout = 18000s;
.between_bytes_timeout = 18000s;
}
sub vcl_recv {
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + cl$
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
req.request != "TRACE" &&
req.request != "OPTIONS" &&
req.request != "DELETE" &&
req.request != "PURGE") {
/* Non-RFC2616 or CONNECT which is weird. */
return (pipe);
}
if (req.http.cookie ~ "adminhtml=") {
set req.backend = admin;
}
}
以下是/etc/sysconfig/varnish文件:
VARNISH_LISTEN_PORT=6081
VARNISH_ADMIN_LISTEN_PORT=6082
VARNISH_VCL_CONF=/etc/varnish/default.vcl
我们启动了varnish服务-/etc/init.d/varnish start并检查了端口6081:
> netstat -ntlp | grep -w 6081
tcp 0 0 0.0.0.0:6081 0.0.0.0:* LISTEN 23745/varnishd
tcp 0 0 :::6081 :::* LISTEN 23745/varnishd
但当我们通过访问staging.domain1.com:6081检查我们的站点时,我们得到了响应,但浏览器中显示的URL指向domain1.com。所以我们将default&admin中的.host改为域名-staging.domain1.com,如下所示,然后重新启动了varnish服务,但它没有这样做
backend default {
.host = "staging.domain1.com";
.port = "80";
}
backend admin {
.host = "staging.domain1.com";
.port = "80";
.first_byte_timeout = 18000s;
.between_bytes_timeout = 18000s;
}
我不明白为什么它在添加真实(子)域名后不重新启动。另一件事:站点从端口80即nginx提供服务。理想情况下,清漆应该在端口80上运行,我们试图这样做,但不知何故我们失败了。我们按照-,在8080端口上运行nginx。基本上,我们在/usr/local/psa/admin/conf/templates下添加了自定义目录,并在那里复制了以下文件并更新到端口8080
- nginx.php
- nginxDomainForwarding.php
- nginxDomainForwardingIpDefault.php
- nginxDomainVhost.php
- nginxDomainVhostIpDefault.php
- nginxWebmail.php
- 端口6081上的清漆[VCL后端80]
- apache 7080
- nginx 80
- Varnish-端口80[default.vcl文件应包含8080端口的greb内容]
- Nginx-端口8080
- Apache-端口7080
基本上,我不明白这里出了什么问题。首先,不要使用带有Plesk或任何控制面板的清漆。这永远不会带来好结果。在裸体Linux服务器上使用它,以便更好地了解正在发生的事情 第二,你几乎做到了:)varnish VCL中的后端IP必须保持为IP。将域放在那里而不是IP是错误的。Varnish将自动将主机头从HTTP请求转换到底层后端服务器。 因此,如果您打开带有URL的页面,则会发生以下情况:
- 主机为:暂存域的HTTP请求已到达
- 然后Varnish将以相同的值传递给Apache/Nginx
- 将IP更改为80
- 将您的后端web服务器更改为其他端口,即8080
- 将varnish VCL后端定义调整为web服务器的IP和端口,即192.168.1.26和8080
- 调整您的web应用设置,特别是基本URL
port_in_redirect off;
如果全部失败,请使用专业安装服务:)