博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《精通Nginx》一1.2 从源代码安装Nginx
阅读量:6092 次
发布时间:2019-06-20

本文共 1488 字,大约阅读时间需要 4 分钟。

本节书摘来异步社区《精通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 从源代码编译

可以从地址下载Nginx,从该页面找到.tar.gz或者.zip格式的下载分支,按照下面的步骤将下载的安装包解压到一个临时的目录中。

$ mkdir $HOME/build$ cd $HOME/build && tar xzf nginx-<version-number>.tar.gz

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

$ cd $HOME/build/nginx-<version-number> && ./configure

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

$ make && sudo make install

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

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

b1

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

b2

转载地址:http://cdqwa.baihongyu.com/

你可能感兴趣的文章
mochiweb 源码阅读(十五)
查看>>
前端面试中的常见的算法问题
查看>>
计算机语言的基本理论
查看>>
nodejs流之行读取器例子
查看>>
批量文件重命名工具
查看>>
简单说一下UWP中的JumpList
查看>>
unity将object[]或者string对象转换成枚举enum
查看>>
以太坊系列之六: p2p模块--以太坊源码学习
查看>>
使用scikit-learn解决文本多分类问题(附python演练)
查看>>
2018 年最值得关注的 JavaScript 趋势
查看>>
什么是区块链?超级账本 Brian Behlendorf 从五个方面教你认识
查看>>
Linux中的帮助功能
查看>>
针对Android的Pegasus恶意软件版本和针对iOS的有什么不同?
查看>>
全局探色器
查看>>
Hive Export和Import介绍及操作示例
查看>>
http://mongoexplorer.com/ 一个不错的 mongodb 客户端工具。。。
查看>>
上传jar包到nexus私服
查看>>
Why Namespace? - 每天5分钟玩转 OpenStack(102)
查看>>
Project:如何分析项目中的资源分配情况
查看>>
HDU 4803 Poor Warehouse Keeper (贪心+避开精度)
查看>>