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,后者优先于前者

  • 按照文件顺序进行正则匹配

  • 最后交给/通用匹配

  • 当匹配成功时,停止匹配,按照匹配的配置规则处理请求

常用的匹配规则

配置文件详解

最后更新于

这有帮助吗?