欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx配置五(server虚拟主机配置)

程序员文章站 2022-04-23 21:34:33
...


nginx配置五(server虚拟主机配置)
            
    
    博客分类: nginx nginx配置server虚拟主机 

server:http核心模块

语法:server {...} 
默认值:no 
使用字段:http 
server字段包含虚拟主机的配置。
没有明确的机制来分开基于域名(请求中的主机头)和基于IP的虚拟主机。
可以通过listen指令来指定必须连接到这个server块的所有地址和端口,并且在server_name指令中可以指定所有的域名。

 

server_name:http核心模块

语法:server_name name [... ] 
默认值:server_name hostname 
使用字段:server 
这个指令有两个作用:
·将HTTP请求的主机头与在nginx配置文件中的server{...}字段中指定的参数进行匹配,并且找出第一个匹配结果。这就是如何定义虚拟主机的方法,域名遵循下述优先级规则:
1、完整匹配的名称。
2、名称开始于一个文件通配符:*.example.com。
3、名称结束于一个文件通配符:www.example.*。
4、使用正则表达式的名称。

(略过没有匹配到的情况)

 

listen:http核心模块

语法(0.7.x):listen address:port [ default [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ] 
语法(0.8.x):listen address:port [ default_server [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ] 
默认值:listen 80 
使用字段:server 
listen指令指定了server{...}字段中可以被访问到的ip地址及端口号,可以只指定一个ip,一个端口,或者一个可解析的服务器名。

如果只有ip地址指定,则默认端口为80。
如果指令有default参数,那么这个server块将是通过“地址:端口”来进行访问的默认服务器,这对于你想为那些不匹配server_name指令中的主机名指定默认server块的虚拟主机(基于域名)非常有用,如果没有指令带有default参数,那么默认服务器将使用第一个server块。
listen允许一些不同的参数,即系统调用listen(2)和bind(2)中指定的参数,这些参数必须用在default参数之后:
backlog=num -- 指定调用listen(2)时backlog的值,默认为-1。
rcvbuf=size -- 为正在监听的端口指定SO_RCVBUF。
sndbuf=size -- 为正在监听的端口指定SO_SNDBUF。
accept_filter=filter -- 指定accept-filter。

 

index:默认主页设置模块

语法:index file-path [file-path [ ... ] ]; 
默认值:no 
使用字段:server, location 

 

root:http核心模块

语法:root path 
默认值:root html 
使用字段:http, server, location ,location中的if字段
请求到达后的文件根目录,可以是相对路径,也可以是绝对路径。

 

charset:字符集设置模块

语法:charset encoding|off 
默认值:charset off 
使用字段:http, server, location, location中的if字段 
这个指令使应答头中的"Content-Type"字段使用指定的编码集,如果这个字符集与source_charset指令设置的字符集不相同,将重新编码字符集,参数off表明不在应答头中添加"Content-Type"信息。

 

access_log:日志模块

语法:access_log path [format [buffer=size | off]] 
默认值:access_log log/access.log combined 
使用字段:http, server, location 
参数为连接日志指定了路径,格式和缓冲区大小。使用“off”将在当前的字段中清除access_log的所有参数,如果没有指定日志格式,默认为“combined”。缓冲区大小不能超过写入磁盘文件的最小大小。
日志文件路径可以包含变量(0.7.4以上版本),但是有一些限制:

1)nginx指定的用户必须有创建日志文件的权限。
2)缓冲区不会工作
3)每个到来的连接,日志文件将被打开并且在记录日志后迅速关闭,然而,频繁使用的文件描述符将被保存到open_log_file_cache中,关于日志的轮询记录,必须记住随着时间的过去(使用open_log_file_cache的valid参数设置),日志仍然在旧的文件中记录。

 

open_log_file_cache:日志模块

语法:open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time] | off 
默认值:open_log_file_cache off 
使用字段:http server location 
这个指令为频繁使用的日志文件描述符所在的路径变量设置缓存。
指令选项:

·max - 缓存中存储的最大文件描述符数。
·inactive - 设置缓存中在某个时间段内没有使用的文件描述符将被移除,默认为10秒。
·min_uses - 在一定时间内(inactive指定),一个文件描述符最少使用多少次后被放入缓存,默认为1。
·valid - 设置检查同名文件存在的时间,默认是60秒。
·off - 关闭缓存。

  • nginx配置五(server虚拟主机配置)
            
    
    博客分类: nginx nginx配置server虚拟主机 
  • 大小: 11.2 KB