Ubuntu Server覆盖安装Nginx并配置Etags & Expires

image Ubuntu是基于Debian的,继承了Debian的优良特性,apt就是其一。每次要装软件直接apt-get install解决问题,非常方便。但是源里的软件相对比较过时,并且缺乏定制性(比如软件的小插件等)。

Ubuntu 9.04里带的Nginx是0.6.32版,据Jiucool情报讲,有漏洞。当时就想编译安装一个,但是苦于缺少一些库又没时间一一添加而没有安装。今天Ubuntu源里的Nginx更新到了0.6.35,修正了Bug,偶直接给Upgrade了一下。

这两天又折腾加速,YSlow评级要想到A的话,须让Nginx给静态元素加Etags,需要加个插件。加插件的话就要重新编译Nginx,干脆一不做二不休,干掉现在的0.6,搞个0.7.62玩。

最方便就是覆盖掉现在的老版本的Nginx,服务那些脚本就都不用重写直接可以用了。

1. 首先覆盖安装Nginx (部分操作需要sudo)

(1) 安装编译需要的各种库(有些可能多余,最后可以autoremove)。

apt-get install gcc libjpeg62-dev libjpeg62 libpng12-0 libpng12-dev libfreetype6 libfreetype6-dev libxml2 libxml2-dev zlib1g zlib1g-dev libglib2.0-0 libglib2.0-dev libbz2-1.0 libbz2-dev libncurses5 libncursesw5-dev libpcre3 libpcre3-dev libmhash-dev git-core

(2) 安装带Etags模块的Nginx,并把Nginx所有的配置设置成现在机器上老Nginx的配置。

curl -O http://sysoev.ru/nginx/nginx-0.7.62.tar.gz

tar -zxvf ./nginx-0.7.62.tar.gz

git clone git://github.com/mikewest/nginx-static-etags.git ./nginx-static-etags

cd nginx-0.7.62/

./configure --add-module=../nginx-static-etags --prefix=/usr --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --user=www-data --group=www-data --with-http_stub_status_module --with-http_ssl_module --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi

make

make install

效果:

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"

2. 然后配置Nginx以打开Etags和Expires

下面是一个server的一部分,把所有的静态元素加了Etags属性和Expires的时间。

location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|java|jar|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)$ {
      root /home/xq/kangzj.net/public_html/;
      FileETag on;
      expires 7d;
}

于是咱的首页也达到YSlow的A等级了,除了CDN做不了,其它全部A,总分92!晒下:

image

© 2009, kangzj. 版权所有.

Tags: , , , , , , ,
| 十月 15th, 2009 | Posted in 服务器OS |

11 Responses to “Ubuntu Server覆盖安装Nginx并配置Etags & Expires”

  1. chisdy Says:

    看不懂,看来只能守着xp了。

    [回复]

    kangzj 回复:

    @chisdy, 这个介绍的是服务器,不是桌面系统,呵呵;不过现在nginx有win版的,可以下来玩玩的

    [回复]

  2. joojen Says:

    太深奥了,啥也没看懂

    [回复]

    kangzj 回复:

    @joojen, 其实没有啦,就是编译安装nginx

    [回复]

  3. Hobo Says:

    随便看看,暂时还用不到,不过Nginx据说很快是吧

    [回复]

    kangzj 回复:

    @Hobo, 嗯,在高并发的时候表现比apache好很多,低负载差不多

    [回复]

  4. 蓝冰 Says:

    我对服务器没接触

    [回复]

    kangzj 回复:

    @蓝冰, 我对服务器比较有兴趣 :wink:

    [回复]

  5. 久酷 Says:

    你的服务器是ubuntu的啊…….

    [回复]

    kangzj 回复:

    @久酷, 我知道我错了… :oops:

    [回复]

  6. Magento开发 Says:

    加了expires后,威力无比!

    [回复]

Leave a Reply