[success]今天有一位经常逛我博客的朋友留言说要隐藏ip。我刚开始也不知道这个是什么,后面他发了邮件给我,然后我就照着邮件说的去百度了一下,所以就打算写这篇文章,说一下这个东西的重要性[/success]
这里非常感谢@buvidcai指出这个问题。欢迎大家参观他的网站https://buzhimaple.com/
为什么隐藏需要隐藏自己网站的ip?
直接看着这两篇文章2.浅谈个人博客网站or屌丝vps服务器暴露真实IP的危险性
如何隐藏真实ip?
1.是利用国内外一些免费的CDN加速服务。比如国内的百度云加速、加速乐、360网站卫士以及安全宝,国外的CloudFlare。2.考虑入住阿里云或腾讯云,然后使用免费的WAF防御服务,也能使用cname解析,起到改变网站IP的效果
3.使用盾机服务
4.使用域名导向
我们先来使用一下腾讯云的CDN服务。这个是我谷歌看别人推荐的还不错的,大家可以自己找一个适合的就可以了。
腾讯可以提供每月10G的免费流量。我这里因为是新用户注册,所以每月还有50G免费加速流量,所以感觉还是不错的。
开通好cdn后我们进入管理中心。
然后添加一下我们的域名,其实这里按照默认填就好了。
添加后提示是否需要进入域名管理,这里我们用的是阿里云的域名,所以这里就直接进入更多配置了。
然后我们配置一下CNAME。
我们到阿里云的域名解析那里直接添加记录就可以了。
记录值填上我们的CNAME值就好了。
[dangerbox title=”注意”]
我们这里需要把原来的这个解析记录全部删除,因为cdn的作用就相当于把我们的服务器的内容缓存起来,我们访问域名其实就相当于访问cdn服务器。
[/dangerbox]
至于cdn的配置,大家默认就好,如果你有特殊要求的话自己看官方文档。。。
这里补充一下https的设置。
下面的配置写成这样
自己把自己从阿里云申请的证书的pem格式的内容和key填进去就好了。下面记住要选择协议跟随。
1、域名要有备案号,网站必须合法
2、要结合网站实际情况配置缓存时间,别乱缓存一气,导致CDN越用越慢
3、回源域名,不能和当前CDN域名一样,注意修改为源站域名,系统有时候会默认为当前CDN域名
4、Wordpress博客,推荐搭配WP-Super-Cache缓存插件使用
下面我们可以来ping一下我们的域名
如果没问题,下面就出现的不是我们服务器的ip地址。
然后我们同样可以发现,我们博客的访问速度瞬间加快了很多,因为这个是缓存了我们的页面,相当于加速了一样。
当然,cdn是收费的,所以大家觉得贵的就可以别用了。。。
当然,做完了这一步还是远远不够的,我们还需要解决一下回源域名的问题。
因为wordpress并不是纯静态的页面,所以当你访问后台时无法访问导致
所以我们需要先到缓存配置那里把我们wordpress的后台加进去,让它不要缓存我们的后台。
这里可以看一下我的设置
然后下面我们还要记得把回源域名给改一下,我们可以自己到阿里云里面添加一个域名作为回源域名。注意这个域名指向我们的服务器ip。
还有宝塔里面也要记得把我们的回源域名给加上去。
还有最后也是最重要的一步就是wordpress多域名访问,因为我们的回源域名也要确保可以正常访问wordpress,我们可以修改配置文件(wp-config)。
大家可以先到到这一行
[block]
define('WP_DEBUG', false);
[/block]
然后在下面添加下面的代码就可以了
[highlight lanaguage=”PHP”]
$domain = array("xiaoyou66.com", "域名2", "域名3"); if(in_array($_SERVER['HTTP_HOST'], $domain)){ define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); } //下面这个是确保域名可以正常访问资源 define( 'WP_CONTENT_URL', '/wp-content');
[/highlight]
然后后面就可以正常的访问后台了。。。。
这样不仅加速了我们的博客访问,而且还隐藏了我们的正式ip,一举两得。。
还有其他的我这里就暂时不介绍了,这里我也只用过这种方法。
[dangerbox title=”遇到的坑”]
1.如果无法访问页面或者从其他页面跳转过来无法访问的话,一般是防盗链的问题
2.防盗链把白名单设置为空还是无法访问的情况建议重新部署一遍,我就是这样搞好的
如果按我上面这样设置的话,有非常多问题,因为wordpress并不是纯静态的,首先第一个就是两个域名的冲突问题,文章界面跳转链接你要想办法整成相对链接。同时我这个还涉及到评论提交的问题,因为我得到评论提交是用ajax异步提交的,所以还要解决ajax异步加载的跨域问题。总之,不建议全部缓存,我们可以只缓存静态资源,比如图片,css,js等样式。
[/dangerbox]
下面我把我其中的一些解决方案记下来把。
1.全文如何相对链接
其实加一个函数就可以解决这个问题
[highlight lanaguage=”PHP”]
//全站显示相对路径同时优化sitemap add_filter( 'home_url', 'cx_remove_root' ); function cx_remove_root( $url) { if(!is_feed() && !get_query_var( 'sitemap')){ $url = preg_replace( '|^(https?:)?//[^/]+(/?.*)|i', '$2', $url ); return '/' . ltrim( $url, '/' ); }else{ return $url; } }
[/highlight]
2.ajax异步加载跨域问题
直接到请求的服务器那个运行防跨域即可
ajax本身的问题无法解决,我谷歌也找了很多方法,目前最省事的就是下面这个方法了。
[highlight lanaguage=”PHP”]
/*允许跨域请求*/ header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
[/highlight]