最近发了几篇镜像谷歌的教程,然后就有人问我镜像其他网站的方法,那我就写个教程吧。
利用nginx的反向代理优势来镜像 HTTP(S)网站。
其他的一些镜像Google的教程:
安装Nginx
LNMP一键包方式 安装Nginx
当然,lnmp一键包我还是推荐 军哥的LNMP一键包 !
配置文件示例
以下教程 域名以 www.abc.com
为例,被镜像网站以 www.baidu.com
为例
然后访问你的域名看一看是否成功镜像,需要注意的一点是,如果被镜像的网站设置了防盗链,那么静态文件(js/css/图片)可能无法显示,这就没办法了。
参数解释
一般情况下只需要更改这几个参数。
server_name 你的域名; sub_filter 欲被镜像的域名 你的域名; proxy_set_header Referer http://欲被镜像的域名; proxy_set_header Host 欲被镜像的域名; proxy_pass http://欲被镜像的域名;
HTTP 示例
以下示例是以 www.abc.com
镜像 www.baidu.com
为例。自行替换 其中的参数:
第二段是 屏蔽搜索引擎收录,比如镜像自己的网站,如果不屏蔽会导致 收录流失。
注意:不管你是镜像 www.baidu.com 还是 www.google.com.hk (不要直接使用 .com 会被谷歌自动根据VPS所在地区重定向的),他们两个目前都是强制重定向到 https ,这意味着如果你只配置了 http 反向代理,那么访问反向代理域名后会重定向到 https 的目标域名,所以你也必须配置 https 才行。
# 下面这段代码才是 HTTP 完整示例配置文件,注意使用时修改里面的默认域名等信息。 server { listen 80; server_name www.abc.com; if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) { return 403; } location / { sub_filter www.baidu.com www.abc.com; sub_filter_once off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer http://www.baidu.com; proxy_set_header Host www.baidu.com; proxy_pass http://www.baidu.com; proxy_set_header Accept-Encoding ""; } }
HTTPS 示例
当你要镜像的网站不开放 HTTP或者强制HTTPS 的时候,你就需要加上 SSL 来转成 HTTPS 了。
假设SSL证书文件位置是:/root/ssl.crt
假设SSL密匙文件位置是:/root/ssl.key
第二段的 301 代码是,强制走HTTPS,如果不需要可以去掉。
第三段是 屏蔽搜索引擎收录,比如镜像自己的网站,如果不屏蔽会导致 收录流失。
同时下面这两个选项的记得把 http://
改成 https://
。
proxy_set_header Referer https://www.baidu.com; proxy_pass https://www.baidu.com;
# 下面这段代码才是 HTTP 完整示例配置文件,注意使用时修改里面的默认域名等信息。 server { listen 80; listen 443 ssl; ssl on; ssl_certificate /root/ssl.crt; ssl_certificate_key /root/ssl.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; server_name www.abc.com; add_header Strict-Transport-Security "max-age=31536000"; if ( $scheme = http ){ return 301 https://$server_name$request_uri; } if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) { return 403; } location / { sub_filter www.baidu.com www.abc.com; sub_filter_once off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer https://www.baidu.com; proxy_set_header Host www.baidu.com; proxy_pass https://www.baidu.com; proxy_set_header Accept-Encoding ""; } }
转载请超链接注明:逗比根据地 » 另一种利用Nginx反向代理来简单镜像 HTTP(S)网站 的方法
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
比如我网站,镜像域名就屏蔽了搜索引擎,谷歌只收录了 doub.io 的网站域名。
csr的提交到这里,来申请SSL证书。
crt证书不是生成的,而是alpha颁发的,会发邮件给你的。
crt和key合并毛线???一个是证书一个是密匙,密匙是用来解密证书的!!!!
真是醉了。
然后这个网站会给你注册域名的邮箱发一个验证链接,点开链接然后会问你是否同意,你点第一个同意的按钮,然后就会把SSL证书发到你的邮箱,然后邮件里会有Alpha中级证书的链接。
新建一个.crt格式的文件,然后把你的SSL证书复制进去,然后再把 Alpha中级证书加到最后面。
这样你就有了 一个 .key密匙,一个.crt 证书文件了。CSR提交后就没用了。
如果是LNMP一键包,那么就不去添加虚拟主机了,直接修改nginx.conf中的server部分。
如果你是apt-get inst nginx安装的话,直接把文章中域名部分改成IP就行了。