NMP下反代Gravatar配置让wordpress头像正常显示

  • 内容
  • 评论
  • 相关

大家都知道,Gravatar早在N年前就已经无法正常显示了,而最近一段时间,反代这个方法好像很流行,如果是自己通过VPS的方式来操作,就差不多是这样的效果了.如果您刚好也是使用的LNMP,那么可以试一下,这样的话,我们的博客是可以完全正常显示Gravatar头像的.


LNMP下反代Gravatar配置让wordpress头像正常显示

1.这里的运行环境为LNMP1.3

2.安装好LNMP1.3,将gravatar.suppore.cn解析记录指向vps,准备好ssl证书。新建虚拟主机,我这里是同时开启了80和443端口.


修改nginx默认配置

vim /usr/local/nginx/conf/nginx.conf,查找#limit_conn_zone $binary_remote_addr zone=perip:10m;,并在前面加入以下内容:

  1. client_body_buffer_size 512k;
  2. proxy_connect_timeout 5;
  3. proxy_read_timeout 60;
  4. proxy_send_timeout 5;
  5. proxy_buffer_size 16k;
  6. proxy_buffers 4 64k;
  7. proxy_busy_buffers_size 128k;
  8. proxy_temp_file_write_size 128k;
  9. proxy_temp_path /home/cache/temp;
  10. # 配置临时目录
  11. proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache:20m inactive=30d max_size=600m;
  12. #20m是内存占用,30d是30天无访问删除,600m是缓存占具硬盘空间,cache为缓存区名字.

3.创建缓存目录,并赋予权限

  1. mkdir /home/cache/path -p
  2. mkdir /home/cache/temp
  3. chmod 755 -R /home/cache

4.修改虚拟主机配置文件

vim /usr/local/nginx/conf/vhost/gravatar.suppore.cn.conf,以下直接贴出完整配置

  1. server
  2. {
  3. listen 80;
  4. server_name gravatar.suppore.cn;
  5. access_log /home/wwwlogs/gravatar.suppore.cn.log;
  6. location / {
  7. proxy_cache cache;
  8. proxy_cache_valid 200 304 7d;
  9. #200 304状态缓存7天,按实际情况修改
  10. #其他状态缓存(如502 404)10秒
  11. proxy_cache_valid any 10s;
  12. proxy_cache_key "$scheme$host$request_uri";
  13. #缓存key规则,用于自动清除缓存。
  14. proxy_pass https://secure.gravatar.com/;
  15. proxy_redirect off;
  16. proxy_set_header X-Real-IP $remote_addr;
  17. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  18. #向后端传递访客ip
  19. #limit_conn one 20;
  20. #limit_rate 200k;
  21. #20为单ip连接数,200k为单ip连接速度,若要开启请去掉#
  22. }
  23. }
  24. server
  25. {
  26. listen 443;
  27. server_name gravatar.suppore.cn;
  28. ssl on;
  29. ssl_certificate /root/ssl/cmsky.crt;
  30. ssl_certificate_key /root/ssl/cmsky.key;
  31. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  32. ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
  33. ssl_prefer_server_ciphers on;
  34. ssl_session_cache shared:SSL:10m;
  35. ssl_session_timeout 5m;
  36. access_log /home/wwwlogs/gravatar.suppore.cn.log;
  37. location / {
  38. proxy_cache cache;
  39. proxy_cache_valid 200 304 7d;
  40. #200 304状态缓存7天,按实际情况修改
  41. #其他状态缓存(如502 404)10秒
  42. proxy_cache_valid any 10s;
  43. proxy_cache_key "$scheme$host$request_uri";
  44. #缓存key规则,用于自动清除缓存。
  45. proxy_pass https://secure.gravatar.com/;
  46. proxy_redirect off;
  47. proxy_set_header X-Real-IP $remote_addr;
  48. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  49. #向后端传递访客ip
  50. #limit_conn one 20;
  51. #limit_rate 200k;
  52. #20为单ip连接数,200k为单ip连接速度,若要开启请去掉#
  53. }
  54. }

编辑完重载nginx生效.

service nginx reload

然后在你程序的相应文件出替换就行了,如wordpress是在主题的functions文件.

如果显示:the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful 则正常,否则按错误提示修改配置,错误提示会精确到哪一行的

5.在主题的functions文件中添加如下代码:

  1. //反代Gravatar头像from www.suppore.cn   
  2. function my_avatar($avatar) {   
  3. $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.yourdomain.com",$avatar);   
  4. return $avatar;   
  5. }   
  6. add_filter( 'get_avatar', 'my_avatar');  

请确保get_avatar函数没被占用哦,如果你的域名解析也生效了的话,头像应该能显示.

修改下后台的默认头像选项:

如果勾选了“神秘人”作为默认头像,那些没设置过Gravatar头像的用户留言后,会导致Wordpress无法拉取到默认头像,因此需要改成其他的选项.

http://suppore.cn/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

00:00 / 00:00
顺序播放