Nginx的基本配置
默认的Nginx配置文件
核心配置文件: ${JAVA_HOME}/conf/nginx.conf,如果使用yum安装,则位于/etc/nginx/nginx.conf,下面是nginx默认的配置文件:
# 全局块
user nginx; # 设置用户以及用户组
worker_processes 1; # 工作进程的数量
error_log /var/log/nginx/error.log warn; # 错误日志
pid /var/run/nginx.pid; # pid文件位置
# events块
events {
worker_connections 1024; # 每个进程允许的最大连接数
}
# http块
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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 /var/log/nginx/access.log main;
# sendfile 零拷贝机制开关
sendfile on;
#tcp_nopush on;
# 客户端与服务端的超时时间,单位s
keepalive_timeout 65;
#gzip on;
# 这里,导入了conf.d中所有的配置, 默认包含一个default.conf文件
include /etc/nginx/conf.d/*.conf;
}配置块说明
Nginx的配置文件分为多个块组成,主要由三个大块组成:
全局快
events
http块
各个块的作用如下:
全局块:配置nginx全局指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server, 比如tomcat服务就是一个server。
location块:配置请求的路由,以及各种页面的处理情况。
日志配置
注意,Nginx有两个日志文件,一个为error_log,另一个为access_log。前者用于记录服务器错误日志(启动时发现配置文件出错),而后者则是记录访问日志(包含访问地址、响应状态等,可配置)。
日志切割
虚拟主机配置
什么是虚拟主机?
虚拟主机是使用特殊的软硬技术,将一台计算机主机分成一台台“虚拟”的主机。每一台虚拟主机都具有的独立的域名和IP地址(或者共享ip地址),并具有完整的Internet服务器功能。虚拟主机完全独立,在外界看来,每台虚拟主机和一台独主机的表现完全相同。
location匹配规则
location就是对请求URL路径的匹配,他共有以下几种匹配规则:
=
精准匹配
^~
表示 uri 以某个常规字符串开头,理解为匹配 url 路径即可。nginx 不对 url 做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)
~
开头表示区分大小写的正则匹配
~*
开头表示不区分大小写的正则匹配
/
通用匹配,任何请求都会匹配到
匹配规则:
首先进行精准匹配:
=其次进行一般匹配:
^~,如果有多个url符合,优先匹配较长的路径,比如/po与/po/jo,后者优先于前者按照文件顺序进行正则匹配
最后交给
/通用匹配当匹配成功时,停止匹配,按照匹配的配置规则处理请求
常用的匹配规则
配置文件详解
最后更新于
这有帮助吗?