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

配置文件语法

配置文件一般是一个文本文件,可以由程序解析,通过为一组指令指定值便定义了程序的行为,配置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都认为没有区别。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值