nginx的编译安装1.10版本

1. 前言

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。
由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。(百度百科- http://www.dwz.cn/x32kG)

2. 依赖模块

  • nginx依赖以下模块:
    • rewrite功能需要 pcre库
    • gzip功能需要 zlib库
    • ssl功能需要 openssl库

3. 安装编译工具

  • 由于我的是新系统,所以安装以下编译时需要的工具,如果你的机器上已有或编译不出错,可以不装或选装
1
yum install gcc gcc-c++ automake make autoconf libtool make

4 . 获取并解压源码

  • 获取并解压pcre源码包
1
2
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar -xzvf pcre-8.38.tar.gz
  • 获取并解压openssl源码包
1
2
wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz
tar -xzvf openssl-1.0.2h.tar.gz
  • 获取并解压zlib源码包
1
2
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -xzvf zlib-1.2.8.tar.gz
  • 分别记下pcre-8.38, openssl-1.0.2h, zlib-1.2.8的源码路径,例:
  • /root/develop/web/pcre-8.38
    /root/develop/web/openssl-1.0.2h
    /root/develop/web/zlib-1.2.8

注意:nginx编译指定的是源码包所在的路径,不需要自己编译,nginx自己去编译依赖。

5. 编译安装nginx

  • 获取并解压nginx源码包 (添加了一个外部模块Nginx fastcgi_cache,为WordPress优化,利用其缓存加速)
1
2
3
4
5
wget http://nginx.org/download/nginx-1.10.0.tar.gz
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar -xzvf nginx-1.10.0.tar.gz
tar -xzvf ngx_cache_purge-2.3.tar.gz -C ../
cd nginx-1.10.0
  • 配置nginx编译选项
    • 复制下面从./configure 到 –add-module=../ngx_cache_purge-2.3的全部,粘贴到shell中回车即可
1
2
3
4
5
6
7
8
9
./configure --prefix=/opt/nginx \
--with-pcre=/root/develop/web/pcre-8.38 \
--with-openssl=/root/develop/web/openssl-1.0.2h \
--with-http_ssl_module --with-http_realip_module \
--with-zlib=/root/develop/web//zlib-1.2.8 \
--with-http_stub_status_module --user=www \
--with-http_gzip_static_module --group=www \
--with-http_v2_module --with-http_flv_module \
--add-module=../ngx_cache_purge-2.3
  • 开始编译Nginx
1
2
make
make install
  • 选项说明:
1
2
3
4
5
6
7
8
9
10
--prefix:nginx的安装目录
--with-pcre,--with-openssl,--with-zlib:【注意】这三个路径指定的是三个源码包所在的路径,nginx自己编译依赖
--with-http_ssl_module:使支持https请求,需已安装openssl
--with-http_realip_module:用于接受前端发来的IP头信息,从而获取到真实的用户IP。
--with-http_stub_status_module:获取nginx自上次启动以来的工作状态
--with-http_gzip_static_module:在线实时压缩输出数据流
--user,--group:设定程序运行的用户名及用户组
--with-http_v2_module:使支持http2协议
--with-http_flv_module:用来专门提供Flv服务的模块
--add-module:增加ngx_cache_purge-2.3模块

测试一下,查看版本:/opt/nginx/sbin/nginx -v

6. 其他配置

  • 添加nginx执行用户www和组www
1
2
groupadd www
useradd -r -g www www -M -s /bin/false
  • 创建网站根目录
1
2
mkdir -p /var/www/web/
chmod -R 775 /var/www/web/
  • 添加nginx命令到环境变量
1
ln -sv /opt/nginx/sbin/nginx /usr/bin
  • 其他:
    • 查看ngx_cache_purge是否安装
1
nginx -V 2>&1 | grep -o ngx_cache_purge
  • 如上命令显示有 ngx_cache_purge 字样,则表示已经安装

7. 错误的处理:

  • 暂无