Archivo de configuración nginx.conf de Nginx (Nginx aprendiendo dos)

En https://blog.csdn.net/qq_42301302/article/details/106135265 hemos instalado nginx en el directorio / usr / local / nginx, y sus archivos de configuración predeterminados se colocan en el directorio conf de este directorio, y el principal El archivo de configuración nginx.conf también está en él. El uso de nginx es básicamente una modificación correspondiente de este archivo de configuración, por lo que necesitamos entender aproximadamente la estructura del archivo de configuración nginx.
Inserte la descripción de la imagen aquí

1. La estructura principal de nginx.conf

Abra el archivo nginx, el contenido es el siguiente:


#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;


events {
    
    
    worker_connections  1024;
}


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;

    server {
    
    
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
    
    
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
    
    
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
    
    
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    
    
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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


    # HTTPS server
    #
    #server {
    
    
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

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

}

El comienzo representa el contenido del comentario, elimine todos los párrafos que comiencen con #, y el contenido del archivo simplificado es el siguiente:

worker_processes  1;

events {
    
    
    worker_connections  1024;
}


http {
    
    
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
    
    
        listen       80;
        server_name  localhost;

        location / {
    
    
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
    }
}

Según el contenido del archivo, se puede ver que el archivo de configuración nginx.conf se puede dividir en tres partes:

Segundo, el bloque global

Desde el comienzo del archivo de configuración hasta el contenido del bloque de eventos, se establecerán algunas instrucciones de configuración que afectarán el funcionamiento general del servidor nginx, incluida principalmente la configuración del usuario (grupo) que ejecuta el servidor Nginx, la cantidad de procesos de trabajo que se permite generar, la ruta de almacenamiento del proceso PID y el registro. Ruta y tipo de almacenamiento, e introducción de archivos de configuración, etc.

Por ejemplo, la configuración de primera línea del contenido del archivo anterior:

worker_processes  1;

Esta es la configuración clave del servicio de procesamiento concurrente del servidor Nginx. Cuanto mayor sea el valor de worker_processes, más procesamiento concurrente podrá admitirse, pero estará restringido por hardware, software y otros equipos, que se describirán en detalle más adelante.

Tres, bloque de eventos

Por ejemplo, la configuración del contenido del archivo anterior:

events {
    
    
    worker_connections  1024;
}

Los comandos involucrados en el bloque de eventos afectan principalmente la conexión de red entre el servidor Nginx y el usuario. Las configuraciones comúnmente utilizadas incluyen si habilitar la serialización de conexiones de red en múltiples procesos de trabajo, si permitir que se reciban múltiples conexiones de red al mismo tiempo y qué modelo impulsado por eventos se selecciona para el procesamiento Solicitud de conexión, el número máximo de conexiones que cada proceso de texto puede admitir al mismo tiempo, etc.

El ejemplo anterior indica que el número máximo de conexiones admitidas por cada proceso de trabajo es 1024.

Esta parte de la configuración tiene un mayor impacto en el rendimiento de Nginx y debe configurarse de manera flexible en la práctica.

Cuatro, bloque http

http {
    
    
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
    
    
        listen       80;
        server_name  localhost;

        location / {
    
    
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }
    }
}

Esta es la parte más frecuente de la configuración del servidor Nginx. La mayoría de las funciones como el proxy, la caché y la definición de registros, y la configuración de módulos de terceros, están todas aquí.

Nota: el bloque http también puede incluir el bloque global http y el bloque del servidor.

1. Las
  instrucciones de configuración del bloque global http incluyen importación de archivos, definición de TIPO MIME, personalización del registro, tiempo de espera de conexión, límite superior de solicitudes de enlace único, etc.

2. Bloque servidor
  Este bloque está estrechamente relacionado con el host virtual. Desde el punto de vista del usuario, el host virtual es exactamente igual que un host hardware independiente. Esta tecnología fue creada para ahorrar el costo del hardware del servidor de Internet. El concepto de alojamiento virtual se introducirá en detalle más adelante.

Cada bloque http puede incluir varios bloques de servidor y cada bloque de servidor es equivalente a un host virtual.

Cada bloque de servidor también se divide en un bloque de servidor global y puede contener varios bloques de ubicación al mismo tiempo.

2.1, bloque de servidor global

La configuración más común es la configuración de monitoreo del host de la máquina virtual y el nombre o la configuración de IP del host virtual.

2.2, bloque de ubicación

Un bloque de servidor puede configurar varios bloques de ubicación.

La función principal de este bloque se basa en la cadena de solicitud recibida por el servidor Nginx (por ejemplo, server_name / uri-string), para realizar la cadena que no sea el nombre de host virtual (o alias de IP) (por ejemplo, el / uri-string anterior) Coincidir para procesar solicitudes específicas. Aquí también se configuran funciones como la orientación de la dirección, el almacenamiento en caché de datos, el control de respuesta y muchos módulos de terceros.

Supongo que te gusta

Origin blog.csdn.net/qq_42301302/article/details/106139851
Recomendado
Clasificación