user nginx; # 设置nginx服务的系统使⽤⽤户
worker_processes auto; # ⼯作进程,配置和CPU个数保持⼀致
error_log /var/log/nginx/error.log notice; # 错误⽇志,后⾯接⼊的是存放文件路径
pid /var/run/nginx.pid; # Nginx服务启动时的pid,,后⾯接⼊的是存放文件路径
events {
worker_connections 1024;
}
# ⾮虚拟主机的配置或公共配置定义在http{}段内, server{}段外
http {
# 必须使⽤虚拟机配置站点, 每个虚拟机使⽤⼀个server{}段
server {
listen 80; # 监听端⼝, 默认80
server_name localhost; # 提供服务的域名或主机名
#控制⽹站访问路径
location / {
root /usr/share/nginx/html; # 存放⽹站路径
index index.html index.htm; # 默认访问⾸⻚⽂件
}
# 指定错误代码, 统⼀定义错误⻚⾯, 错误代码重定向到新的Locaiton
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# 第⼆个虚拟主机配置
server {
}
}
Conf
复制
参数 | 说明 |
---|---|
$remote_addr | 客户端地址 |
$remote_user | 客户端用户名称 |
$time_local | 访问时间和时区 |
$request | 请求的URI和HTTP协议 |
$http_host | 请求地址,即浏览器中你输入的地址(IP或域名) |
$status | HTTP请求状态 |
$upstream_status | upstream状态 |
$body_bytes_sent | 发送给客户端文件内容大小 |
$http_referer | url跳转来源 |
$http_user_agent | 用户终端浏览器等信息 |
$ssl_protocol | SSL协议版本 |
$ssl_cipher | 交换数据中的算法 |
$upstream_addr | 后台upstream的地址,即真正提供服务的主机地址 |
$request_time | 整个请求的总时间 |
$upstream_response_time | 请求过程中,upstream响应时间 |
Active connections: 2
当前nginx正处理的活动连接数server accepts handled requests 3 3 10
总共处理了3次连接,成功创建了3次连接,共请求了10次。总连接数-成功连接数为失败连接数Reading: o Writing: 1 Waiting: 1
location /www {
#root /data;
alias /data/www/; # 指定目录
autoindex on; # 列出整个目录列表
autoindex_localtime on; # 显示的文件时间为文件的服务器时间
charset utf-8,gbk; # 解决中文乱码
autoindex_exact_size off; # 以kB或者MB或者GB单位显示出文件的大小,而不是字节
}
Conf
复制
key
定义用于限制请求的变量,在这个示例中使用的是NGINX的自带变量 $binary_remote_addr(客户端的ip地址)zone
定义用于存储前面定义的key变量,如zone=mylimit:10m 就是一个名为mylimit的大小为10m的共享内存空间rate
允放相同标识的客户端的访问频次, 在这个例子中:就是同一个ip地址在每秒内只能访问1次burst
如上例子burst=2,允许2个突发,有大量请求时,超过频次限制的请求,会允许2个访问,注意:burst指定的请求数量,不会马上进行处理,而是按照rate指定的值,以固定的速率进行处理。nodelay
只是对放到burst队列中的请求立即处理,但处理完成后队列并不立即清空,队列清空的速度仍然按原来的速度每秒一个清空,所以当再有请求过来时,并不会马上又有两个burst请求被处理。