这是我参与「第五届青训营」伴学笔记创作活动的第 2 天
我们已经知道了,nginx分为全局配置,events配置,http配置,server配置,location配置,我们也看过了event是怎么配置的。
那剩下几种配置是什么样呢
全局配置
| 指令 | 可选值 | 默认值 | 介绍 |
|---|---|---|---|
| user | nobody nobody | 配置用户和用户组 | |
| worker_processes | number | 1 | 允许生成的进程数 |
| pid | path | logs/nginx.pid | 指定nginx进程运行文件存放地址 |
| error_log | path+(debug/info/notice/warn/error/crit/alert/emerg) | 1 | 错误日志的配置,debug类型的输出最多,这个设置在全局、http、server三个配置都可用 |
error_log例如:error_log log/error.log debug;
http配置
只看常用的好了
| 指令 | 可选值 | 介绍 |
|---|---|---|
| client_max_body_size | size | 允许客户端请求的最大的单个文件字节数 |
| client_header_buffer_size | size | 来自客户端请求头的headebuffer大小 |
| client_body_temp_path | path | 连接请求试图写入缓存文件的目录路径 |
| large client_header_buffers | number size | 客户端请求中较大的消息头的缓存最大数量和大小 |
| 例如:4 16k 即为4个16KB | ||
| sendfile | on/off | 开启高效文件传输模式 |
| tcp_nopush | on/off | 开启防止网络阻塞 |
| tcp_nodelay | on/off | 开启防止网络阻塞 |
| keepalive_timeout | number | 客户端连接保存活动的超时时间,0为无限时间 |
| client_header_timeout | number | 客户端请求读取header超时时间 |
| client_body_timeout | number | 客户端请求body读取超时时间 |
| gzip | on/off | 开启gzip压缩 |
| gzip_min_length | size | 允许压缩的页面最小字节数 |
| gzip_buffers | number size | 压缩结果流缓存大小,格式和large client_header_buffers一样 |
| gzip_http_version | 1.1 | 识别http协议的版本,默认为1.1 |
| gzip_comp_level | 1-9 | 指定gzip压缩比,数字越小压缩比越小,压缩比越小速度越快 |
server配置
这个会短很多欧
| 指令 | 可选值 | 介绍 |
|---|---|---|
| keepalive_requests | number | 单连接请求上限次数 |
| listen | number | 监听的端口 |
| server_name | ip/域名 | 监听地址 |
| charset | 语言编码(比如utf-8什么的) | |
| access_log | path main | 响应日志 |
| error_log | path main | 错误日志 |
(后面的main指的是日志格式为main,反正一般都是main,例如:access_log logs/host.access.log main; 指的是 在logs/host.access.log下保存格式为main的响应日志)
另外,如果要启用https,需要监听443的同时,在serve指定SSL证书:
ssl_certificate ……/ssl.crt; #ssl证书文件位置(常见证书文件格式为:crt/pem)
ssl_certificate_key ……/ssl.key; #ssl证书key位置
配置错误页面是:
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location 配置
这个就不画表格啦,location配置用来直接配置反向代理,是最重要的了:
location / {
root html;#静态资源的目录
index index.html index.htm;#默认首页
deny 127.0.0.1; #拒绝的ip
allow 127.0.0.1; #允许的ip
}
location后面可以跟地址,也可以跟正则,比如图片资源我们可以用
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
js等资源也可以用location ~ .*\.(js|css)?$
-
我们可以用
expires 30d;设置静态资源过期的时间 -
可以用
location [一个正则] {
deny all;
或
return 404;
}
来ban掉所有的请求(比如一些md文件啊反正绝对不让别人看得到的)
- 可以用
add_header Access-Control-Allow-Origin *;添加响应头
那我们下次再见啦