美文网首页Nginx高端成长之路
Nginx系列之零基础编译安装Nginx

Nginx系列之零基础编译安装Nginx

作者: 一抹淡季 | 来源:发表于2019-01-24 16:26 被阅读7次

从本文开始,我将陆续书写有关Nginx相关学习内容。鉴于目前个人处于学习使用的阶段,在这里分享相关的学习使用经验,希望对大家的学习工作能有所帮助。

1.引言

Nginx是一款优秀的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,遵循BSD开源协议。具备高并发、高性能高可扩展性高可靠性热部署* 等特点。目前Nginx已被广泛使用,如百度、京东、新浪、网易、腾讯、淘宝等。同时也有许多的衍生版本,如淘宝TengineOpenResty等。

1.预备工作

  • 选择一款虚拟机,Windows 中可使用vmware workstationvirtualbox等,Mac 中可使用parallels desktop
  • 下载并安装一款Linux操作系统,可使用UbantuCentOS等,推荐使用CentOS 7

2.获取nginx

  • 文中使用Nginx 免费开源版作为实践版本,此外还有淘宝基于Nginx开发的版本 Tengie以及oprenresty等版本。
    访问Nginx开源版本页面,nginx.org,在download页面中下载对应版本,Nginx 分为稳定版和开发板,稳定版版本号为偶数,开发版为计数。


    NgInx 官网
  • 复制版本下载链接,使用wget命令下载。

$ wget http://nginx.org/download/nginx-1.14.2.tar.gz
  • 解压文件
$ tar -zxvf nginx-1.14.2

3.ngxin 目录结构

  • 解压后nginx主要目录结构如下所示。


    nginx目录结构
  • 目录介绍
    • auto:存放检测系统环境以及编译相关的脚本
      • cc:存放关于编译器相关的编译选项的检测脚本
      • lib:存放nginx编译所需要的一些库的检测脚本
      • os:存放与平台相关的一些系统参数与系统调用相关的检测
      • lib:存放nginx编译所需要的一些库的检测脚本
      • types:存放与数据类型相关的一些辅助脚本
      • conf:默认配置文件,在安装完毕后,会拷贝到安装目录中去,后期配置全靠此目录文件
    • contrib:存放一些实用工具,如目录中vim 拷贝到系统vim 后编辑配置文件时会有语法高亮提醒。
    • html: 存放默认的站点目录,在安装后,会拷贝到安装目录中去
    • man:帮助手册
    • srcnginx源码目录
      • corenginx的核心源代码,包括常用数据结构的定义,以及nginx初始化运行的核心代码如main函数
      • event:存放对系统事件处理机制的封装,以及定时器的实现相关代码
      • httphttp服务器相关的代码
      • mail:邮件相关代码
      • misc:一些辅助代码,如测试c++头的兼容性
      • os: 针对各种不同体系统结构所提供的系统函数的封装,对外提供统一的系统调用接口
      • stream:实现四层协议转发,负载均衡等内容

4.编译安装

  • configre 选项介绍
    nginx 源码编译需要使用configure 脚本自动生成Makefile文件,在编译之前我们先了解一下configure支持的常用选项。针选项可以大致分为以下几类(个人分类,仅供参考)。更多内容可以查看官方文档 相关介绍说明。

    • 安装相关,主要指安装时需要配置的,如安装路径等。如以下选项:
      • --prefix:指定安装路径,不指定则使用默认安装路径
      • --sbin-path :指定可执行文件安装路径
    • 需要启用的,配置默认不编译,因业务需要需编译的,一般以with开头,如以下选项:
      • --with-debug:声明启用调试日志
      • --with-poll_module:声明启用poll模块
    • 需要关闭的,默认编译,安装不想编译的,一般以without开头,如以下选项:
      • --without-http_gzip_module:声明禁用gzip模块
      • --without-http_rewrite_module:声明禁用rewrite模块
  • 生成Makefile:

    $ ./configure --prefix=/usr/local/nginx
    
    • 回车后会看到configure自动脚本运行的全过程,这个过程会调用auto目录中的脚本进行系统环境监测及配置文件的检查。
    • 该过程可能会提示缺少依赖,如pcre,根据提示内容使用yum安装即可。
    ./configure: error: the HTTP rewrite module requires the PCRE library.
    You can either disable the module by using --without-http_rewrite_module
    option, or install the PCRE library into the system, or build the PCRE library
    statically from the source with nginx by using --with-pcre=<path> option.
    
  • 编译安装
    生成Makefle没有问题后,即可直接进行编译安装操作。

    $ make & make install
    
  • 完成安装后目录结构


    编译安装后目录
    • conf:存放所有配置文件
    • html:存放网站站点目录
    • log:存放日志文件
    • sbin:存放nginx主程序

5. 启动测试

  • 启动:运行sbin目录nginx即可启动nginx服务
$ /usr/local/nginx/sbin/nginx
  • 测试服务(此处使用curl请求服务器),浏览器
$ curl 127.0.0.1
  • 返回如下结果则表明服务启动正常。
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

6. 总结

本文主要介绍了基于CentOS编译安装nginx相关的操作。同时介绍了nginx的目录文件结构及相关的一些配置选项,希望对想入门学习nginx的小伙伴们提供帮助。在下篇文章中我将介绍nginx信号量控制及配置文件相关的内容。

相关文章

网友评论

    本文标题:Nginx系列之零基础编译安装Nginx

    本文链接:https://www.haomeiwen.com/subject/lcbyjqtx.html