目录
- ngx_http_core_module模块
- 自定义nginx版本信息
- server{}
ngx_http_core_module模块
注意以下阅读时
Syntax: #语法
Default: #默认值
Context: #配置段:any为任意,主配置段、event、http等(见上一章)
Example: #示例
- default_type
在响应报文中将指定的文件扩展名映射至MIME对应的类型
Syntax: default_type mime-type;
Default: default_type text/plain;
Context: http, server, location
例如:
include /etc/nginx/mime.types;
default_type application/octet-stream;
#除上面指定的类型外,就为默认的MIME类型,浏览器一般会提示下载
mime可以查看这个文件
[root]$ cat /etc/nginx/mime.types
types {
text/html html;
image/gif gif;
image/jpeg jpg;
...
}
- tcp_nodelay
在keepalived模式下的连接是否启用TCP_NODELAY选项,即Nagle算法
当为off时,延迟发送,每发送一个包就需要确认ACK,才发送下一个包
默认On时,不延迟发送,多个包才确认一次
Syntax: tcp_nodelay on | off;
Default: tcp_nodelay on;
Context: http, server, location
- tcp_nopush
在开启sendfile,on时合并响应头和数据体在一个包中一起发送
Syntax: tcp_nopush on | off;
Default: tcp_nopush off;
Context: http, server, location
- sendfile
是否启用sendfile功能,在内核中封装报文直接发送,默认Off
Syntax: sendfile on | off;
Default: sendfile off;
Context: http, server, location, if in location
- charset
charset utf-8 | off;
是否在响应报文中的Content-Type显示指定的字符集,默认off不显示 - server_tokens
是否在响应报文的Server首部显示nginx版本
Syntax: server_tokens on | off | build | string;
Default: server_tokens on;
Context: http, server, location
自定义nginx版本信息
如果想自定义响应报文的nginx版本信息,需要修改源码文件,重新编译
如果server_tokens on,修改 src/core/nginx.h 修改第13-14行,如下示例
#define NGINX_VERSION "1.68.9"
#define NGINX_VER "wanginx/" NGINX_VERSION
如果server_tokens off,修改 src/http/ngx_http_header_filter_module.c第49行,如下示例:
static char ngx_http_server_string[] = "Server: nginx" CRLF;
#把其中的nginx改为自己想要的文字即可,如:wanginx
server{}
设置虚拟服务器的配置。
server {
listen ...
server_name ...
root ...
}
- listen
语法
listen PORT|address[:port]|unix:/PATH/TO/SOCKET_FILE
或
listen address[:port] [default_server] [ssl]
[http2 | spdy] [backlog=number] [rcvbuf=size] [sndbuf=size];
# default_server 设定为默认虚拟主机,无法匹配虚拟主机时使用
# ssl 限制仅能够通过ssl连接提供服务
# backlog=number 超过并发连接数后,新请求进入后援队列的长度
# rcvbuf=size 接收缓冲区大小
# sndbuf=size 发送缓冲区大小
注意:
(1) 基于port;listen PORT;
指令监听在不同的端口
(2) 基于ip的虚拟主机listen IP:PORT;
IP 地址不同
(3) 基于hostnameserver_name fqdn;
指令指向不同的主机名
- server_name
虚拟主机的主机名称后可跟多个,支持*通配任意长度的任意字符
Syntax: server_name name ...;
Default: server_name "";
Context: server
Example: server_name *.chen.com www.chen.*
支持~
起始的字符做正则表达式模式匹配,性能原因慎用
server_name ~^www\d+\.chen\.com$
说明:
(1) \d
表示 [0-9]
(2) 匹配优先级机制从高到低
(3) 首先是字符串精确匹配 如:www.chen.com (4) 左侧*
通配符 如:*.chen.com
(5) 右侧*
通配符 如:www.chen.*
(6) 正则表达式 如:~^.*\.chen\.com$
(7) 结尾追加default_server
表示默认的服务
- root
设置web资源的路径映射;用于指明请求的URL所对应的文档的目录路径,
Syntax: root path;
Default: root html;
Context: http, server, location, if in location
示例
location /i/ {
root /data/w3;
}