暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Nginx安装及配置文件详解

爱婷如命一生一世 2018-12-03
682

作为HTTP服务软件的后期之秀,Nginx与它的老大哥Apache相比有很多改进之处,比如,在性能上,Nginx占用的系统资源更少,能支持更过的并发连接(特别是静态小文件场景下),达到更高的访问效率;在功能上Nginx不单是一个优秀的Web服务软件,还可以作为反向代理负载均衡及缓存服务使用。

初学者学习Nginx之前建议学习Apache,这样,我们很快就会熟悉Nginx软件,两者类似,都是属于开源软件,支持高性能,高并发的WWW的服务和服务软件。

俄罗斯当之无愧的第二大本土搜索引擎

当初,就是用nginx搭建的

到目前为止,我们还没有发现操作系统ISO镜像自带,可以使用yum直接通过rpm包安装Nginx的情况。如果要使用yum安装Nginx则需要配置epelyum源或者官方去寻找。

在实际的应用场景中,运维同事们都是以编译方式安装。可以浏览Nginx英文官方网站来获取镜像。

http://nginx.org/

查看到最新版本都更新到了1.15.7,证明社区作者维护的特别勤奋啊!!!!!


安装Nginx前提准备条件

安装Pcre  ,全称为perl compatioble regular expressions ,中文名称叫做:perl兼容正则表达式,安装pcre库是为了是nginx支持具备URI重写功能的rewrite模块,这个模块是业务应用中必须用的到,后文会介绍。


查看服务器版本以及位数:

[root@Centos6 ~]# cat /etc/redhat-release 

[root@Centos6 ~]# uname -r


在企业的实际工作中,凡是名称中带有 devel字符串的软件包是必须要安装的。

查询是否安装pcre 和pcre-devel

[root@Centos6 ~]# rpm -qa pcre pcre-devel

查询到系统默认只装了一个pcre软件,我们还需要安装另外一个。

下载pcre和pcre-devel

[root@Centos6 ~]# yum install pcre prce-devel -y

yum 安装的pcre版本有些低,但是一般生产环境中是不会影响使用的

[root@Centos6 ~]# yum install pcre pcre-devel -y

安装完成后别忘记检查:


安装openssl-devel    

这个库文件,使我们在使用HTTPS业务需求需要用的上的,不安装报错!

[root@Centos6 ~]# yum install -y openssl openssl-devel

[root@Centos6 ~]# rpm -qa openssl openssl-devel 


编译安装Nginx的好处在于灵活。这里我选择nginx1.6.3的版本。

下载地址:http://nginx.org/download/nginx-1.6.3.tar.gz

Nginx软件有三种版本,分为稳定版,开发板和历史稳定版。

这里我选择是1.6.3stable是稳定版的意思。


 我们建立一个工具目录....目的养成良好的运维习惯。

复习安装上传下载小命令:[root@Centos6 tools]# yum install lrzsz -y 

上传完成后,检查安装软件


解压软件:

[root@Centos6 tools]# tar xf nginx-1.6.3.tar.gz 


创建一个指定用户

[root@Centos-6 ]# useradd nginx -s/sbin/nologin -M

建立好后检查该用户。


编译参数如下:

./configure \

--user=nginx \

--group=nginx \

--prefix=/application/nginx1.6.3  \        指定的安装,此路径可不存在,应该是自                                                             动生成的。

--with-http_stub_status_module \        状态模块。

--with-http_ssl_module                     open-ssl模块

一定要在解压目录下面进行安装:

并用echo $?检查安装是否正常或者没有error。返回0就正常、!


还有就是主要生成了下面这个文件:

在本次编译安装实验中,我遇到的问题如下:这个错误代表了编译安装参数中有空格.......


最后需make  make install来最终安装。


在实际的生产环境中,我们需要建立一条软链,方便运维工作使用(主要是去掉版本号,访问效率会更高一些):

[root@Centos6 tools]# ln -s /application/nginx1.6.3/ /application/nginx

正常状态是浅蓝色只想源文件目录,错误状态是红色背景方块闪烁。

启动并检查nginx安装结果

因为在安装完Nginx后,并不能能直接对外提供服务,因此需要先启动Nginx服务才行。

①启动前检查配置文件语法

出现如图所示红框处的内容,代表语法配置正常,再启动服务前检查语法非常重要,可以防止因配置错误导致网站重启或重新加载配置对用户的影响。

②启动nginx,启动命令如下

不报错,就代表启动成功。

