本节书摘来自异步社区《精通Nginx》一书中的第1章,第1.2节,作者: 【瑞士】Dimitri Aivaliotis 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 从源代码安装Nginx

Nginx代码提供了两个独立的下载分支—标准版和开发版。开发分支是一个正处于积极开发状态的版本。在这个版本中将会有一些新的功能被集成到其中,在标准版中是找不到这些功能的。当一个“开发”版被发布时,它会经历同样的QA和作为标准版的一组类似功能的测试。因此无论哪一个分支都可以用于生产环境。两者主要的不同在于对第三方模块的支持。在开发版本里内部的API可能会改变,而标准版本却保持不变,因此为了向下兼容第三方模块,在标准版本中第三方模块都可以有效使用。

1.2.1 准备编译环境
为了从源代码编译Nginx,系统需要具备某些必要的条件。除了编译器之外,如果想启用SSL支持和能够使用rewrite模块,那么还需要提供相应的OpenSSL和PCRE (Perl Compatible Regular Expressions)库及开发头文件。这依赖于系统,也有可能在系统中这些必要条件已经被默认安装了,如果没有安装,那么需要从其安装包安装或者是从源码下载并解压安装,但是要在Nginx的配置文件中指定它们在系统中安装的位置。

如果在配置文件中使用了–with-<library>=<path>选项,那么Nginx将试图建立一个静态的依赖库。如果你想是的Nginx不依赖于系统的任何其他部分,也可能是你想多榨取一点nginx二进制额外的性能,那么你可能会使用构建静态库的做法。如果你使用的外部库的功能只能从某个版本起(例如,NPN[Next Protocol Negotiation] TLS扩展从OpenSSL 1.0.1版本有效),那么你就不得不将其指定到特定版本解压后的源代码路径。

根据你自己的喜好,可能还会提供其他的、可选的安装包。这些安装包包括MD5和SHA-1以支持哈希算法、zlib压缩库、libatomic库。在Nginx中,很多地方会使用到哈希算法,例如,为了计算URI哈希从而计算缓存key。zlib压缩库被用于投递gzip压缩的内容。如果atomic_ops库有效,那么Nginx将会使用它实现自动内存更新操作,以便实现高性能的内存锁定代码。

1.2.2 从源代码编译
可以从 http://nginx.org/en/download.htm 地址下载Nginx,从该页面找到.tar.gz或者.zip格式的下载分支,按照下面的步骤将下载的安装包解压到一个临时的目录中。

$ mkdir $HOME/build
$ cd $HOME/build &amp;&amp; tar xzf nginx-&lt;version-number&gt;.tar.gz

使用下面的命令来配置Nginx。

$ cd $HOME/build/nginx-&lt;version-number&gt; &amp;&amp; ./configure

然后使用下面的命令编译并且安装。

$ make &amp;&amp; sudo make install

下表的配置选项将帮助您设计出自己的Nginx二进制。这些选项对Nginx都是有效的,模块可以被独立激活。

在编译自己的二进制Nginx时,你会有很大的灵活性来包含你仅使用的功能。你已经说定使用哪个用户运行Nginx了吗?你要使用默认的logfile位置,以便不用在Nginx的配置文件明确地说明它们吗?表1-1所示是配置选项列表,通过它来帮助你设计你自己的nginx命令。


如表1-2所示,可以优化编译,这正是下表中的选项的用武之地。


https://yqfile.alicdn.com/38475ff96d635e5e1a9c7659ecbbec85d4fa3078.png" >

