<<Nginx 基础篇>>中,我们已经认识了Nginx主流的版本和部署方法,在这篇文章中,我们将尝试认识Nginx服务本身,例如关键性的目录、关键性的文件、命令等内容,我们还将尝试配置一个简单的静态内容网站,用来熟悉nginx的配置文件结构和构成。

        一、关键性的目录和文件

1、默认配置文件存放的根目录

    通常情况下,在安装Nginx后,在Linux中会生成/etc/nginx这个目录,这个目录中会包含nginx服务器运行所需要的所有配置文件。

 

2、默认的主配置文件

    说到主配置文件,就不得不说一下“/etc/nginx/nginx.conf ”这个文件了,此文件作为nginx服务器默认读取的配置文件来说,内容的书写至关重要,此文件内包含了很多全局设置,例如worker进程的个数、调优、日志、加载动态模块以及声明是否还有其他的Nginx配置文件等信息。

3、自定义Nginx配置文件

“/etc/nginx/conf.d/”这个目录中所有以".conf"结尾的文件都是nginx服务器在启动时会加载的配置项,具体来说,我们可以做分类,例如在此目录中存在www.confbbs.confoa.conferp.conf,每一个服务分别写一个配置文件,不至于互相之间受到太多的干扰。

4、默认的日志文件目录

    默认情况下“/var/log/nginx/”中包含两个非常重要的文件,分别名为access.logerror.log,从名字我们就可以分辨出来,分别喂访问日志和错误日志,在遇到问题时,甚至我们都可以加载debug模块,根据error.log来排查错误信息。

   二、常用的命令
nginx -h

    通过此命令可以快速获取nginx命令本身所支持的选项和参数,在需要帮助时,非常有用。

55.png

nginx -v

    此命令在单独查询目前安装的Nginx版本号时尤其有用,可能大家觉得功能特别单一,但是大家可以思考一下,在脚本中进行输出的时候,是不是就用得上了呢?

56.png

nginx -V

大家注意哦,这个V是大写的,此命令输出的信息就会较多了,包括版本信息、编译信息、以及配置参数,内置模块等信息都会输出,如下图所示。

57.png 

nginx -t

    此命令的功能比较单一,但是非常有用,注意用来测试Nginx服务的配置文件是否正常。有没有语法错误等,如果有错误,会指出问题所在之处。

58.png

nginx -T

大家注意哦,这个T是大写的,此命令除了具备测试配置文件语法是否正常之外,还会将有效的配置信息输出到屏幕上,当寻求别人帮助的时候,这将会非常有用。

59.png

nginx -s signal

    大家注意哦,这个signal是一个变量,可以写成stopquitreloadreopen,从字面理解来看,stop是立即停止nginx进程,quit是指当完成当前请求之后再停止nginx进程,reload是指重新加载配置文件,而reopen是指让nginx重新打开日志文件。

三、配置静态网站

    我们输入以下命令来创建一个和其他配置文件不产生太大干扰的练习文件,练习完之后可以直接删除

vim /etc/nginx/conf.d/lixiaohui.conf

将以下内容输入到配置文件中,

 

server {

    listen 80;

    server_name www.example.com;

    location / {

        root /usr/share/nginx/html;

        index index.html index.htm;

    }

}

配置文件的效果如下所示:

60.png

    根据配置文件内容我们得知,此网站侦听在80端口上,并且此网站绑定的域名为www.example.com,且此网站URL的位置为/,网站的内容存放在/usr/share/nginx/html中,且加载的顺序为先找index.html,如果没有找到,则找index.htm,当然,你可能会注意到一些细节,例如封号结尾,以及代码块的问题,这是nginx的配置文件格式,务必要使用,当然,如果忘记,可以从主配置文件中获取格式。

四、优雅启停

    我们在第三步中配置了一个简单的静态网站,需要测试,但是我们同时也注意到我们是新建了一个配置文件,如果直接通过systemctl restart nginx来重启服务,我们的网站当然可以被访问到,但是会中断其他正在访问的请求,此时我们就需要使用以下命令来完成配置文件的在线变更,以下命令将会重新加载配置文件,但是不会中断原有的其他http请求

 nginx -s reload