nginx配置文件简介

一、配置文件介绍

在nginx的安装目录下的conf文件夹中,名为nginx.conf的文件保存着nginx的相关配置,其中包含了一些基础配置和配置示例(使用#号做了注释),我们可以根据需求进行配置。

二、配置文件组成

nginx配置文件的内容分为三大部分:全局块events块http块。进入到usr/local/nginx/conf目录,使用vi编辑器打开nginx.conf文件可以查看其中的内容。

1.全局块

全局块的内容如下:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

全局块的配置影响nginx服务器的整体运行状态,主要包括:

1.运行nginx服务器的用户(组)
2.允许的最大并发量
3.进程PID存放的路径
4.日志存放路径和类型
5.配置文件的引入,等等。

例如:worker_processes是设置nginx当前支持的最大并发量。

2.events块

events块的配置主要影响nginx服务器与用户的网络连接,常用的配置包括:是否对多worker_processes下的网络连接进行序列化是否允许同时接收多个网络连接选择哪种事件驱动模型来处理连接请求支持的最大并发量等。

events {
    worker_connections  1024;
}

例如:默认的配置只有一项,它设置了当前支持的最大连接数,默认是1024个。
events块的配置对nginx的性能影响较大,在实际中应该灵活配置。

3.http块

http块是在使用nginx服务器时配置最频繁的部分。代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。其中,http块包含http全局块server块

3.1 http全局块

http全局块的配置项主要包括:文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等。

http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    ......
}

3.2 server块

每个http块中可以包含多个server块,它的配置包括:监听配置主机名称或IP日志字符编码错误页路由配置等。
其中,除了路由配置,其他配置信息都位于server块的全局区,如下:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;
    #error_page  404              /404.html;
    ......
}

每个server块可以包含多个location块路由配置位于location块中,例如:

location = / {
    root   html;
    index  index.html index.htm;
}

其中包含了路径映射资源名称等信息,当nginx接收到请求时,就会根据这些信息来匹配相应的资源。

总结: nginx的配置文件是conf目录下的nginx.conf,其中的内容分为全局块、events块和http块;全局块包含nginx的整体状态配置,events块包含网络连接的相关配置,http块包含请求处理的相关配置;http块可包含多个server块,server块可包含多个location块。

你可能感兴趣的:(nginx学习笔记,nginx,linux,bash)