《精通Nginx》——1.2 从源代码安装Nginx相关推荐

  1. linux下安装nginx详细步骤_mac下安装nginx

    前言:nginx的强大不必多言,所以很自然很应当的我也来玩一玩.但是网上许多安装和配置都太那啥了,在这里真的想说一句带有引战性质但我真的无意引战的言论:现在的好多程序员的文笔实在是烂,写的教程让人着实 ...

  2. nginx 重定向_虚拟机中安装nginx,重定向到resin

    为节省时间,可直接改用yum安装 (1)yum install -y gcc-c++ (2)yum install -y pcre pcre-devel (3)yum install -y zlib ...

  3. cent6.8 nginx php,CentOS 6.8 安装Nginx

    本章主要介绍了在CentOS6.8上如何正确安装Nginx. 下载: 需要到Nginx的官网下载安装文件. 联接:http://nginx.org/ 版本:nginx-1.12.1.tar.gz 安装 ...

  4. 源码包nginx 配置php,源码安装Nginx和PHP

    1.安装编译环境 yum -yinstall gcc gcc-c++ automake autoconf libtool make glibc yum -y install libmcrypt-dev ...

  5. nginx php 扩展,源码安装Nginx+PHP-FPM及扩展

    安装依赖组建yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel  ...

  6. ubuntu 14.04 nginx php mysql_Ubuntu 14.04安装Nginx+PHP+MySQL

    基于Ubuntu 14.04搭建Nginx+PHP+MySQL环境,以下全部命令行操作: 1,由于需要大量的权限操作,方便起见临时提升权限,使用root账号 sudo su 2,安装apt源管理工具. ...

  7. freebsd nginx php mysql,FreeBSD8.2安装Nginx +Mysql+PHP+ Discuz_X2

    FreeBSD8.2安装Nginx +Mysql+PHP+ Discuz_X2 所需软件包及其版本: nginx-1.0.1.tar.gz pcre-8.12.tar.bz2 mysql-5.0.41 ...

  8. nginx etag php,Linux下安装nginx如何启用ETag

    nginx更新速度杠杠的,不到一年时间就更新了这么多版本了,今天一口气从1.2.3升级到1.8.0.为什么升级?因为nginx提供了ETag功能,对流量控制很有效果. 升级之前特意去查了一下资料,看看 ...

  9. 第1章 安装Nginx及第三方模块

    第1章 安装Nginx及第三方模块 标签: 精通Nginx 精通Nginx – 个人笔记 Nginx中文文档 阅读 开源软件架构:Nginx 第1章 安装Nginx及第三方模块 C10K问题 使用包管 ...

最新文章

  1. php null运算符,PHP7 Null合并运算符
  2. pygame的字体画不出来_5毛钱的圆珠笔画的?每一幅都是大师之作,网友:为何我画不出来...
  3. 【PHPWord】TextRun
  4. 《C语言及程序设计》实践參考——分数的累加
  5. [JDBC] 获取数据库连接方式
  6. koreader下载_koreader下载_koreader安装_koreader最新版_koreader安卓版下载_koreader app_易玩网...
  7. weka的java环境配置_windows下安装和配置Weka
  8. 网络教育计算机 判断,北京师范大学网络教育计算机作业1、4、8
  9. 使用fail2ban防止暴力破解ssh及vsftpd密码
  10. Ansbile实战经验
  11. windows游戏编程:球球大作战(吃鸡版)源码
  12. idea抽取重复方法快捷键_idea 常用快捷键
  13. pb 使用mysql_pb连接mySql数据库
  14. 零代码开发HTTP REST服务接口(数据服务接口)
  15. 设置下拉菜单的几种方法
  16. python 嵌入式webserver 服务器 状态监控
  17. Django搭建网站的个人笔记记录
  18. Linux终端出现:To run a command as administrator (user “root“), use “sudo <command>“.
  19. 独立开发变现周刊(第41期):一个开源项目一个人每月收入8万美金
  20. matlab的一点内容

热门文章

  1. 自己收集的一些技术blog-javascript
  2. 邮件服务器SASL TLS 反垃圾邮件系统
  3. 冯小刚导演系列公益短片之羽泉版
  4. 【C++】 15_类于封装的概念
  5. 如何通过人工智能“避开”内容安全的“坑”?
  6. HTML5 WebAudioAPI简介(一)
  7. 自己制作 SPx N合1 自动安装盘(x86)
  8. 文本域textarea 的值也是用value 来表示的。
  9. 使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析
  10. 比特币分叉两年记:聊聊当年为什么要分叉?