香港的 VPS 速度杠杠的,但是贵 + 带宽不足……其实我有一台 VPS 在香港,但已经被几个朋友用钱“霸占”了,如果我的博客也搬过去,无法负荷了,当然可以加内存神马的,但要加钱不合算啊,囧~ 就这样,自己的博客无法进驻自己的 VPS……
说实在的,我还是喜欢把博客放在美国的服务器,linode 嘛太贵鸟,对于单个博客来说太浪费,而且国人一窝蜂+linode太出名,好像现在很容易碰到被x的IP,好吧,被x无所谓啦,linode 换机房很容易啦,主要是 $ 的问题 - -
我用过好多个 vps 商的 vps,自己觉得比较 ok 的有 Linode.com、ramhost.us、ecvps.com、vr.org、kvmla.com、fedvps.com
linode 贵,ramhost 因为机房问题导致电信访问慢,vr 最低套餐都是 1G 以上了(我要那么大干嘛),最后我就一直把博客放在 fedvps.com 了,都 1 年多了吧,一直很稳定,期间换了 IP。
呃,扯远了,我是想说,既然香港的 VPS 无法再负荷我的博客,那么是否可以用 Nginx 的反向代理 + proxy_cache 缓存来加速呢?答案是肯定的,但同时因为技术不够无法完美解决也是纳闷的。
其实我以前折腾过这种方案,而且也上线了几天,发现 cookie 会混乱 + 会丢失,后来不得不停止了这种方式来加速。
最近不知道哪根筋不对,又开始折腾这个方式了,最终我解决了 cookie 问题,但是测试中发现:无法实现“有了新评论更新首页和当前文章的缓存”……
刚欣喜若狂又打入冷宫了……然后,只能妥协了:博客反向代理,只缓存图片、js、css等静态文件,这样也能起到加速作用。下面简单说说配置:
1. 服务器 A 为后端,正常方式配置网页服务器,如神马 lnmp 一键包/手动安装 lnmp 啊/lamp/虚拟主机也行,反正就是能正常运行/访问你的博客就行了(我的博客就在 fedvps.com 的 vps,因为服务器在美国,所以国内访问速度没香港的服务器快)
- 这里举例这服务器 A 的 IP 为 100.111.122.133
2. 服务器 B 作为前端(如我的香港 VPS),通常都是选择速度快的,不然就没意义了——哦,也不对,其实这样可以提高安全性。
这里贴一下我的反向代理 nginx 设置:
- 这里举例这服务器 B 的 IP 为 200.211.222.233
- 这里举例博客的域名为 ooxx.com
2.1 下面这些放在 nginx.conf 的 http 段里面,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; # 配置临时目录、缓存路径(注意要先建立这2个目录,要在同一个硬盘分区,注意权限) proxy_temp_path /var/run/nginx_proxy_temp 1 2; proxy_cache_path /var/run/nginx_proxy_cache levels=1:2 keys_zone=OOXX:32m inactive=7d max_size=1g; # keys_zone=OOXX:32m 表示这个 zone 名称为 OOXX,分配的内存大小为 32MB # levels=1:2 表示缓存目录的第一级目录是 1 个字符,第二级目录是 2 个字符 # inactive=7d 表示这个zone中的缓存文件如果在 7 天内都没有被访问,那么文件会被cache manager 进程删除 # max_size=1G 表示这个zone的硬盘容量为 1G server{ listen 80; server_name ooxx.com www.ooxx.com; index index.php; access_log off; location / { proxy_pass http://100.111.122.133; #proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer http://$host; } # nginx 中的 Purge 配置 location ~ /purge(/.*) { #允许的IP allow 127.0.0.1; deny all; proxy_cache_purge OOXX "$scheme://$host$1"; } # 配置好后,可以手动清理某个缓存页面/文件,例如: # http://ooxx.com/abc.png # 改为 http://ooxx.com/purge/abc.png 就可以清理这个文件的缓存了 # 只对图片、js、css 等静态文件进行缓存 location ~* \.(png|jpg|jpeg|gif|ico|js|css)$ { #------------------------------------- proxy_cache OOXX; proxy_cache_key "$scheme://$host$request_uri"; proxy_cache_valid 200 304 7d; proxy_cache_valid 301 3d; proxy_cache_valid any 10s; #-------------------------------------- proxy_pass http://100.111.122.133; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer http://$host; } }
其他具体就不注释说明了,反正我也是搜来的,自己搜吧。
2.2 然后把 ooxx.com/www.ooxx.com A记录解析到服务器 B(200.211.222.233)就行了
我这样搞一下,我博客首页本来 ctrl+f5 打开速度(电信)是 4~6 秒变成 2~4 秒——速度强迫症真可怕。
哦,顺便说下吧,http://www.fedvps.com/ 其实是我一个朋友经营的 vps,用了那么久,一直很稳定,有需要 VPS 的朋友可以考虑,价格也比较适中。
其实呢,用国人经营的 VPS 有个好处,有问题都用普通话 ʅ(‾◡◝)ʃ
----
题外:
- 最近有点懒散,哦,是非常懒散,有工作也拖拖拉拉的,这神马状况
- 缺乏锻炼,努力中……(思想斗争+行动总是走不到一块去)
- 看剧集很容易入戏,忘记时间……怎么破?
- 还是看剧集:把自己也扔进里面的世界了,所以看完会失落,都是神马年龄了还这样……Orz
- 本文标题:折腾: Nginx 方便的反向代理
- 本文链接:https://zww.me/z-turn-the-reverse-proxy-nginx-easily.z-turn
- 发布时间:2013年10月27日 22:09
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
先沙发一下。
还是空间问题,很多博客的问题。
还好空间稳定下来了,不用折腾,呵呵 :) 3发。
@郑永
竟然三连发……有一个被 axiu 带坏了
nginx的反代还是很容易配置的,前端如果速度好,缓存静态一来可以提升速度二来可以保护后端
@老谢
全部缓存的话就难配置了,那个cookie问题很烦
接上去
再来个...响应号召
默默的放在128M的廉价VPS上。。。表示目前满足了
@小周博客
够用满足就好
很是羡慕香港vps,缺银两啊
@空空裤兜
国内才快
@平板盒子
如果可以国内的话何必这么折腾 - -
@空空裤兜
我也是……大部分都要每月150了,囧
我也打算入住香港了,美国线路现在有点坑
@大发
口水
我还是来双响炮吧,不三联发了
我觉得香港的基本可以了 不用追求这么高吧
@逆袭者
呃,我文中不是写了无法进驻嘛……
还是在用KVMLA的,一年多了,感觉还不错!
@jalena
的确很不错
楼上头像难道是奥巴马?
@郑永
一看就是啦,哈哈哈
还玩的这么高级
@平板盒子
没$囧折腾
不明觉利
@Alex Gao
不玩不明啊
好厉害的样子!
@axiu
没事折腾折腾
Warning: Undefined array key 1 in /www/wwwroot/zww/zww.me/wordpress/wp-content/plugins/wp-useragent/wp-useragent-detect-webbrowser-version.php on line 32
阿里云一年才500多元,足够你博客开销了
@jack
问题是这里讨论的是不备案的情况下。
可怕得2S强迫症。。。
@tiandi
的确可怕,我还想1S内呢……
现在速度很快!
前几天首页出问题了.
@yxiao
前几天应该是在调试,偶尔会碰到首页缓存错误
你也用的wp-useragent.没识别出我的win8.1哦.
@yxiao
插件还没更新吧