很多情况下我们都有可能会用到Nginx反向代理比如现在大陆全面封禁了谷歌搜索引擎如果你想使用的话就需要翻墙
或者如果你网站使用的wordpress环境搭建。那么就很有必要使用Nginx反向代理Gravatar头像服务器了。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
如果你对nginx配置也并不是很了解,可以参考网上相关的文档,实现基本的反向代理还是没有多大问题,下面就来分享一下。
此方法适用于军哥的LNMP一键包、AMH主机面板(当然AMH自带了反代模块)下面就开始。
server { listen 80; server_name exehack.net www.exehack.net; location / { proxy_pass http://www.baidu.com; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
Nginx 反向代理缓存需要集成ngx_cache_purge 模块,
如果没有,则需要重新编译Nginx,具体做法请参考张戈博客之前分享的文章
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_cache_path /tmp/cache/proxy_cache levels=1:2 keys_zone=cache_one:200m inactive=30d max_size=5g; //如不存在改目录请自行创建proxy_temp_path /tmp/cache/proxy_cache/temp; //路径自行创建
location /avatar { proxy_pass http://cn.gravatar.com; proxy_redirect off; proxy_set_header Host cn.gravatar.com; proxy_cache cache_one; proxy_cache_valid 200 302 304 365d; proxy_cache_valid 301 1d; proxy_cache_valid any 1m; add_header Images-Cache "$upstream_cache_status from $host"; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; access_log off; log_not_found off; expires max;}
保存配置之后,先执行如下命令测试配置是否正确:
linux-test:~ # /usr/local/nginx/sbin/nginx -t#如下显示则为正确无误:nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
确认无误之后,执行如下命令重载nginx,让配置生效:
linux-test:~ # /usr/local/nginx/sbin/nginx -s reload
//更改gavatar来源function mytheme_get_avatar($avatar) {$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"www.exehack.net",$avatar); //请修改为自己的首页域名return $avatar;}add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );
以上即是小残博客目前在用的优化方案,里面有一条是建议静态资源使用二级域名,并拒绝cookies的写入。所以本文还能继续拓展折腾一下:将头像地址改成二级域名。比如右键查看张戈博客评论头像,可以发现已经变成 cdn.exehack.net 了。其实就是新增一个 cdn.exehack.net 的 server 模块而已,非常简单,感兴趣的朋友可以自己折腾一下,本文就不多做说明了。