需求说明:godaddy主机空间性能比较强劲,正冰购买的 Godaddy Deluxe Linux美国主机空间配置如下:
- CPU为8核心的Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
- 内存 48 GB
- 空间 150 GB
- 无限流量
- 数据库 25 个 MySQL 数据库(每个限制 1 GB)
这么强劲的主机空间是挺不错的,无奈的是Godaddy主机空间有一个弊端,就是线路不佳,访问速度不快,而且时而会抽风。那么就需要一个可以解决抽风弊端并且可以让国内用户享受高性能Godaddy主机空间的廉价方案。
正冰给的解决方案:一台线路稳定并且速度不算慢的美国VPS(正冰选择了buyvm家的15美元年付128M内存,突发256M内存的VPS),安装nginx作为前端反向代理Godaddy主机空间,这样就完美解决了这个问题。
购买VPS,安装Nginx这些就不多说了,正冰直接采用lnmp一键安装包方便讲解:
开始讲解之前先约定信息:Godaddy主机空间IP为111.111.111.111,VPS的IP为222.222.222.222,需要反向代理的域名为blog.is36.com,将域名直接解析到222.222.222.222。
1、先在Godaddy主机空间正常绑定需要反向代理的网站域名blog.is36.com(注意:若需要反向代理www开始的域名比如www.is36.com会提示不允许www,那么只要绑定is36.com域名就可以了,Godaddy已经帮你把is36.com与www.is36.com都绑定上去了)
2、编辑Nginx的主配置文件/usr/local/nginx/conf/nginx.conf,在server{这个关键词上方加入如下代码(Nginx反向代理配置代码):
- client_body_buffer_size 512k;
- 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:128m inactive=2d max_size=10g;
以上配置最后一条语句的含义为:设置Web缓存区名称为cache_one,内存缓存空间大小为128MB,2天没有被访问的内容自动清除,硬盘缓存空间大小为10GB。
3、然后执行如下命令增加反向代理的缓存目录:
- mkdir -p /home/cache/temp
- mkdir -p /home/cache/path
4、修改VPS(CentOS系统)上的hosts文件/etc/hosts,执行如下命令(按实际修改):
- echo "111.111.111.111 blog.is36.com">>/etc/hosts
这一条是让VPS可以把blog.is36.com解析到111.111.111.111(Godaddy主机空间)取数据。
5、增加需要反向代理的配置文件(实际操作请把下面所有blog.is36.com字符串替换为你反向代理的网站域名即可):vi /usr/local/nginx/conf/vhost/blog.is36.com.conf
- server
- {
- listen 80;
- server_name blog.is36.com;
- access_log /home/wwwlogs/blog.is36.com.log access;
- location / {
- proxy_cache cache_one;
- proxy_cache_valid 200 304 3d;
- proxy_cache_key $host$uri$is_args$args;
- proxy_pass http://blog.is36.com;
- proxy_redirect off;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- expires 12h;
- }
-
- location ~ .*\.(php|jsp|cgi)?$
- {
- proxy_set_header Host $host;
- proxy_set_header X-Forwarded-For $remote_addr;
- proxy_pass http://blog.is36.com;
- }
- }
6、测试nginx配置信息以及重新加载nginx配置信息:
- /usr/local/nginx/sbin/nginx -t
- /usr/local/nginx/sbin/nginx -s reload
7、把网站程序通过ftp上传到Godaddy主机空间即可,注意ftp连接地址填写为111.111.111.111
以上配置可以让前端缓存网站的文件,加速客户端的读取,若不想让前端缓存文件,则文件/usr/local/nginx/conf/vhost/blog.is36.com.conf内容如下:
- server
- {
- listen 80;
- server_name blog.is36.com;
- location / {
- proxy_pass http://blog.is36.com;
- proxy_redirect off;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }