nginx的基本配置--配置文件语法和配置指令

    xiaoxiao2025-07-26  5

    配置文件语法

    配置文件一般是一个文本文件,可以由程序解析,通过为一组指令指定值便定义了程序的行为,配置nginx只需要掌握一些机制:指令、区段(block)和整体逻辑结构,实际配置过程中,大多为指令填写值。

    配置指令

    nginx的配置文件实际是一个具有一定逻辑结构的一组指令列表,修改指令值即可控制应用程序。

    nginx的配置文件默认安装在/usr/local/nginx/conf/nginx.conf,查看nginx.conf文件:

    # more /usr/local/nginx/conf/nginx.conf

    前两行配置如下:

    #user nobody; worker_processes 1;

    使用字符”#”注释掉了第一行,第二行声明了一条指令,worker_processes是一个键,它对应的值设置为1,以";"结尾,这条指令指定了nginx作为单个工作进程工作。

    每个指令都有不同的语法,例如指令worker_processes只接受一个数值,指令user需要指定两个字符串值:用户账户(nginx的woker进程使用该账户运行)和用户组。

    nginx通过模块的方法构建而成,每一个模块都提供一组指令,最根本的指令是nginx核心模块部分。

    组织和包含

    在配置文件中有如下的指令:

    include mime.types;

    该指令用来执行对一个特定文件的包含,即在配置文件的内容中,将被插入的文件通过include指令插入到确切的位置上,实际例子如下: nginx.conf文件内容:

    user nginx nginx; worker_processes 4; include other_settings.conf;

    other_settings.conf文件内容如下:

    error_log logs/error.log; pid logs/nginx.pid;

    nginx解释配置文件的最终结果如下:

    user nginx nginx; worker_processes 4; error_log logs/error.log; pid logs/nginx.pid;

    在nginx最初的配置文件中使用了两个文件nginx.conf和mime.types( include mime.types;),对于高级配置而言,至少需要5个文件:

    标准名称描述nginx.conf应用程序的基本配置文件mime.types文件扩展列表文件,它们与MIME类型关联fastcgi.conf与FastCGI相关的配置文件proxy.conf与Proxy相关的配置文件sites.conf配置nginx提供的网站,也包括众所周知的虚拟主机,推荐一个域建立一个单独的文件

    以上文件名是依据惯例定义的,实际上完全可以使用其他文件名。 include指令支持文件名替换,例如:

    include sites/*.conf

    这将包含sites目录下的所有.conf文件,这种机制允许你为自己的网站建立单独的配置文件,然后再将它们全部包含进来。

    指令块

    指令由模块提供,如果激活了一个模块,那么该模块对应的指令也同时生效,如下:

    events { worker_connections 1024; }

    events模块提供的指令worker_connections 1024;只能放在events区段才有意义。 有些指令可以写在配置文件顶部,起到全局效果: 不同区段可以互相嵌套: 上述例子展示了网站对nginx的配置,在http区段可以声明多个server区段,一个server区段允许配置一个虚拟主机和监听的端口,在server区段内允许插入多个location区段,当需要对特定的路径进行URL匹配时,Location区段允许对这些路径单独设置。 一个区段嵌套其它区段,被嵌套的区段将继承其父区段的设置,上述例子server区段设置了access_log指令来记录服务器所有的HTTP请求,在location区段同样生效,可以在location区段重新设置access_log:

    指令值的单位

    单位描述k/K千字节m/M兆字节msMilliseconds–毫秒sSeconds–秒(默认时间单位)mMinutes–分钟hHours–小时dDays–天wWeeks–星期mMonths–月(30天)yYears–年(365天)

    变量

    模块提供各种变量,注意:有些指令不允许使用变量,例如:

    error_log logs/error-$nginx_version.log

    这是一个有效的配置指令,但它只产生一个error-$nginx_version.log文件,并不解析变量。

    字符串值

    将字符串作为指令值,可以没有引号,但如果使用的是特殊字符,例如:空格符、分号(;)、花括号({}),就需要使用引号将其括起:

    root '/home/example.com/my web pages'

    注意:无论使用单引号、双引号,nginx都认为没有区别。

    转载请注明原文地址: https://ju.6miu.com/read-1301089.html
    最新回复(0)