黑帽联盟

 找回密码
 会员注册
查看: 1277|回复: 1
打印 上一主题 下一主题

[基础服务] 实战利用Nginx实现反代加速网站目的 解决海外VPS线路不稳定问题

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    如果我们有使用海外VPS搭建中文网站的用户肯定会有所感受到线路的不稳定,甚至大量丢包的问题,尤其是电信宽带的用户从晚上到半夜左右的时候尤为严重。不论出于何种原因导致的,我们必须自己考虑解决,要么选择亚洲线路或者国内服务器,要么可以采用反代加速的方法让其网站的速度加快。

    在这篇文章中,尝试去利用NGINX实现反代加速网站的目的,以前有看过不少类似的文章,但都没有去实践,所以今天下午正好有点时间可以真实的操作一遍,同样的会以图文的形式记录下来,便于有需要的朋友可以查看使用。
    第一、安装NGINX环境
    这里我们可以使用直接编译源的方法安装NGINX,也可以直接用LNMP一键包安装带有NGINX环境的系统环境(https://bbs.cnblackhat.com/thread-961-1-1.html)。

    第二、添加站点配置文件
    A - 这里可以用LNMP环境包vhost添加站点,也可以手工在nginx环境中添加虚拟主机站点配置。
    1. vi /usr/local/nginx/conf/vhost/example.com.conf
    复制代码
    红色example.com部分是我们的站点域名。
    B - 设置目录权限
    1. mkdir /home/cache/path -p
    2. mkdir /home/cache/temp
    3. chmod 777 -R /home/cache
    复制代码
    设置缓存目录权限存放路径。
    C - 配置nginx conf文件
    1. proxy_connect_timeout 5;
    2. proxy_read_timeout 60;
    3. proxy_send_timeout  5;
    4. proxy_buffer_size 16k;
    5. proxy_buffers  4 64k;
    6. proxy_busy_buffers_size 128k;
    7. proxy_temp_file_write_size 128k;
    8. proxy_temp_path /home/cache/temp;
    9. #临时文件目录
    10. proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:5m inactive=7d max_size=1g;
    11. #5m为内存占用,1g为最大硬盘占用,cache_one为缓存区名称,如果需要修改对应修改。
    复制代码
    需要对应B中的路径进行缓存的配置,一般直接用默认不要修改。
    D - 配置example.com.conf
    1. listen 80;
    2. server_name example.com www.example.com;
    3. #绑定的域名
    4. index index.php;
    5. #默认首页
    6. access_log off;
    7. #off 关闭日志
    8. location / {
    9. proxy_cache_key "$scheme://$host$request_uri";
    10. #缓存key规则,用于自动清除缓存。
    11. proxy_cache cache_one;
    12. #缓存区名称,与前面定义的相同
    13. proxy_cache_valid 200 304 3h;
    14. proxy_cache_valid 301 3d;
    15. proxy_cache_valid any 10s;
    16. #200 304状态缓存3小时
    17. 301状态缓存3天
    18. 其他状态缓存(如502 404)10秒
    19. proxy_set_header X-Real-IP $remote_addr;
    20. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    21. #向后端传递访客ip
    22. proxy_set_header Referer http://example.com;
    23. #强制定义Referer,程序验证判断会用到
    24. proxy_set_header Host $host;
    25. #定义主机头
    26. proxy_pass http://1.2.3.4;
    27. #指定后端ip,可以加端口
    28. #proxy_cache_use_stale invalid_header error timeout http_502;
    29. #当后端出现错误、超时、502状态时启用过期缓存,慎用。
    30. }
    31. }
    复制代码
    域名解析的时候,指向前端IP就可以。注释部分我们可以学习一下,然后根据自己的需要是否需要进行修改。

    第三、重启NGINX生效
    /etc/init.d/nginx restart

    过上面的4步骤,就可以实现利用nginx给我们的网站加速,比如利用一台香港VPS配置NGINX,给我们在网站数据在美国的VPS网站加速,可以提高网站用户访问的速度体验。

    PS:如果是仅仅电信或者某个线路不稳定,我们可以利用DNSPOD解析,然后针对不同的线路进行单独的加速处理。效果还是比较明显的。


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    148

    主题

    9

    听众

    337

    积分

    版主

    Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    擦汗
    2018-6-6 11:33
  • 签到天数: 348 天

    [LV.8]以坛为家I

    没试过,后面我看看
    来自安卓客户端来自安卓客户端
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部