如何在 Linux 上从源代码编译和安装 Nginx Web 服务器
据报道,截至今天,Nginx 是最受欢迎的 Web 服务器,为互联网上排名前 1000 的网站提供支持,这是有充分理由的。 Nginx 基于事件驱动架构构建,从第一天起就考虑到了可扩展性。 Nginx 能够在有限的硬件下维持 10K 并发连接,因此在任何关键任务 Web 服务器部署中都受到信任也就不足为奇了。
在本教程中,我将描述如何从源代码编译和安装 Nginx Web 服务器。虽然 Nginx 在主要 Linux 发行版上作为标准包提供,但如果您想启用自定义第三方模块(例如 PageSpeed),则需要从源代码构建它。请注意,Nginx 不支持 Apache Web 服务器等可加载模块。您需要选择并包含第三方模块才能在编译时使用。
在本教程中,我将在编译时启用以下额外的 Nginx 模块。
SSL 模块:启用 HTTPS/SSL 支持。
SPDY模块:启用对SPDY的实验性支持。
真实IP模块:根据HTTP请求头更改客户端的IP地址。
添加模块:在 HTTP 响应之前和之后添加文本。
XSLT 模块:借助 XSLT 模板转换 XML 响应。
图像过滤模块:使用
libgd
转换JPG/GIF/PNG图像。GeoIP 模块:使用 MaxMind 数据库对客户端的 IP 地址进行地理定位。
替换模块:将 HTTP 响应中的指定字符串替换为另一个字符串。
DAV模块:启用对WebDAV协议的支持。
FLV 模块:启用对 Flash 视频 (FLV) 流媒体视频的支持。
MP4模块:启用对H.264/AAC流媒体视频的支持。
Gunzip 模块: 在必要时解压缩
gzip
压缩的响应。Gzip 静态模块:发送带有
gzip
预压缩内容的响应。随机索引模块:在目录中提供随机选择的索引文件。
安全链接模块:检查请求链接的真实性。
存根状态模块:从 Nginx 获取一些状态。
Perl 模块:允许在 Nginx 配置文件中使用 Perl。
邮件SSL模块:启用邮件代理服务器对SSL/TLS协议的支持。
Google Perftools 模块:启用 Google 性能工具分析。
安装先决条件
首先,安装构建 Nginx 所需的软件包以及额外的 Nginx 模块。
在 Debian、Ubuntu 或 Linux Mint 上:
$ sudo apt-get install build-essential zlib1g-dev libpcre3-dev libssl-dev libxslt1-dev libxml2-dev libgd2-xpm-dev libgeoip-dev libgoogle-perftools-dev libperl-dev
在 Fedora、CentOS 或 RHEL 上:
$ sudo yum install gcc-c++ pcre-devel zlib-devel make wget openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools-devel
Nginx编译
从官方网站下载 Nginx 的最新稳定版本。
$ wget http://nginx.org/download/nginx-1.4.4.tar.gz
提取内容。然后使用适当的选项运行configure
,并按如下方式安装。
$ tar xvfvz nginx-1.4.4.tar.gz
$ cd nginx-1.4.4
$ ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --with-google_perftools_module --with-debug
$ make
$ sudo make install
安装后步骤
创建一个系统用户/组nginx
,Nginx 将以其身份运行。
$ sudo useradd -r nginx
创建一个启动/停止 Nginx 的 init 脚本。您可以从官方网站下载适用于不同 Linux 环境的初始化脚本。
此时,您应该能够按如下方式启动 Nginx。
$ sudo systemctl start nginx
或者:
$ sudo service nginx start
验证 Nginx 是否运行正常。
$ sudo netstat -nap | grep nginx

验证完毕后,将 Web 浏览器指向运行 Nginx 的主机的 IP 地址。您将看到以下 Nginx 欢迎页面。

安装后,Nginx的配置目录位于/etc/nginx
,文档根目录位于/usr/local/nginx/html
。