完整完成和启动nginx后,接下来我们配置nginx的文件

配置目录

查看目录/etc/nginx内的nginx.conf文件,nginx.conf是nginx主服务,内部include其他的server虚拟主机。例:

1
2
3
4
http{
......
include /etc/nginx/conf.d/*.conf;
}

加载 /etc/nginx/conf.d 文件夹内的所有.conf配置

Global 配置

运行用户

user nobody;
启动运行nginx,nobody是不指定用户

启动进程

worker_processes
启动进程,通常设置成和cpu的数量相等

pid进程号

pid <dir>/nginx.pid
记录nginx启动nginx进程编号

全局日志

error_log <dir>/error.log
记录所有的虚拟的错误日志

Events 配置

use epoll;
epoll是多路复用IO(I/O Multiplexing)中的一种方式

worker_connections 1024;
单个后台worker process进程的最大并发链接数,

并发总数是work_processes 和 worker_connections 的乘积,如果设置反向代理的情况下,上一部的乘积除以4。具体了解点击阅读

HTTP 配置

include mime.types;
加载http请求头类型

default_type application/octet-stream;
当用户请求的文件木有在服务器中定义mime类型映射,使用DefaultType 具体了解http报文中的头部mimie类型可以查看http权威指南

log_format main ....
设定日志格式,具体看以下例子:

1
2
3
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/access.log main;
所有虚拟主机访问日志

sendfile on|off
sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件

普通服务必须设置为on,如果用来进行磁盘IO重负载服务(如下载) 可设置off,以平衡磁盘与网络I/O处理速度,降低系统的uptime

tcp_cork on|off
当使用sendfile函数时,tcp_nopush才起作用,它和指令tcp_nodelay是互斥的

tcp_nopush = on 会设置调用tcp_cork方法,这个也是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。

tcp_nodelay on|off
TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”。Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。

希望发送小块数据包

keepalive_timeout <number>
连接超时时间

gzip on|off
开启gzip压缩

gzip_http_version 1.1
使用http协议版本,也就是gzip只会在选择的版本上进行压缩。

gzip_disable "MSIE [1-6]."
的设置是禁用IE6的gzip压缩

gzip_types text/plain application/x-javascript text/css text/javascript;
压缩文件类型

gzip_proxied any
如果无论服务端头返回什么信息都压缩

gzip_min_length 1024
压缩起始值,如果小文件压缩可能会适得其反,这里规则大于1kb页面才启动压缩

gzip_buffers 4 8k
设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。

gzip_comp_level 3
压缩级别1-9级,数值越小压缩越快,质量也相对低,压缩数值越大质量高同时也最消耗CPU,这里设置数值为3

client_header_buffer_size 128k
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。

large_client_header_buffers 4 128k
缓冲区根据需求的不同是分开,默认一个缓冲区大小为操作系统中分页文件大小,通常是4k或8k,如果一个连接请求将状态转换为 keep-alive,这个缓冲区将被释放。

指令指定客户端请求的一些比较大的头文件到缓冲区的最大值,如果一个请求的URI大小超过这个值,服务器将返回一个”Request URI too large” (414),同样,如果一个请求的头部字段大于这个值,服务器将返回”Bad request” (400)。

SERVER 配置

listen 80
监听端口,这里监听了80端口(web服务一般默认端口)

server_name www.xx.com
定义域名,需要域名指向服务器后可通过server_name

root /var/www/html
设定本虚拟主机的访问目录

index index.html index.htm
定义首页索引文件的名称

error_page [code] <file>
定义错误提示页面,例:
~~

1
2
3
~~ error_page 500 502 503 504 /50x.html;
~~ error_page 404 /404.html;
~~

里面配置并不完整,如果看到我会继续填充录入