美文网首页
Nginx学习笔记02 —— 认识Nginx的配置文件

Nginx学习笔记02 —— 认识Nginx的配置文件

作者: 振礼硕晨 | 来源:发表于2020-03-15 21:31 被阅读0次

    写在前面

    在上一篇博客中,我们已经在Linux系统中成功地安装了Nginx,但是Nginx安装完成之后,发生了什么?或者说Nginx的相关配置文件在什么地方?我们如果想要根据实际需求修改Nginx配置,应该修改哪些文件?

    带着这些疑问,我们开始本篇文章的分享,主要跟大家分享如何找到Nginx的配置文件以及一些基本的配置规则。

    一、Nginx的配置文件在哪些地方

    在Linux系统中成功安装Nginx之后,它并没有给我们什么安装信息提示,如果想要查看Nginx的相关文件,可以使用Linux一个rpm包管理工具命令,比如我们想要查看Nginx的相关文件,可以执行以下命令:

    rpm -ql nginx
    

    在上述命令中,我们使用rpm包管理工具进行查找,其中 -q 表示查询, -l 表示返回查询列表。这里查询Nginx,返回的列表如下:

    可以看到,返回的相关内容还是非常多的,这里我们先关注红框中的一些文件及文件夹,这是我们在配置Nginx过程中,经常修改的内容。

    我们切换到 /etc/nginx 文件夹下,在这里有Nginx的主配置文件 /etc/nginx/nginx.conf ,里面的配置代码没有很多,我在这里全部列出来,并对每一行做一个注释。对里面的每一项,我们没有必要全部掌握,只需要简单了解即可。

    user  nginx;    #运行用户,默认即是nginx,可以不进行设置
    worker_processes  1;   #Nginx进程,一般设置为和CPU核数一样
    error_log  /var/log/nginx/error.log warn;   #错误日志存放目录
    pid        /var/run/nginx.pid;  #进程pid存放位置
    
    events {
        worker_connections  1024; # 单个后台进程的最大并发数
    }
    
    
    http {
        include       /etc/nginx/mime.types;   #文件扩展名与类型映射表
        default_type  application/octet-stream;  #默认文件类型
        
        #设置日志模式
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;   #nginx访问日志存放位置
    
        sendfile        on;   #开启高效传输模式
        #tcp_nopush     on;    #减少网络报文段的数量
    
        keepalive_timeout  65;  #保持连接的时间,也叫超时时间
    
        #gzip  on;  #开启gzip压缩
    
        include /etc/nginx/conf.d/*.conf; #包含的子配置项位置和文件
    }
    

    作为一个Nginx小白,这个文件中的配置我们几乎不需要做任何修改,大致了解每一项配置的功能就可以了。不过我们要注意一下文件的最后一行,这一行通过include语法,引入了Nginx的子配置项和配置文件。

    二、Nginx的基本配置文件

    这些子配置项是我们要重点关注的,也是我们后面要具体修改的文件。在默认状态下,Nginx把这些子配置项全部放在了 /etc/nginx/conf.d/ 文件夹中,我们最好遵守这一默认规则,后期如果要增加新的配置文件,也要放在该文件夹下。

    现在我们切换到 /etc/nginx/conf.d/ 文件夹中,可以看到这里目前只有一个配置文件 default.conf ,这里我把该文件中的代码列出来,并作出解释:

    server {
        listen       80;        # 配置监听端口
        server_name  localhost;     # 配置域名
    
        location / {
            root   /usr/share/nginx/html;   # 服务默认启动目录,可以理解为网站代码存放的目录
            index  index.html index.htm;    # 默认访问的文件
        }
        
        # 配置404 403 错误状态码,一旦出现这些状态码,页面跳转到 /404x.html
        # location 配置/404x.html 文件所在的文件夹
        error_page   404 403  /404.html;    
        location = /404.html {
            root   /usr/share/nginx/html;   
        }
    
        # 配置5** 错误状态码,一旦出现这些状态码,页面跳转到 /50x.html
        # location 配置/50x.html 文件所在的文件夹
        error_page   500 502 503 504  /50x.html;    
        location = /50x.html {
            root   /usr/share/nginx/html;   
        }
    }
    

    在这个默认的配置文件中,我们可以指定Nginx服务监听的端口,一般情况下,都是监听80端口。然后最重要的就是location选项,即:

    location / {
        root   /usr/share/nginx/html;   # 服务默认启动目录,可以理解为网站代码存放的目录
        index  index.html index.htm;    # 默认访问的文件
    }
    

    这是Nginx启动服务的根目录配合选项,如果你是想要搭建一个网站,那么根据上面的配置,你网站的代码都是放在 /usr/share/nginx/html 目录下,当你打开你的网页的时候,会默认查找根目录下的 index.html 文件,如果找不到这个文件,那就默认查找 index.htm 这个文件。如果这里指定的文件都没有找到,那么Nginx会报 403 错误。

    报了403错误之后,你的网站会显示什么呢?这个时候我们要注意到Nginx的error_page配置选项:

    # 配置404 403 错误状态码,一旦出现这些状态码,页面跳转到 /404x.html
    # location 配置/404x.html 文件所在的文件夹
    error_page   404 403  /404.html;    
        location = /404.html {
        root   /usr/share/nginx/html;   
    }
    

    如果指定的文件找不到,Nginx报403错误的时候,根据上面的配置,网站就会到 /usr/share/nginx/html 文件夹下,查找404.html文件,将该文件的内容显示在网页上。

    需要我们注意的是,配置错误页面的时候,我们不仅可以指定网站内部的一些页面,还可以指定其他的一些网站,比如:我们规定,当Nginx服务报404错误的时候,跳转到 www.baidu.com 页面,那么可以这样配置:

    error_page   404 403  https://www.baidu.com/;
    

    写在最后

    这就是本篇博客的全部内容,主要是跟大家分享Nginx配置文件所存放的位置以及一些基本的配置规则,在后续的文章中,会进一步分享如何更详细的配置Nginx。

    欢迎大家继续关注!

    相关文章

      网友评论

          本文标题:Nginx学习笔记02 —— 认识Nginx的配置文件

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