nginx HTTP模块配置常用指令

  

接下来我来详细讲解一下“nginx HTTP模块配置常用指令”的完整攻略,包括常用的指令以及两个示例说明。

HTTP模块配置

nginx.conf文件

在nginx.conf文件中配置HTTP模块相关的指令,如http、server、location等。可以使用nginx -t命令检测配置文件是否正确。

站点配置

HTTP模块配置的一种最常见的场景是为网站配置HTTP服务,这可以在nginx的server块中完成。以下是一些常见指令及其说明:

listen

指定nginx监听的端口,默认端口为80。

示例:

server {
    listen 80;
}

server_name

指定一个域名或IP地址来识别虚拟主机。如果访问的域名与server_name指令匹配,则nginx将使用这个server块来响应请求。

示例:

server {
    listen 80;
    server_name example.com;
}

root

nginx的web服务器需要知道可以在哪里找到文件来在客户端浏览器上服务呈现页面。 root指令指定了文档根目录。

示例:

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com;
}

index

默认情况下,nginx将查找index.html或index.htm文件以作为默认的网页。 index指令用于覆盖默认文件设置。

示例:

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com;
    index index.php index.html index.htm;
}

error_page

可以通过error_page指令配置错误页,当出现HTTP错误码时,此页面可以向用户传递更有用的信息。

示例:

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com;
    index index.php index.html index.htm;
    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
}

处理请求

HTTP模块还可以用于为请求的URL映射到指定的处理程序,如FastCGI服务器或upstream服务器块。

location

location指令用于定义一个区块,这个区块包含有关这个虚拟主机区块的HTTP请求的设置。网站一般会使用location指令来匹配并处理请求URL。

示例:

server {
    listen 80;
    root /var/www/example.com;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

上面的示例定义了一个location区块来处理PHP文件,其中指定了所需的FastCGI参数和socket(使用Unix套接字文件“/var/run/php/php7.2-fpm.sock”)。

另一个location区块用于处理网站的请求URL,如果无法匹配现有的文件或目录,则使用index.php处理请求。如果请求URL中包含查询字符串,则使用query_string传递。

希望这个攻略对大家有所帮助。

相关文章