nginx是一款比较优秀的web服务器,在目前的服务器领域应用还是比较广泛的,而且在linux平台上性能发挥的更加出色,下面我们就一起来看看,怎么在linux平台上安装这款服务器。我以比较熟悉的RHEL/CentOS平台为例来讲解。
工具/原料
nginx安装包
RHEL/CentOS系列服务器系统。
一、通过平台自带的epel源来安装
1、RHEL/CentOS系列自带的源里是没有nginx的安装包的,如下面图中所示,在一个刚装好的CentOS系统里,直接使用命令:yum install nginx -y来安装的时候,会提示你没有这个安装包。
2、但是CentOS的基础源CentOS-Base里面的extra包部分,里面包含了epel-relase的源包。epel-release是RHEL发行版的一个补充软件包仓库,这里有nginx的安装包。因此,我们首先要安装epel-release,命令如下:yum install epel-release -y结果如下,可以看到安装包只有15K,安装速度非常快。
3、看到提示安装完成后,我们查看一下/etc/yum.repos.d/目录下,可以看到这个目录下面多了两个文件,分别是epel.repo和epel-testing.repo,这两个文件就是epel的yum源地址和测试地址。
4、epel的yum源地址配好以后,我们就来安装nginx,命令是:yum install nginx -y这个时候我们就看到会解析epel的yum源地址,然后就会安装一系列依赖包以及nginx 软件包。安装完成后如下面第二张图所示:
5、安装完成后,我们先在防火墙上放行nginx要用到的80端口,命令是:firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reload
6、防火墙上端口放行完毕后,我们启动nginx,启动的命令是:nginx启动后,使用命令:ps aux | grep nginx可以看到确实有nginx进程在运行。
7、最后通过浏览器访问对应的ip地址,如果能看到下面的图说明配置正确。
二、下载源码包编译安装
1、打开浏览器,在百度上搜索nginx,然后找到nginx的官网,点击进去,在官网页面右边有个download链接。点击download链接。
2、这个时候会自动跳转到下载页面,在页面中我们看到默认的稳定版本(stable version)已经是1.14.0版本了,比我们刚才使用epel的yum源安装的版本要新,这次我们就下载这个版本的源码来编译安装。点击nginx-1.14.0,然后会自动弹出下载链接。
3、我们踪玑俸欧耐心等待源码包下载完毕,然后使用winscp工具将下载好的源码包上传到刚才要安装nginx的l足毂忍珩inux服务器上面去。winscp工具的使用,大家看其他教程就好了,这里就不过多赘述了。上传完毕后,如下面途中所示,可以看到红色字体表示的nginx-1.14.0.tar.gz源码包。但是一般情况下,我们都不会把源码包放在root目录下,我们在/opt目录下创建一个nginx目录来存放,命令依次是:mkdir /opt/nginxmv nginx-1.14.0.tar.gz /opt/nginx将源码包转移过去。
4、然后我们再切换到/opt/nginx目录下,将源码包解压出来。命令是:cd /opt/nginxtar xf nginx-1.14.0.tar.gz解压出来的是一个nginx-1.14.0的目录,切换到这个目录下,可以看到有个configure的绿色文件,这个就是待会要用到的编译文件。
5、但是因为nginx需要比较多的依赖,因此在编译之前,我们还要安装一些依赖包。命令是:yum-yinstall gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel我们耐心等待依赖包安装完毕。
6、依赖安装完成后,我们开始编译安装,命令是:./configure --prefix=/opt/nginx--prefix的意思是将ng足毂忍珩inx编译后的程序文件放到它后面指向的目录里,比如我们这里就是/opt/nginx目录下,如果没有出错的话,第一步非常快,configure程序会自动查找对应的依赖包,找到了,就显示found。
7、等待第一步配置信息生成完毕后,会显示出各种文件对应的目录,比如nginx binary file,即nginx的二进制文件位置是/opt/nginx/sbin/nginx等等一系列信息。
8、没有出错的话,我们就开始安装了,命令是make && make install这个命令一执行,屏幕会刷新的非常快。输出很多编译信息。如果没有出错,编译过程就不会显示error字样的提示信息。最后会显示 leave directory字样,即编译成功。
9、这个时候我们查看一下/opt/nginx目录,我们可以看到。除了刚才转移过来的nginx-1.14.0.tar.gz压缩包和解压出来的nginx-1.14.0目录,多了几个目录,分别是conf、html、logs和sbin目录,里面保存的分别是nginx的配置文件、网页文件、日志文件和二进制文件。
10、刚才第一步编译的时候最后的提示信息是二进制文件保存在sbin目录下,我们查看一下sbi艘绒庳焰n目录。确实可以看到绿色的nginx可执行文件,如下面第二张图所示。我们切换到sbin目录下,命令是:cd /opt/nginx/sbin然后执行命令./nginx -v可以看到版本号确实是14.0版本。说明确实是编译好的文件。
11、下一步应该是启动nginx,但是因为我们刚才通过epel的yum源安装了nginx,那个版本的nginx还没关闭。首先要关闭它,命令是nginx -s stop然后用ps命令查看,可以看到,没有多余的nginx进程在运行。
12、然后我们就可以启动刚编译好的nginx了,命令是:./nginx启动后用ps命令查看,可以看到只有2个nginx进程在运行。
13、这个时候我们打开这台主机的网页,但是却发现它显示和原来还是一样,如下面图中所示:
14、查询了一下才知道,原来nginx默认的配置文件顺序排在第一位的是/etc/nginx/nginx.conf这个文件,而这个文件来自于我们使用髫潋啜缅epel安装的nginx版本。因此配置文件不对。我们必须使用-c选项来指定/opt/nginx/conf目录下的nginx.cnf文件。命令就变成了:./nginx -c /opt/nginx/conf/nginx.conf启动完毕后,再打开网页查看,这个时候显示的信息就是正确的,如下面第二张图所示: