美文网首页
Nginx学习1 - Nginx安装(Centos)

Nginx学习1 - Nginx安装(Centos)

作者: Tian_Peng | 来源:发表于2020-07-23 22:09 被阅读0次

1.Nginx概述

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。

其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2.Nginx安装

2.1下载Nginx

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

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

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

2.2 环境准备

安装前先要确定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

2.3解压安装

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

执行解压命令:

tar -zxvf nginx-1.16.0.tar.gz

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

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

./configure

然后执行命令:

make

然后执行命令:

make install

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

进入安装目录:

cd  /usr/local/nginx

可以看到目录下有四个文件夹:

  • conf是配置目录
  • html是静态资源目录
  • logs是日志
  • sbin是一些执行命令

3.常用命令

3.1启动Nginx

下面介绍几种启动方式:

  • ./sbin/nginx
    默认方式启动
  • ./sbing/nginx -c /tmp/nginx.conf
    指定配置文件启动
  • ./sbin/nginx -p /usr/local/nginx/
    指定nginx程序目录启动

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

可以看到启动成功!

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

image

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

3.2停止Nginx

介绍几种停止方式:

  • ./sbin/nginx -s stop
    快速停止(直接暴力停止)
  • ./sbin/nginx -s quit
    优雅停止(不接收新请求,处理完现有请求后停止)

3.3.其他命令

  • ./sbin/nginx -s reload
    热装载配置文件 ,不用停止可以刷新配置(一定要熟练,这是用的最多的命令)
  • ./sbin/nginx -s reopen
    重新打开日志文件(下面单说)
  • ./sbin/nginx -t
    检测当前使用的是哪个配置文件,配置是否正确(可以在配置文件加点乱码测试一下)(这个命令也经常使用)

4.日志重写

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

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

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

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

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

cd /usr/local/nginx/logs/
mv access.log access.log.bak

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

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

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

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

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

./sbin/nginx -s reopen

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

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

文章转载自:https://www.jianshu.com/p/99aac00aa3b7

相关文章

网友评论

      本文标题:Nginx学习1 - Nginx安装(Centos)

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