查看Nginx服务所对应的服务端口是否成功启动。

[root@Centos6 tools]# netstat -lnpt|grep nginx

[root@Centos6 tools]# lsof -i :80


④检查Nginx启动的实际效果

这是用crul命令检测[root@Centos6 tools]# curl 127.0.0.1

浏览器输入:URL路径http://192.168.0.130/

这是最为稳妥的测试办法(URL路径),如果浏览器访问不了,我们应检查是否关闭防火墙以及SELinux,两端网络连接和telnet服务是否正常。


查看Nginx日志文件:

[root@Centos6 tools]# cat /application/nginx/logs/error.log 

当交接一台台服务器,又想知道这个Nginx编译安装是什么样的编译代码:

[root@Centos6 tools]# /application/nginx/sbin/nginx -V

到此,nginx安装测试工作到此结束。

简单部署web站点

在实际工作环境中,搭建好Nginx服务之后,我们需要配合开发人员将开发好的程序全部放到:/application/nginx/html这个路径下面

index.html:站点的首页文件,这个首页文件就是我们看到的wecome的网页文件。

那么,为什么说这个Index.html就是站点首页和站点目录呢??查看下Nginx的配置文件就可以得到结果:

[root@Centos6 html]# grep html /application/nginx/conf/nginx.conf

删除掉Nginx默认的首页文件,建立一个index.html文件,加入如下网页内容并保存,上传一个自己保存的一个网站html文件

测试访问结果如下:


Nginx软件功能模块说明

Nginx软件之所以强大,是以为它具有众多的功能模块。

列出企业常用的重要模块:

①Nginx核心功能模块

②标准的http功能模块

关于更多的模块,查询Nginx的官方网站,点击红框文档选项。

能够查看到有很多模块。


Nginx Core funcitionlity  *(核心模块)

相关连接:http://nginx.org/en/docs/ngx_core_module.html


标准的http功能模块集合:

列举企业中常用的。


大概了解完Nginx功能模块,接下来要了解Nginx软件的全貌,看下安装后的Nginx整体目录结构及其文件功能:

[root@Centos6 conf]# tree /application/nginx

这三个目录,日后会在PHP动态程序中用的上。

媒体类型:互联网中的数据有很多不同的类型,Web服务器会把通过Web传输的每个对象都打上MIME类型,(即mime.type)的数据格式标签,用它来描述数据并标记不同的数据内容类型。


主要关注的Nginx主配置文件:结尾为default的文件都是备份文件。这里,我们重点讲解这个配置文件。



Nginx主配置文件nginx.con是一个纯文本类型的文件(其他配置文件大部分也是这样。)它位于如下路径:

整个配置文件是以区块的形式组织的,每一个区块以一个{}来表示,区块可以分为几个层次,{号为事件区块开始,}号为事件区块结束!配置文件的每个结尾都要以;号结尾!

[root@Centos6 conf]# cat nginx.conf

整个配置文件中Main区位于最上层,在Main区下面可以有Events区,HTTP区(还包含server区块,location区块)等层级

如图所示:红框表示Main区,位于最上层,属于核心模块。

①其中这个1代表了worker进程的数量

②5.6.7行为错误日志,错误日志是具有级别。

③PID代表了nginx进程号,将来管理Nginx可以利用PID来杀死Nginx任务。

Events区:

存储着事件,{号为事件区块开始,}号为事件区块结束!

在每个(1个worek)worker进程支持最大的连接数,图中配置了1024个连接数为最大连接数。

因此,如果有人问:Nginx可以最大支持多大连接数,计算公式为多个worker在乘以1024。建议连接数不要过大,woreker数量和CPU数量保持相同


HTTP区域:一直到结尾,由于配置文件过于长,包含的参数也很多这里不过多截图,后续文章会详细分析。

众多的参数中,要重点关注下server 标签,从红框处的server标签中,就可以理解,为什么nginx 的首页文件默认是index.html了吧!

其中server标签中的 location区块的作用是:默认的访问请求都是响应location区块里的内容,说白了,就是让这个域名后面的文件显示什么或者做什么!根据URL进行实现跳转功能


Nginx的配置文件有数百行,为了最小化分析Nginx核心的配置文件参数,筛选命令如下:

[root@Centos6 conf]# egrep -v "#|^$" nginx.conf.default 

这样,我们会看的更清楚一些。深入学习的话建议去官网中每个功能模块去查看,

worker_processes  1;  

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

            index  index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}



文章转载自爱婷如命一生一世,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论