文章目录
nginx 版本信息、http_core_module
自定义 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
ngx_http_core_module
tcp_nodelay on | off; // 在keepalived模式下的连接是否启用TCP_NODELAY选项,即Nagle算法. 当为off时,延迟发送,每发送一个包就需要确认ACK,才发送下一个包;默认On时,不延迟发送,多个包才确认一次
tcp_nopush on | off ; // 在开启sendfile,on时合并响应头和数据体在一个包中一起发送
sendfile on | off; // 是否启用sendfile功能,在内核中封装报文直接发送,默认Off
charset charset | off; //是否在响应报文中的Content-Type显示指定的字符集,默认off不显示
server_tokens on | off | build | string; // 是否在响应报文的Server首部显示nginx版本
// 与套接字相关的配置:
server { ... }
// 配置一个虚拟主机
server {
listen address[:PORT]|PORT|unix:/PATH/TO/SOCKET_FILE;
server_name SERVER_NAME;
root /PATH/TO/DOCUMENT_ROOT;
}
listen port;
default_server // 设定为默认虚拟主机,无法匹配虚拟主机时使用
ssl //限制仅能够通过ssl连接提供服务
backlog=number //超过并发连接数后,新请进入后援队列的长度
rcvbuf=size 接收缓冲区大小
sndbuf=size 发送缓冲区大小
(1) 基于port;
listen PORT; 指令监听在不同的端口
(2) 基于ip的虚拟主机
listen IP:PORT; IP 地址不同
(3) 基于hostname server_name fqdn; 指令指向不同的主机名
server_name name ...;
虚拟主机的主机名称后可跟多个由空白字符分隔的字符串
(1) 支持*通配任意长度的任意字符
server_name *.magedu.com www.magedu.*
(2) 支持~起始的字符做正则表达式模式匹配,性能原因慎用
server_name ~^www\d+\.magedu\.com$
说明: \d 表示 [0-9]
(3) 匹配优先级机制从高到低
a 首先是字符串精确匹配 如www.magedu.com
b 左侧*通配符 如:*.magedu.com
c 右侧*通配符 如:www.magedu.*
d 正则表达式 如: ~^.*\.magedu\.com$
e default_server
新建一个 pc web 站点
// 主配置文件 /etc/ntinx/nginx.conf中的 httpd{ include /etc/nginx/conf.d/*.conf; }
cd /etc/nginx/conf.d/
vim pc.conf
server {
listen 80;
server_name www.pc.com;
location / {
root /data/pc;
}
}
mkdir /data/pc
echo pc web > /data/pc/index.html
新建一个 mobile web 站点
vim mobile.conf
server {
listen 80;
server_name www.mobile.com;
location / {
root /data/mobile;
}
}
mkdir /data/mobile
echo mobile web > /data/mobile/index.html
nginx -s reload
root、alias、location、access、auth_basic
root 与 alias
vim pc.conf
server {
listen 80;
server_name www.pc.com;
location / {
root /data/pc;
}
location /about { // 根目录为 /data/pc/about
root /data/pc;
index index.html;
}
}
mkdir /data/pc/about
echo about > /data/pc/about/index.html
nginx -s reload