http模块详解

listen指令的用法

在查看官方文档时,可以看到一个指令的使用通常有如下的三种描述

  1. Syntax:指令的基本语法描述
  2. Default:指令的默认值
  3. Context:指令可以使用的上下文,通俗来讲就是指令可以在哪些指令块中使用,如不在指定的指令块使用,启动时将会报错

官方文档规定listen指令能在server指令块中使用,值可以是下面这三种写法

  1. address[:port]:只指定地址或者同时指定地址和监听的端口号 address的值可以是:
  • IP地址:本机IP(127.0.0.1)、内网IP(192.168..)、外网IP,如果使用*,代表任何的ip
  • 域名:例如如localhost
  • IPv6写法:[::]、[::1]
  1. port:指定监听的端口号
  2. unix:path:unix的一个socket地址,只能用于本机通讯 例如:listen unix:/var/run/nginx.sock;

默认值:*:80|*:8000

nginx以超级用户启动时默认值是*:80,不是超级用户将无权限监听80端口,所以值是*:8000

http请求头的处理流程