Nginx配置文件通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/目录下。配置文件由多个块组成,主要包括全局块、events块、http块、server块和location块。

1. 全局块

全局块包含影响Nginx全局的配置指令,通常位于配置文件的最顶部。

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
  • user:指定运行Nginx的用户和组。

  • worker_processes:设置工作进程数,通常设置为CPU核心数。

  • error_log:指定错误日志文件路径。

  • pid:指定Nginx主进程的PID文件路径。

2. events块

events块用于配置Nginx的工作模式和连接处理机制。

events {
    worker_connections 1024;
    use epoll;
}
  • worker_connections:每个工作进程的最大连接数。

  • use:指定事件模型,如epollkqueue等。

3. http块

http块包含HTTP服务器的全局配置,可以包含多个server块。

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

    server {
        listen 80;
        server_name example.com;

        location / {
            root /usr/share/nginx/html;
            index index.html index.htm;
        }
    }
}
  • include:包含其他配置文件,如MIME类型文件。

  • default_type:设置默认的MIME类型。

  • sendfile:启用高效文件传输模式。

  • keepalive_timeout:设置客户端连接保持时间。

  • gzip:启用Gzip压缩。

4. server块

server块用于配置虚拟主机,每个server块可以配置一个虚拟主机。

server {
    listen 80;
    server_name example.com;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }

    location /images/ {
        alias /var/www/images/;
    }

    error_page 404 /404.html;
    location = /404.html {
        root /usr/share/nginx/html;
    }
}
  • listen:指定监听的端口。

  • server_name:指定虚拟主机的域名。

  • location:配置请求的URI路径。

  • root:指定根目录。

  • index:指定默认的索引文件。

  • alias:指定路径别名。

  • error_page:配置错误页面。

5. location块

location块用于配置请求的URI路径,可以嵌套在server块中。

location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
}

location /images/ {
    alias /var/www/images/;
}

location ~ \.php$ {
    root /usr/share/nginx/html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}
  • ~:表示使用正则表达式匹配URI。

  • fastcgi_pass:指定FastCGI服务器地址。

  • include:包含FastCGI参数文件。

6. 案例

以下是一个完整的Nginx配置文件示例:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
    worker_connections 1024;
    use epoll;
}

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

    server {
        listen 80;
        server_name example.com;

        location / {
            root /usr/share/nginx/html;
            index index.html index.htm;
        }

        location /images/ {
            alias /var/www/images/;
        }

        location ~ \.php$ {
            root /usr/share/nginx/html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
        }

        error_page 404 /404.html;
        location = /404.html {
            root /usr/share/nginx/html;
        }
    }
}

这个配置文件定义了一个监听80端口的虚拟主机,处理静态文件和PHP请求,并配置了404错误页面。

本篇文章内容来源于:Nginx设置配置文件详细说明以及案例