Ubuntu server nginx编译安装实践

1.下载

1.1、准备OpenSSL

可以从连接ftp://ftp.openssl.org/source/ 看到所有的openssl的下载版本

这里我们选择最终版

wget ftp://ftp.openssl.org/source/openssl-1.0.0k.tar.gz

1.2、准备zlib

我这边打不开zlib官方网站,不过可以从CU下载

点击下载

zlib-1.2.7.tar.gz

1.3、准备pcre

安装pcre是为了让nginx支持正则表达式

可以从连接ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre

看到所有的pcre的版本

这里我们选择最新的一个发行版本

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gz

1.4、Nginx

官方nginx下载地址 http://nginx.org/en/download.html

目前最新版本是1.4.0,是一个稳定版,从nginx news上看,发布时间应该是两个月前,我们这里下载

最新版本的nginx

wget http://nginx.org/download/nginx-1.4.0.tar.gz


2.准备

2.1、安装zlib

tar zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure --prefix=/usr/local
make && make install

2.2、安装openssl

tar zxvf openssl-1.0.0k.tar.gz
cd openssl-1.0.0k
./config \
--prefix=/usr/local 
--openssldir=/usr/local/ssl
make && make install

./config shared \
    --prefix=/usr/local 
    --openssldir=/usr/local/ssl

make clean
make && make install

2.3、解压pcre

tar zxvf pcre-8.32.tar.gz

不要进行安装,留后边用

3、安装配置

3.1、安装nginx

mkdir /usr/local/nginx
tar zxvf nginx-1.4.0.tar.gz
cd nginx-1.4.0
./configure  \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_dav_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-mail \
--with-mail_ssl_module \
--with-pcre=../pcre-8.32 \
--with-zlib=../zlib-1.2.7 \
--with-debug \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi
make 
make install

3.2、相关flags功能介绍

--prefix #nginx安装目录,默认在/usr/local/nginx
--pid-path #pid问件位置,默认在logs目录
--lock-path #lock问件位置,默认在logs目录
--with-http_ssl_module #开启HTTP SSL模块,以支持HTTPS请求。
--with-http_dav_module #开启WebDAV扩展动作模块,可为文件和目录指定权限
--with-http_flv_module #支持对FLV文件的拖动播放
--with-http_realip_module #支持显示真实来源IP地址
--with-http_gzip_static_module #预压缩文件传前检查,防止文件被重复压缩
--with-http_stub_status_module #取得一些nginx的运行状态
--with-mail #允许POP3/IMAP4/SMTP代理模块
--with-mail_ssl_module #允许POP3/IMAP/SMTP可以使用SSL/TLS
--with-pcre=../pcre-8.32 #注意是未安装的pcre路径
--with-zlib=../zlib-1.2.7 #注意是未安装的zlib路径
--with-debug #允许调试日志
--http-client-body-temp-path #客户端请求临时文件路径
--http-proxy-temp-path #设置http proxy临时文件路径
--http-fastcgi-temp-path #设置http fastcgi临时文件路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi #设置uwsgi 临时文件路径
--http-scgi-temp-path=/var/tmp/nginx/scgi #设置scgi 临时文件路径

3.3、开机自启动配置

nginx_init

#! /bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# 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

DAEMON_OPTS=''

test -x $DAEMON || exit 0

# Include nginx defaults if available
#if [ -f /etc/default/nginx ] ; then
#       . /etc/default/nginx
#fi

set -e

. /lib/lsb/init-functions

#test_nginx_config() {
#  if $DAEMON -t $DAEMON_OPTS
#  then
#    return 0
#  else
#    return $?
#  fi
#}

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
                --exec $DAEMON || true
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
                --exec $DAEMON || true
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /var/run/$NAME.pid --exec $DAEMON || true
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /var/run/$NAME.pid --exec $DAEMON || true
        echo "$NAME."
        ;;
  reload)
        echo -n "Reloading $DESC configuration: "
        start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \
            --exec $DAEMON || true
        echo "$NAME."
        ;;
  status)
        status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
        ;;
  *)
        echo "Usage: $NAME {start|stop|restart|reload|force-reload|status}" >&2
        exit 1
        ;;
esac

exit 0
sudo cp nginx_init /etc/init.d/
sudo update-rc.d nginx_init defaults

3.4、ngnix配置

请参考

http://wiki.nginx.org/NginxChs

你可能感兴趣的:(nginx,安装,配置,编译)