现在的位置: 首页 > IT运维 > 正文

Ubuntu 9.10安装Nginx 0.8.34和upstream fair

2010年03月08日 IT运维 ⁄ 共 3393字 暂无评论 ⁄ 被围观 1,735+

首先,为了编译 Nginx,应在新装好的 Ubuntu server 环境下安装如下软件包:

[php]sudo apt-get install build-essential libpcre3-dev libssl-dev libxslt-dev libgd2-xpm-dev libgeoip-dev[/php]

然后下载 0.8.34 版本的 Nginx:

[php]wget http://www.nginx.org/download/nginx-0.8.34.tar.gz[/php]

解压:

[php]tar xvzf nginx-0.8.34.tar.gz[/php]

下载 upstream fair 模块。upstream fair 是比内建的负载均衡更加智能的负载均衡模块。它采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小、加载时间长短智能的进行负载均衡。

[php]wget http://github.com/gnosek/nginx-upstream-fair/tarball/master[/php]

解压:

[php]tar xvzf gnosek-nginx-upstream-fair-2131c73.tar.gz[/php]

然后进入 nginx 源码目录执行 configure 配置编译选项。下面是我所使用的配置:

[php]./configure --conf-path=/etc/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--with-debug \
--with-http_stub_status_module \
--with-http_flv_module \
--with-http_ssl_module \
--with-http_dav_module \
--with-http_gzip_static_module \
--with-mail \
--with-mail_ssl_module \
--with-ipv6 \
--with-http_realip_module \
--with-http_geoip_module \
--with-http_xslt_module \
--with-http_image_filter_module \
--with-sha1=/usr/include/openssl \
--with-md5=/usr/include/openssl \
--add-module=/home/mikespook/gnosek-nginx-upstream-fair-2131c73[/php]

这个配置来自于 Jeff Waugh 的 PPA 中的 nginx 0.8.34 编译选项。配置、lock、pid 等文件的位置都是按照 ubuntu 系统惯例设置的。需要注意的是 –add-module 指向的是 upstream fair 的解压缩目录的绝对路径。这样就可以将 upstream fair 编译进 nginx。

然后编译并安装:

[php]make && make install[/php]

nginx 就安装成功了。目录 /var/lib/nginx 需要手工建立,否则启动 nginx 会报错:

[php][emerg]: mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)[/php]

建立shell 脚本 /etc/init.d/nginx(nginx):

[php]#! /bin/sh
 
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/nginx/sbin/nginx
NAME=nginx
DESC=nginx
 
test -x $DAEMON || exit 0
 
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi
 
set -e
 
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
 
exit 0[/php]

并执行命令:

[php]sudo update-rc.d -f nginx defaults[/php]

更新 rc 后,即可使用:

[php]sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart[/php]

控制 nginx 启动。
其他配置不再累述,张宴的 blog 里写得非常清晰。只补充一下 upstream fair 的使用,只要在 nginx 配置文件的 upstream 段加入 fair 开关即可:

[php]upstream backend {
server server1;
server server2;
fair;
}[/php]

当然,ubuntu 还可以用上面提到的 Jeff 的 ppa 源进行安装:

[php]echo "deb http://ppa.launchpad.net/jdub/devel/ubuntu hardy main" >> /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9EEF4A1
apt-get update
apt-get install nginx[/php]

简单快捷。

本文来自于网络,忘记原始作者及链接了,请原创作者看到后通知我加上转载链接,谢谢!

给我留言

您必须 [ 登录 ] 才能发表留言!

×
#