《精通Nginx》——1.2 从源代码安装Nginx

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" >

时间: 2024-12-02 12:52:09

《精通Nginx》——1.2 从源代码安装Nginx的相关文章

《精通Nginx》一1.2 从源代码安装Nginx

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

《精通Nginx》——第1章 安装Nginx及第三方模块1.1 使用包管理器安装Nginx

第1章 安装Nginx及第三方模块 Nginx最初的设计是成为一个Http服务器,一个能够解决C10K问题的Http服务器.关于C10K这个问题,Daniel Kegel设计一个同时连接处理10000连接的web服务器.为了实现这个目标,Nginx通过基于事件的处理机制并且操作系统也要使用相应的事件机制,便可以解决C10K问题. 在我们开始探索如何配置Nginx之前,首先我们要安装它,这一章将详细讲述如何安装Nginx,以及如何获取正确的模块并且安装和配置它们.Nginx是模块化设计的,并且有非

《精通Nginx》一第1章 安装Nginx及第三方模块

第1章 安装Nginx及第三方模块 精通Nginx Nginx最初的设计是成为一个Http服务器,一个能够解决C10K问题的Http服务器.关于C10K这个问题,Daniel Kegel在http://www.kegel.com/c10k.html页面有具体描述,设计一个同时连接处理10000连接的web服务器.为了实现这个目标,Nginx通过基于事件的处理机制并且操作系统也要使用相应的事件机制,便可以解决C10K问题. 在我们开始探索如何配置Nginx之前,首先我们要安装它,这一章将详细讲述如

《精通Nginx》一1.1 使用包管理器安装Nginx

1.1 使用包管理器安装Nginx 使用包管理器安装Nginx的机会是你所使用的操作系统已经提供了Nginx的安装包.使用包管理器安装Nginx的方法很简单,只需要使用包管理器安装命令就可以了. Linux (基于deb) sudo apt-get install nginx Linux (基于rpm) sudo yum install nginx FreeBSD sudo pkg_install -r nginx 命令sudo表示的是通过操作系统中的超级用户('root')权限执行的命令.如果

CentOS7系统下用YUM安装Nginx详解_nginx

简介 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名. CentOS 7 条件 教程中的步骤需要root用户权限. 一.添加Nginx到YUM源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令: sudo rpm -Uvh http://nginx.org/packag

使用 ansible 安装 NGINX 和 NGINX Plus

在生产环境中,我会更喜欢做与自动化相关的所有事情.如果计算机能完成你的任务,何必需要你亲自动手呢?但是,在不断变化并存在多种技术的环境中,创建和实施自动化是一项艰巨的任务.这就是为什么我喜欢Ansible 的原因.Ansible 是一个用于 IT 配置管理,部署和业务流程的开源工具,使用起来非常方便. 我最喜欢 Ansible 的一个特点是,它是完全无客户端的.要管理一个系统,通过 SSH 建立连接,它使用Paramiko(一个 Python 库)或本地的 OpenSSH.Ansible 另一个

如何在 Ubuntu 15.04 中安装 nginx 和 google pagespeed

Nginx (engine-x)是一个开源的高性能 HTTP 服务器.反向代理和 IMAP/POP3 代理服务器.nginx 杰出的功能有:稳定.丰富的功能集.简单的配置和低资源消耗.nginx 被用于一些高性能网站并在站长之间变得越来越流行.本教程会从源码构建一个带有 google paespeed 模块的用于 Ubuntu 15.04 的 nginx .deb 安装包. pagespeed 是一个由 google 开发的 web 服务器模块来加速网站响应时间.优化 html 和减少页面加载时

Ubuntu上安装Nginx服务器程序及简单的环境配置小结_nginx

Ubuntu 从官方源安装 Nginx cd ~ wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key sudo nano /etc/apt/sources.list # 添加以下两句 deb http://nginx.org/packages/ubuntu/ precise nginx deb-src http://nginx.org/packages/ubuntu/ precise ng

CentOS6.6 32位 Minimal版本纯编译安装Nginx Mysql PHP Memcached

声明:部分编译指令在博客编辑器里好像被处理了,如双横线变成单横线了等等,于是在本地生成了一个pdf版本,在下面地址可以下载. LNMP+Memcached CentOS是红帽发行的免费的稳定Linux版本,在企业服务器应用中都会选用Minimal版本,因为Minimal是CentOS"最纯洁"的服务器系统,因为Minimal版本连vim编辑器都需要自己安装,Minimal组件最少,无桌面,扩展灵活,非常适合做服务器. 1.配置网卡 Minimal版本的CentOS被安装后,网卡驱动默认