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 - 关闭缓存。
相关推荐
通过配置多个server块,每个server块对应一个虚拟主机,Nginx能够根据请求的Host头字段分发流量。 ### 二、配置静态网站主机 对于静态网站,Nginx是理想的服务器,因为它能快速地处理静态内容如HTML、CSS、...
在Windows环境下,配置Nginx以支持HTTPS及在同一端口监听多个网站,即配置多个虚拟主机,是一项常见的网络服务设置任务。Nginx是一个高性能的HTTP和反向代理服务器,以其稳定性、高并发处理能力而受到广泛使用。下面...
为了实现不同域名对应不同站点的目标,Nginx提供了灵活的虚拟主机配置方式: - **基于域名的虚拟主机**:通过不同的域名指向相同的IP地址,但Nginx可以根据Host头部信息判断应该返回哪个站点的内容。 - **基于端口的...
本篇文章将详细介绍如何在Nginx中配置多个虚拟主机(vhost)。 首先,让我们理解什么是虚拟主机。在Nginx中,虚拟主机是基于服务器名称或者IP地址来区分不同的网站。当用户通过浏览器访问某个域名时,Nginx会根据...
在本文中,我们将深入探讨如何利用Nginx部署虚拟主机,包括多域名配置、多端口配置以及多IP配置。这些知识点对于搭建和管理多站点的网络环境至关重要。 一、多域名配置虚拟主机 1. 修改Nginx配置文件:Nginx的配置...
在Nginx中,虚拟主机配置允许在一个服务器实例上托管多个独立的网站,这三种方式分别是基于IP、基于端口和基于域名的虚拟主机配置。本文重点讲解基于域名的虚拟主机配置方法,这对于多站点共用同一IP和端口的情况...
【Nginx 实现多虚拟主机配置】 Nginx 是一款功能强大的开源HTTP服务器和反向代理服务器,常被用于处理高并发的Web服务场景。它支持多种虚拟主机配置,使得在同一台服务器上能托管多个独立的网站。下面将详细介绍...
通过本次实验文档,我们可以了解到Nginx作为Web服务器时,如何配置基于域名的虚拟主机,如何处理静态网页请求,并且了解了虚拟主机的一些基础知识。这对于希望学习和使用Nginx来搭建网站的用户是一个很好的入门教程...
可以定义多个server块来配置多个虚拟主机。 upstream块 upstream块用于定义后端服务器的设置,例如upstream fdfs_group1 { server 127.0.0.1:9011; }用于定义一个名为fdfs_group1的后端服务器。 location块 ...
每个`server`块代表一个独立的虚拟主机,可以绑定到不同的域名。以下是一个基本的多域名配置示例: ```nginx http { server { listen 80; server_name example.com www.example.com; root /var/www/example.com...
**Nginx虚拟主机配置详解** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,常被用于互联网应用的负载均衡和高并发处理。在本教程中,我们将深入探讨如何利用Nginx配置虚拟主机,实现多个网站在同一台...
在配置多虚拟主机时,需要确保每个虚拟主机的server_name指令都是唯一的,以保证Nginx能够准确地将请求路由到正确的虚拟主机。同时,对配置文件的任何更改都需要重新加载或重启Nginx服务以生效,可以使用nginx -s ...
本篇将详细探讨如何使用Nginx配置基于域名的虚拟主机,以便让一台服务器承载多个独立的网站。 1. **虚拟主机的概念** 虚拟主机是一种技术,它通过在单台服务器上创建多个逻辑上的独立主机,使得每个主机都能运行...
计算机后端-PHP视频教程. Nginx-0105 server段配置虚拟主机_布尔教育.wmv
- **server块**:代表一个监听特定端口的服务器实例,可配置虚拟主机。 - **location块**:定义请求URL匹配规则,进行路由分发。 3. **conf.d目录的使用** 在`conf.d`目录下,每个`.conf`文件代表一个独立的配置...
server_name指令可以设置基于域名的虚拟主机,根据请求头部的内容,一个ip的服务器可以配置多个域名。下面这些server_name的参数是有效的: server_name jb51.net; server_name jb51.net www.jb51.net; server_name ...
五、Nginx 的虚拟主机 Nginx 的虚拟主机可以通过 server_name 或 listen 指令来实现。例如,以下是一个基于域名的虚拟主机配置: server { listen 80; server_name a.com; location / { root /var/www/a.com; ...