nginx短篇(1):安装nginx

栏目: 服务器 · Nginx · 发布时间: 5年前

内容简介:所属分类:nginx
  • A+

所属分类:nginx 运维技术

我决定,从头到尾,将之前的nginx笔记重新整理一遍。

在重新整理的过程中,我会尽量通俗的描述这些知识点,以便让文章的受众更广。

同时,我也会在温习旧知识的同时,参考别人的一些做法,以便学习到一些新的知识点。

整个过程的时间跨度可能比较久,所以中间可能会穿插一些别的文章。

每篇文章的篇幅不定,大多数可能是短篇文章,但是我会尽量的让这些知识点串联起来。

在阅读这篇文章之前,请先阅读如下文章,如下链接是阅读这篇文章的基础。

Http基础概念

通过上述链接,你应该已经对nginx有了一个大概的了解,nginx是一个高性能的http服务器端软件,当然,它还有很多其他的功能和作用,但是我们暂且先不聊这些,因为在没有使用一个东西之前,先看一些不熟悉的概念反而会让我们更加头疼,所以,我们直接切入主题,先安装一个nginx,然后一边使用它,一边了解它的相关概念。

我已经提前准备好了一台虚拟机,操作系统是centos7.4,在之后的日子中,所有关于nginx的测试与总结都主要在这台机器上进行,这台虚拟机的IP地址是172.16.66.72

首先我们要做的就是安装nginx,安装nginx通常会使用如下两种方法:

方法一、通过操作系统的包管理器进行安装。

方法二、在官方网站下载源代码,编译安装。

两种方法各有优缺点,我们慢慢聊。

我使用的是centos操作系统,所以系统自带的包管理器就是yum,在之后演示"方法一"的过程中,我会配置一个yum源,通过yum源安装nginx,这种方法非常方便简单,这就是方法一的优点,而方法一的缺点就是:我们在安装nginx时,无法自定义安装哪些"模块"。"模块"是个什么东西呢?说到"模块"就要提到一个概念了,nginx的结构是高度模块化的,不同的模块,拥有不同的功能,所以,如果我们想要在使用nginx时能够使用某些特定的功能,则必须要安装对应的模块才行,但是通过"方法一"安装的nginx包都是预先编译好的,哪些模块已经编译进去,哪些模块没有编译进去都是已经确定了的,所以,使用方法一的缺点就是没有办法自定义安装相应的模块,不过话说回来,通过"方法一"安装nginx以后,一些常用的,基本的模块也都是包含的,所以,我们在刚开始使用nginx时,可以使用这种方法快速方便的安装nginx,而方法二的优缺点正好与方法一的优缺点相对应,方法二的优点就是我们可以自定义,哪些模块需要安装,哪些模块不需要安装,定制化比较高,如果想要使用第三方模块,则必须使用编译安装的方式,缺点就是编译安装,没有通过包管理器方便快捷,升级时也相对没有那么方便。

好了,我们大概了解了上述两种安装方法的不同,那么我们是不是该动手实际操作一下了呢?

先别急,在安装nginx之前,我们最好再来了解一下nginx都有哪些版本。

首先,在官方的版本中,有两个大方向,一个是开源免费版的nginx,另一个是商业版的nginx plus,这两个版本分别有不同的官方网站,如下:

开源版官网:nginx.org

商业版官网:nginx.com

你没猜错,我们之后的总结工作肯定是基于官方的开源免费版本进行的。

除了官方的nginx发行版,还有一些其他的、比较有名的nginx发行版,比如阿里巴巴的"Tengine",或者"OpenResty",我并没有使用它们的经验,如果你有兴趣,可以尝试使用它们。

让我们把注意力放到官方的免费开源版的nginx上,开源版在细分之下,还有三个小类:"主线版本"、"稳定版本"、"历史版本"。

那么这三类版本有什么不同呢?通常来说,三类版本的含义如下:

主线版本:"Mainline version",也有人称之为主干版或者开发版,主线版本通常是最新的版本,主线版通常会加入一些最新的功能,这些功能可能没有经过太多的测试,所以相对可能不太稳定,在真正的生产环境中,通常不会使用主线版本。

稳定版本:"Stable version",稳定版通常是由主线版发展而来的,稳定版通常是经过官方测试的,是官方认为相对稳定的版本,生产环境中通常会使用稳定版。

历史版本:"Legacy version",当新的稳定版出现,那么原先的稳定版就会被归类到"历史版本"中去。

我们可以打开如下官网连接,查看上述各个版本的信息。

http://nginx.org/en/download.html

打开上述连接以后,可以看到如下信息,从下图可以看出,在当前时间下,nginx的最新版的版本号为1.15.8,这个版本就是当前时间段下的"主线版本",当前的"稳定版本"的版本号为1.14.2,下图中还能看到之前的一些历史版本的版本号。

nginx短篇(1):安装nginx

看到这里,你肯定已经对nginx的版本有了一定的了解,那么现在,我们就来动手安装一下nginx吧。

之前说过,有两种方法可以安装nginx,我们一一总结。

方法一

首先,我们总结一下怎样使用yum源安装nginx,有很多yum源可供我们使用,比如,我个人通常会使用阿里的epel源,或者使用nginx官方的yum源,此处以nginx官网的yum源为例,访问如下官网链接可以查看官方yum源的配置过程

http://nginx.org/en/linux_packages.html

从上述链接中可以找到主线版和稳定版的yum源,此处,我们配置稳定版的官方yum源,配置过程如下:

首先,添加nginx官方yum源文件,此处创建的源文件为/etc/yum.repos.d/nginx.repo,文件内容如下

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

官网源配置完成后,使用如下命令安装

# yum install -y nginx

完成上述配置即可成功安装nginx,很简单吧。

方法二

现在来看看怎样编译安装nginx。

首先,从官网下载对应的源码包,访问官网的下载页面,连接如下

http://nginx.org/en/download.html

从上述链接中找到你要下载的nginx版本,此处我下载稳定版nginx-1.14.2,并将下载后的包解压

# wget http://nginx.org/download/nginx-1.14.2.tar.gz
# tar -xf nginx-1.14.2.tar.gz

进入解压目录,查看其内部的文件结构,如下

# cd nginx-1.14.2
# ll
total 752
drwxr-xr-x 6 1001 1001   4096 Jan 12 20:41 auto
-rw-r--r-- 1 1001 1001 288742 Dec  4 22:52 CHANGES
-rw-r--r-- 1 1001 1001 440121 Dec  4 22:52 CHANGES.ru
drwxr-xr-x 2 1001 1001   4096 Jan 13 12:45 conf
-rwxr-xr-x 1 1001 1001   2502 Dec  4 22:52 configure
drwxr-xr-x 4 1001 1001   4096 Jan 12 20:41 contrib
drwxr-xr-x 2 1001 1001   4096 Jan 12 20:41 html
-rw-r--r-- 1 1001 1001   1397 Dec  4 22:52 LICENSE
drwxr-xr-x 2 1001 1001   4096 Jan 12 20:41 man
-rw-r--r-- 1 1001 1001     49 Dec  4 22:52 README
drwxr-xr-x 9 1001 1001   4096 Jan 12 20:41 src

此处,我来大概的描述一下上述文件与目录的作用,与编译其他软件一样,我们需要使用此目录中的configure脚本文件,进行一些编译安装的相关设置,如果你想要看看当前版本的nginx都修复了哪些bug、做了哪些变更、新增了哪些功能,则可以查看CHANGES文件,CHANGES.ru文件是CHANGES文件的俄文版,因为nginx的俄国人发明的,所以有一个单独的俄文版,conf目录中的文件是一些nginx配置文件的模板文件,编译安装时这些文件最终会被拷贝到安装目录中,html目录中的文件是一些静态页面的模板文件,src目录是源代码目录,man目录是帮助文档的目录,contrib目录中的vim目录中的文件可以帮助我们在使用vim编辑nginx配置文件时提供语法高亮功能。

好了,我们大概了解完了目录结构与其作用,现在来完成一下我们在编译之前通常会做的事情,就是看看当前configure脚本中都支持哪些参数,执行如下命令,可以看到编译安装nginx时我们可以使用的配置选项

# ./configure --help

执行"./configure --help"命令后,你可以看到很多选项信息,此处就不列出这些信息了,最常用的莫过于--prefix选项了,使用--prefix选项可以指定nginx编译安装的目录,除了一些常见的目录设置选项,你应该还会看到好多类似"--with-XXX_module "或" --without-XXX_module"的选项,这些选项是什么意思呢?说到这些选项,又要提到我们刚才介绍的概念了,那就是"模块"的概念,我们已经知道,nginx是高度模块化的,每个模块就代表一个功能,而且刚才也提到过,只有编译安装的方式才能指定安装哪些模块,不安装哪些模块,其实,你可以这样理解,"--with-XXX_module "选项表示指明安装对应的模块," --without-XXX_module"选项表示指明不安装对应的模块。

