经验分享:宝塔面板反代CDN设置与串站问题网站A显示网站B的解决方法

267 次浏览次阅读
没有评论

本文分享宝塔面板(aapanel)简易反代隐藏源站的设置方法,与遇到的窜站问题解决经验。也就是源站一个IP一个宝塔面板运行多个站点,代理落地一个IP一个宝塔面板代理源站多个站点时候出现的串站问题。首先分享宝塔面板两个设置方法。

反代设置方法一

经验分享:宝塔面板反代CDN设置与串站问题网站A显示网站B的解决方法

源站建好两个网站后,在代理服务器上的配置如上图所示,Target URL填写源站的IP即可。注意如果你部署的wordpress,需要在源站配置ssl,但不开启强制ssl,然后在代理站点开启强制SSL,并且Target URL填写的IP前要带https,否则会造成显示不正常,出现http和https混合内容Mix content问题。

反代设置方法二

经验分享:宝塔面板反代CDN设置与串站问题网站A显示网站B的解决方法

方法二是修改host,与方法一不同,反代配置里Target URL填写站点域名地址,如:www.baidu.com。设置完之后修改代理服务器的host文件,位于Root dir/ect/host,找到后编辑如下图所示

经验分享:宝塔面板反代CDN设置与串站问题网站A显示网站B的解决方法

在hosts文件下方添加多行配置代理服务器源站,如果你的源站IP是177.17.17.17,搭了www.baidu.com和www.360.com则添加这两行代码即可

177.17.17.17 www.baidu.com
177.17.17.17 www.360.com

修改hosts不生效问题

PS:8月10日更新,在某些机器上修改hosts文件重启后会失效,这时可以采用下面的方法:

Centos系统
方法 a:
文件 /etc/hosts 中的数据添加完毕后,在文件 /etc/cloud/templates/hosts.redhat.tmpl 中添加同样数据。
方法 b:
修改文件 /etc/cloud/cloud.cfg ,将 manage_etc_hosts 一项的值由 true 改为 false,然后在 /etc/hosts 中添加数据。

Debian 系统
方法 a:
文件 /etc/hosts 中的数据添加完毕后,在文件 /etc/cloud/templates/hosts.debian.tmpl 中添加同样数据。
方法 b:
修改文件 /etc/cloud/cloud.cfg ,将 manage_etc_hosts 一项的值由 true 改为 false,在 /etc/hosts 中添加数据。

串站问题解决方法

首先创建一个默认的站点,设置默认站点后,所有未绑定的域名和IP都被定向到默认站点,可有效防止恶意解析。在宝塔后台添加一个网站,域名可以随便填写一个不用的。

经验分享:宝塔面板反代CDN设置与串站问题网站A显示网站B的解决方法

修改网站配置文件,添加一行return 444;

经验分享:宝塔面板反代CDN设置与串站问题网站A显示网站B的解决方法

目前笔者尝试下来用方法一设置的反代会出现串站问题,方法二并没有这个问题。所以建议大家使用方法二配置代理,特别是搭建CDN需要为许多站点服务。

经验分享:宝塔面板反代CDN设置与串站问题网站A显示网站B的解决方法

设置好后记得重启nginx服务

反代缓存配置

#PROXY-START/
location ^~ /
{
    #缓存媒体文件
    location ~* .jpg|.png|.gif|.jpeg|.ttf|.webp|.woff|.woff2|.ico|.mp3|.mp4|.zip|.rar$
    {
        proxy_set_header Host www.你的站点.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_pass https://www.你的站点.com;
        proxy_cache cache_one;
    	proxy_cache_valid 3d;
        proxy_ignore_headers Cache-Control;
    	add_header X-Cache "$upstream_cache_status from $server_addr";
    }
    
    #缓存css、js、html
     location ~* .css|.js$
    {
        proxy_set_header Host www.你的站点.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_pass https://www.你的站点.com;
        proxy_cache cache_one;
    	proxy_cache_valid 1d;
        proxy_ignore_headers Cache-Control;
    	add_header X-Cache "$upstream_cache_status from $server_addr";
    }
    
    proxy_pass https://www.你的站点.com;
    proxy_set_header Host www.你的站点.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
}
 
#PROXY-END/

最后分享一下我用的反代缓存配置,以上就是今天自己遇到的反代问题与解决方法经验分享。

正文完
 
评论(没有评论)