Nginx(二)接着来配置吧

110 阅读3分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 2 天

书接上文Nginx(一)什么是Nginx?

我们已经知道了,nginx分为全局配置events配置http配置server配置location配置,我们也看过了event是怎么配置的。

那剩下几种配置是什么样呢

全局配置

指令可选值默认值介绍
usernobody nobody配置用户和用户组
worker_processesnumber1允许生成的进程数
pidpathlogs/nginx.pid指定nginx进程运行文件存放地址
error_logpath+(debug/info/notice/warn/error/crit/alert/emerg)1错误日志的配置,debug类型的输出最多,这个设置在全局、http、server三个配置都可用
error_log例如:error_log log/error.log debug;

http配置

只看常用的好了

指令可选值介绍
client_max_body_sizesize允许客户端请求的最大的单个文件字节数
client_header_buffer_sizesize来自客户端请求头的headebuffer大小
client_body_temp_pathpath连接请求试图写入缓存文件的目录路径
large client_header_buffersnumber size客户端请求中较大的消息头的缓存最大数量和大小
例如:4 16k 即为4个16KB
sendfileon/off开启高效文件传输模式
tcp_nopushon/off开启防止网络阻塞
tcp_nodelayon/off开启防止网络阻塞
keepalive_timeoutnumber客户端连接保存活动的超时时间,0为无限时间
client_header_timeoutnumber客户端请求读取header超时时间
client_body_timeoutnumber客户端请求body读取超时时间
gzipon/off开启gzip压缩
gzip_min_lengthsize允许压缩的页面最小字节数
gzip_buffersnumber size压缩结果流缓存大小,格式和large client_header_buffers一样
gzip_http_version1.1识别http协议的版本,默认为1.1
gzip_comp_level1-9指定gzip压缩比,数字越小压缩比越小,压缩比越小速度越快

server配置

这个会短很多欧

指令可选值介绍
keepalive_requestsnumber单连接请求上限次数
listennumber监听的端口
server_nameip/域名监听地址
charset语言编码(比如utf-8什么的)
access_logpath main响应日志
error_logpath 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 *; 添加响应头

那我们下次再见啦