NGINX快速入门(01)Nginx安装(centos)

Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤。


官网下载

Nginx的官网下载地址是:http://nginx.org/en/download.html。可以点击进入,看到如图所示页面:

其中红圈圈住的代表当前最新的稳定正式版本,我们也下载此版本。因为是在centos上面安装,我们下载Linux版本:

下载完后,上传到服务器上面,比如我们上传的路径为 /packages。



环境准备

安装前先要确定Linux的内核版本要在2.6以上,只有2.6之后才支持epool ,在此之前使用select或pool多路复用的IO模型,无法解决高并发压力的问题。通过命令uname -a 即可查看:

另外Nginx需要GCC编译器,用来编译C语言环境,Nginx不会提供二进制可执行程序,只能下载源码进行编译;

另外还需要PCRE库,是专门用来做正则表达式的,Nginx里面很多地方都用到了正则表达式,因此需要进行安装;

另外还需要zlib库,zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量;

另外还需要OpenSSL开发库,如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL了。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它;

上面几个库都是Nginx 基础功能所必需的,为简单起见我们可以通过yum 命令统一安装:

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel




解压安装

安装完毕后,解压nginx,在对应的目录/packages中,有我们下载的包:

NGINX快速入门(01)Nginx安装(centos)_第1张图片

执行解压命令:

tar -zxvf nginx-1.16.0.tar.gz

可以看到解压到了目录下面:

NGINX快速入门(01)Nginx安装(centos)_第2张图片

进入nginx文件夹,执行命令:

./configure

然后执行命令:

make

然后执行命令:

make install

执行完成之后nginx 运行文件 就会被安装在 /usr/local/nginx 下。

NGINX快速入门(01)Nginx安装(centos)_第3张图片

进入安装目录:

cd  /usr/local/nginx

NGINX快速入门(01)Nginx安装(centos)_第4张图片

可以看到目录下有四个文件夹,conf是配置目录,html是静态资源目录,logs是日志,sbin是一些执行命令。

下面介绍几种启动方式:

#默认方式启动:

./sbin/nginx

#指定配置文件启动

./sbing/nginx -c /tmp/nginx.conf

#指定nginx程序目录启动

./sbin/nginx -p /usr/local/nginx/

介绍几种停止方式:

#快速停止

./sbin/nginx -s stop

#优雅停止

./sbin/nginx -s quit

其它命令:

# 热装载配置文件 ,不用停止可以刷新配置(一定要熟练,这是用的最多的命令)

./sbin/nginx -s reload

# 重新打开日志文件(下面单说)

./sbin/nginx -s reopen

# 检测当前使用的是哪个配置文件,配置是否正确(可以在配置文件加点乱码测试一下)(这个命令也经常使用)

./sbin/nginx -t


我们启动nginx,访问页面,查看是否启动成功:

NGINX快速入门(01)Nginx安装(centos)_第5张图片

可以看到启动成功!


注意,nginx默认使用的端口是80,如果端口已经被占据,那么需要修改默认端口!默认的配置在安装文件夹下的conf文件夹下的ngixn.conf文件中,目录为 /usr/local/nginx/conf ,修改端口:

NGINX快速入门(01)Nginx安装(centos)_第6张图片

启动可以看到端口改为8080:

NGINX快速入门(01)Nginx安装(centos)_第7张图片




除了上面最简单的安装方式之外,在执行./configure命令的时候,还可以指定一些参数,比如安装目录,构建模块等等。下面我们以基于参数的形式安装:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-debug

上面的参数中包含了安装目录,加入了http_stub_status(用来做连接数检测)模块,和http_ssl(https协议)模块,with debug表示打开debug开关。

然后执行make,

执行完后,源文件目录下有个objs文件夹,

NGINX快速入门(01)Nginx安装(centos)_第8张图片

进入这个文件夹,把其中的nginx文件替换掉安装目录下的sbin下的nginx文件,执行下面的命令:

cd objs

cp nginx /usr/local/nginx/sbin/

会出现一个是否覆盖的问题,输入y,点击回车即可。



启动完后,我们可以看到nginx有两个进程:

一个master,一个worker。master进程主要用来做热装载更新或者日志之类的。worker进程才是真正执行客户端连接的进程,为了提高性能,worker进程是可以设置成多个的。后面文章再说。



上面有个命令 ./sbin/nginx -s    是从新打开日志文件,什么意思呢?下面做个演示,首先查看我们日志目录下面的日志文件大小:

NGINX快速入门(01)Nginx安装(centos)_第9张图片

然后打开页面,连续刷新几次,再查看大小:

NGINX快速入门(01)Nginx安装(centos)_第10张图片

可以看到access.log文件变大了,那么我们把现在的日志文件备份一下,然后新建一个access.log文件:

cd /usr/local/nginx/logs/

mv access.log access.log.bak

然后新建一个文件命名为access.log:

NGINX快速入门(01)Nginx安装(centos)_第11张图片

现在再次刷新页面,然后查看哪个日志文件变大了:

NGINX快速入门(01)Nginx安装(centos)_第12张图片

发现不是新的日志文件变大了,而是老的备份文件,说明日志还是写到老文件里面去了,这是什么原因呢?

nginx把日志写入日志文件的时候,并不是根据文件路径去找文件,而是根据日志文件的句柄,而句柄中记录了使用哪个日志文件,不会因为文件的名字改变而改变。

这个时候要写使用新建的日志文件,必须使用 reopen 命令从新打开文件,相当于从新切换句柄中的日志文件引用,现在执行命令:

./sbin/nginx -s reopen

然后再刷新页面,可以看到日志写入到新文件中:

NGINX快速入门(01)Nginx安装(centos)_第13张图片

用上面这种方式可以进行日志切割备份。

你可能感兴趣的:(NGINX快速入门(01)Nginx安装(centos))