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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

中国网络媒体的第一个十年

中国网络媒体的第一个十年

彭兰 / 清华大学出版社 / 2005-7 / 35.00元

此书对中国网络媒体的第一个十年这一重要的历史阶段首次进行了全景式、全程式的历史记录,并进行了全面深入的研究,在一定程度上填补了中国网络媒体发展史宏观研究方面的空白。对于网络新闻传播的研究,以及当代中国媒体发展的研究.具有重要的意义。 ——方汉奇 图书目录 绪论 1 第一章 投石问路:中国网络媒体萌芽(1994一1995年) 9 第一节 从实验室走向市场:互联网兴起 10 ......一起来看看 《中国网络媒体的第一个十年》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具