下载安装包并解压

  1. # 进入约定的安装包目录
  2. cd /约定目录/src/
  3. # 下载nginx安装文件,这里以 nginx-1.11.1 为例,其他的nginx包可以去官网查找
  4. wget http://nginx.org/download/nginx-1.11.1.tar.gz
  5. # 把安装包解压,会自动解压到 /约定目/src/nginx-1.11.1/ 文件夹里
  6. tar xzf nginx-1.11.1.tar.gz

nginx的配置文件

其实完全可以使用 Nginx 的默认配置文件,默认配置文件编译后的地址在 程序目录/conf/nginx.conf ,但如果你会频繁的更新 Nginx 版本的话配置文件最后”分离”,类似前后端分离一样,这样可以少”吵架”(解耦合),我们单独的把 Nginx 的所有配置,包括所有站点的配置、SSL 证书都放在 /约定目录/nginx-conf/ 目录里,如:

  1. /约定目录/nginx-conf/
  2. # nginx配置文件
  3. ./nginx.conf
  4. # nginx的其他配置
  5. ./mime.types
  6. # 站点配置
  7. ./conf/
  8. # 各个子站点目录
  9. ./www.xxoo.com.conf
  10. ./www.a.com.conf
  11. ...

/约定目录/nginx-conf/conf/ 目录里存放以网站为单位的配置文件,文件名以网站域名命名,这样可以配置分离,互不影响,而且好定位问题。

#配置nginx安装参数

  1. # 创建对应版本的程序目录,这个目录用来存放编译后的文件
  2. mkdir -p /约定目录/local/nginx-1.11.1/
  3. # 进入安装包解压后的目录
  4. cd /约定目录/src/nginx-1.11.1/
  5. # 开始配置
  6. ./configure --prefix=/home/local/nginx-1.11.1 --conf-path=/home/local/nginx-conf/vhost/nginx.conf --with-http_ssl_module --with-http_realip_module --with-http_dav_module --with-http_gzip_static_module --with-http_v2_module

其他的安装编译配置可点击:Nginx 编译参数

#编译nginx

  1. # 开始编译并安装,可能需要sudo权限
  2. make
  3. [sudo] make install

验证是否安装成功

  1. # 进入nginx执行目录
  2. cd /约定目录/local/nginx-1.11.1/sbin/

运行 ./nginx -v 查看版本,结果如:

  1. nginx version: nginx/1.11.1

如果你有开启 http_ssl_module ,可运行:./nginx -V 查看是否支持,结果如:

  1. nginx version: nginx/1.11.1
  2. built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
  3. built with OpenSSL 1.0.1e-fips 11 Feb 2013
  4. TLS SNI support enabled
  5. ...


重新编译安装

是指已经安装成功, 但想对 Nginx 添加个模块或者修改配置时需要重新编译。

#1. 下载对应版本 (如果不想更新版本可以忽略)

可以使用 nginx -V 查看当前程序的编译参数

  1. # 下载
  2. wget http://nginx.org/download/nginx-1.11.13.tar.gz
  3. # 解压
  4. tar xzf nginx-1.11.13.tar.gz

2. 重新编译

  1. # 配置
  2. ./configure --prefix=xxx 你的新参数
  3. # 编译
  4. [sudo] make
  5. 这时侯切记不要make install, 因为make install就会把文件复制到安装目录

3. 复制程序

  1. 新复制老版本, 以防出错
  2. cp /path/nginx /path/nginx.back
  3. # 停止服务
  4. /path/nginx -s stop
  5. # 复制新版本到安装目录
  6. cp objs/nginx /path/nginx
  7. # 查看新版本
  8. /path/nginx -t
  9. # 启动新版本
  10. /path/nginx

注意:如果在运行中直接覆盖 Nginx 会报: cp: 无法创建普通文件"nginx": 文本文件忙