如果我们有使用海外VPS搭建中文网站的用户肯定会有所感受到线路的不稳定,甚至大量丢包的问题,尤其是电信宽带的用户从晚上到半夜左右的时候尤为严重。不论出于何种原因导致的,我们必须自己考虑解决,要么选择亚洲线路或者国内服务器,要么可以采用反代加速的方法让其网站的速度加快。
在这篇文章中,尝试去利用NGINX实现反代加速网站的目的,以前有看过不少类似的文章,但都没有去实践,所以今天下午正好有点时间可以真实的操作一遍,同样的会以图文的形式记录下来,便于有需要的朋友可以查看使用。 第一、安装NGINX环境
第二、添加站点配置文件 A - 这里可以用LNMP环境包vhost添加站点,也可以手工在nginx环境中添加虚拟主机站点配置。 - vi /usr/local/nginx/conf/vhost/example.com.conf
复制代码红色example.com部分是我们的站点域名。 B - 设置目录权限 - mkdir /home/cache/path -p
- mkdir /home/cache/temp
- chmod 777 -R /home/cache
复制代码设置缓存目录权限存放路径。 C - 配置nginx conf文件 - proxy_connect_timeout 5;
- proxy_read_timeout 60;
- proxy_send_timeout 5;
- proxy_buffer_size 16k;
- proxy_buffers 4 64k;
- proxy_busy_buffers_size 128k;
- proxy_temp_file_write_size 128k;
- proxy_temp_path /home/cache/temp;
- #临时文件目录
- proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:5m inactive=7d max_size=1g;
- #5m为内存占用,1g为最大硬盘占用,cache_one为缓存区名称,如果需要修改对应修改。
复制代码需要对应B中的路径进行缓存的配置,一般直接用默认不要修改。 D - 配置example.com.conf - listen 80;
- server_name example.com www.example.com;
- #绑定的域名
- index index.php;
- #默认首页
- access_log off;
- #off 关闭日志
- location / {
- proxy_cache_key "$scheme://$host$request_uri";
- #缓存key规则,用于自动清除缓存。
- proxy_cache cache_one;
- #缓存区名称,与前面定义的相同
- proxy_cache_valid 200 304 3h;
- proxy_cache_valid 301 3d;
- proxy_cache_valid any 10s;
- #200 304状态缓存3小时
- 301状态缓存3天
- 其他状态缓存(如502 404)10秒
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- #向后端传递访客ip
- proxy_set_header Referer http://example.com;
- #强制定义Referer,程序验证判断会用到
- proxy_set_header Host $host;
- #定义主机头
- proxy_pass http://1.2.3.4;
- #指定后端ip,可以加端口
- #proxy_cache_use_stale invalid_header error timeout http_502;
- #当后端出现错误、超时、502状态时启用过期缓存,慎用。
- }
- }
复制代码域名解析的时候,指向前端IP就可以。注释部分我们可以学习一下,然后根据自己的需要是否需要进行修改。
第三、重启NGINX生效 /etc/init.d/nginx restart
过上面的4步骤,就可以实现利用nginx给我们的网站加速,比如利用一台香港VPS配置NGINX,给我们在网站数据在美国的VPS网站加速,可以提高网站用户访问的速度体验。
PS:如果是仅仅电信或者某个线路不稳定,我们可以利用DNSPOD解析,然后针对不同的线路进行单独的加速处理。效果还是比较明显的。
|