Nginx
的特点:
- 处理响应请求很快:在正常的情况下,单次请求会得到更快的响应
- 高并发连接:
Nginx
支持的并发连接上限取决于你的内存,10万远未封顶 - 低的内存消耗
- 具有很高的可靠性
- 高扩展性:
Nginx
的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成 - 热部署:
master
管理进程与worker
工作进程的分离设计,使得Nginx
具有热部署的功能
nginx.conf
是主配置文件,默认配置如下图:
worker_process # 表示工作进程的数量,一般设置为CPU的核数
worker_connections # 表示每个工作进程的最大连接数
server{} # 块定义了虚拟主机
listen # 监听端口
server_name # 监听域名
location {} # 是用来为匹配的URI进行配置,URI即语法中的“/uri/”
location /{} # 匹配任何查询,因为所有请求都以/开头
root # 指定对应uri的资源查找路径,这里html为相对路径,完整路径为 /path_to_nginx/html/
index # 指定首页index文件的名称,可以配置多个,以空格分开。如有多
# 个,按配置顺序查找。
location
匹配规则
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头。Nginx不对url做编码,因此请求为`/static/20%/aa`,可以被规则`^~ /static/ /aa`匹配到
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
!~和!~* 分别为区分大小写不匹配及不区分大小写不匹配的正则
/ 通用匹配,任何请求都会匹配到
Nginx静态文件服务
http {
# 这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,
# 建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
open_file_cache max=204800 inactive=20s;
# open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,
# 如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个
# 文件在inactive 时间内一次没被使用,它将被移除。
open_file_cache_min_uses 1;
# 这个是指多长时间检查一次缓存的有效信息
open_file_cache_valid 30s;
# 默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不
# 少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压缩 ,
# 如果要对html之外的内容进行压缩传输,我们需要手动来设置。
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
server {
listen 80;
server_name www.test.com;
charset utf-8;
root /data/www.test.com;
index index.html index.htm;
}
}