换句话说就是:

如果你没有明确使用"--with-AXX_module "选项,那么默认情况下是不会安装"AXX模块"的。

如果你没有明确使用" --without-BXX_module"选项,那么默认情况下是会安装"BXX模块"的。

使用"--with-XXX_module "选项添加默认未加入的模块,使用" --without-XXX_module"选项排除默认会加入的模块。

能够使用"--with-XXX_module"和" --without-XXX_module"控制的模块都是"可选模块",也就是说我们可以选择是否安装它们,除了这些"可选模块",还有一些"标准模块"是默认安装到nginx中的,我们无法选择是否安装这些"标准模块"。

我们没有必要了解每一个可选模块的作用,等我们用到它们时,再去了解他们也不迟。

说了这么多,都还没有开始真正的编译工作,那么现在,动手编译吧。

首先,确定我们的编译器已经安装。

# yum install -y gc gcc gcc-c++

其次,我们需要安装一些依赖包,安装哪些依赖取决于你安装了哪些模块,不同的模块依赖的包不同,此例中,安装如下包。

# yum install -y pcre-devel zlib-devel openssl-devel  libxslt-devel GeoIP-devel perl-ExtUtils-Embed

我准备将nginx安装到/srv/nginx目录下,所以确定有这个目录

# mkdir -p /srv/nginx

进入到刚才解压的目录中

# cd nginx-1.14.2/

现在开始执行configure 脚本,并且启用一些可能会用到的常用模块,操作如下

# ./configure --prefix=/srv/nginx --with-file-aio --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_geoip_module=dynamic --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_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module

上述命令执行完成后,没有错误即可进行编译,执行make命令

# make

完成上述步骤后你可能会发现,解压目录中多了一个objs目录,这个目录是编译安装nginx时产生的中间文件,第一次安装时不用太在意它,如果你以后想要升级老版本的nginx,则会使用到这个目录,此处不用在意,执行如下安装命令

# make install

完成上述步骤即可成功编译安装nginx。

一些其他配置

通过上述两种方法安装nginx以后,当你使用vim编辑器编辑nginx的配置文件时,vim编辑器是无法自动识别出nginx的相关语法的,所以,使用vim编辑器编辑nginx配置文件时,无法实现"语法高亮"功能,也就是说,默认情况下,使用vim编辑nginx配置文件时,没有彩色的语法着色,对于使用者来说,这样体验不好,nginx官方很贴心,在源码包中为我们提供了vim针对nginx的语法高亮配置文件,我们只要把这些文件拷贝到vim的对应目录中即可直接使用,方法很简单,如下

进入到源码包解压目录
# cd nginx-1.14.2/
将相应的语法文件拷贝到对应的目录中,即可完成
# cp -r contrib/vim/* /usr/share/vim/vimfiles/

无论是通过官方yum源的方式还是通过编译安装的方式,都可以使用上述方法实现nginx的语法高亮,如果你跟我一样,习惯使用阿里镜像源中的epel源安装nginx,那么你会发现,通过epel源安装nginx后,会自动完成上述vim语法文件的配置过程,不用我们手动拷贝对应的文件,对应的语法文件也是安装包自带的,也很是方便的。

好了,写了半天,也没有说明太多的东西,只是介绍了怎样安装nginx,以及一些相关的基础概念,欲速则不达,我们慢慢来吧,希望这篇文章能够帮助到你。

nginx短篇(1):安装nginx

我的微信公众号

关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~


以上所述就是小编给大家介绍的《nginx短篇(1):安装nginx》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

世界是平的(3.0版)

世界是平的(3.0版)

[美] 托马斯·弗里德曼 / 何帆、肖莹莹、郝正非 / 湖南科学技术出版社 / 2008-9 / 58.00元

世界变得平坦,是不是迫使我们跑得更快才能拥有一席之地? 在《世界是平的》中,托马斯·弗里德曼描述了当代世界发生的重大变化。科技和通信领域如闪电般迅速的进步,使全世界的人们可以空前地彼此接近——在印度和中国创造爆炸式增长的财富;挑战我们中的一些人,比他们更快占领地盘。3.0版新增两章,更新了报告和注释方面的内容,这些内容均采自作者考察世界各地特别是整个美国中心地带的见闻,在美国本土,世界的平坦......一起来看看 《世界是平的(3.0版)》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试