美文网首页
利用Nginx反向代理来简单镜像HTTP(S)网站的方法

利用Nginx反向代理来简单镜像HTTP(S)网站的方法

作者: 7f4cf71ba8f6 | 来源:发表于2018-10-20 14:13 被阅读122次

说明:之前发过一个反代教程:Linux Centos下Nginx反代教程,现时发个Debian下反代HTTP(S)站点的教程。

部署nginx

系统要求:Debian 7

echo "deb http://packages.dotdeb.org wheezy all" >> /etc/apt/sources.list

apt-get update

apt-get install nginx

# 部署会提示输入两次 Y 来持续部署。

部署终了以后输入nginx -v ,查看nginx的版本,决定能否部署完成。

修正配置文件

找到上面这个文件,然后修正。

vi /etc/nginx/sites-available/default

根据上面的示例修正终了后就rebootNginx:

service nginx restart

然后访问你的域名看一看能否成功镜像,需要注意的一点是,如果被镜像的站点设置了防盗链,那么动态文件(js/css/图片)可能没法显现,这就没法子了。

1、HTTP示例

普通情况下只需要变动这几个参数。

server_name 你的域名;

sub_filter 欲被镜像的域名 你的域名;

proxy_set_header Referer http://欲被镜像的域名

proxy_set_header Host 欲被镜像的域名

proxy_pass http://欲被镜像的域名

以下示例是以go.doubi.date镜像www.baidu.com为例。自行掉换就中的参数:

第二段是屏蔽搜索引擎收录,譬如镜像伏笔VPS的站点,如果不屏蔽会以致收录流失。

server

    {

        listen 80;

        server_name go.doubi.date;

        if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {

        return  403;

        }

        fubitechation / {

        sub_filter www.baidu.com go.doubi.date;

        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 "";

        }

}

2、HTTPS示例

当你要镜像的站点不放行HTTP或者胁制HTTPS的时候,你就需要加上SSL来转成HTTPS了。

假定SSL证书文件位置是:/root/ssl.crt。

假定SSL密匙文件位置是:/root/ssl.key。

第二段的301码是,胁制走HTTPS,如果不需要可以免去。

第三段是屏蔽搜索引擎收录,譬如镜像伏笔VPS的站点,如果不屏蔽会以致收录流失。

同时上面这两个选项的记得把http://改成https://。

proxy_set_header Referer https://www.baidu.com

proxy_pass https://www.baidu.com

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 go.doubi.date;

        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;

        }

        fubitechation / {

        sub_filter www.baidu.com go.doubi.date;

        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)网站的方法相关的问题或者对欧洲主机 慢有疑惑也欢迎大家咨询。

相关文章

网友评论

      本文标题:利用Nginx反向代理来简单镜像HTTP(S)网站的方法

      本文链接:https://www.haomeiwen.com/subject/izqmzftx.html