NGINX学习入门(01)Nginx安装(centos7.5)

   日期:2020-08-21     浏览:103    评论:0    
核心提示:官网下载官网地址:http://nginx.org/en/download.html。可以点击进入,看到如图所示页面:其中红圈圈住的代表当前最新的稳定正式版本,我们也下载此版本。因为是在centos7.5上面安装,我们下载Linux版本:下载完后,上传到服务器上面,比如我们上传的路径为 /packages。环境准备安装前先要确定Linux的内核版本要在2.6以上,只有2.6之后才支持epool ,在此之前使用select或pool多路复用的IO模型,无法解决高并发压力的问题。通过

官网下载

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

其中红圈圈住的代表当前最新的稳定正式版本,我们也下载此版本。因为是在centos7.5上面安装,我们下载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中,有我们下载的包:

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是一些执行命令。

下面介绍几种启动方式:

#默认方式启动:
./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默认使用的端口是80,如果端口已经被占据,那么需要修改默认端口!默认的配置在安装文件夹下的conf文件夹下的ngixn.conf文件中,目录为 /usr/local/nginx/conf ,修改端口:

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

除了上面最简单的安装方式之外,在执行./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文件替换掉安装目录下的sbin下的nginx文件,执行下面的命令:

cd objs
cp nginx /usr/local/nginx/sbin/

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

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

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

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

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

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

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

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

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

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

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

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

./sbin/nginx -s reopen

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服