listen
配置监听使用指令listen,其配置方法主要有三种:
第一种配置监听的IP地址,语法结构为:
listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [deferred] [accept_filter=filter] [bind] [ssl];
第二种配置监听端口,其语法结构是:
listen port [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on | off] [ssl];
第三种配置UNIX Domain Socket(一种在原有Socket框架上发展起来的IPC机制,用于在单个主机上执行客户/服务器通信),其语法结构为:
listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size][accept_filter=filter] [deferred] [bind] [ssl];
address:IP地址,如果是IPv6的地址,需要使用中括号“[]”括起来,比如[fe80::1]。
port:端口号,如果只定义了IP地址没有定义端口号,就使用80端口。
path:socket文件路径,如/var/run/nginx.sock。
default_server:标识符,将此虚拟主机设置为address:port的默认主机。
setfib=number:Nginx-0.8.44中使用这个变量为监听socket关联路由表,目前只对FreeBSD起作用。
backlog=number:设置监听函数listen()最多允许多少网络连接同时处于挂起状态,在FreeBSD中默认为-1,其他平台默认为511。
rcvbuf=size:设置监听socket接收缓存区大小。
sndbuf=size:设置监听socket发送缓存区大小。
accept_filter=filter:设置监听端口对请求的过滤,被过滤的内容不能被接收和处理。
deferred:标识符,将accept()设置为Deferred模式。
bind:标识符,使用独立的bind()处理此address:port;一般情况下,对于端口相同而IP地址不同的多个连接,Nginx服务器将只使用一个监听命令,并使用bind()处理端口相同的所有连接。
ssl:标识符,设置会话连接使用SSL模式进行,此标识符和Nginx服务器提供的HTTPS服务有关。
listen指令的使用看起来比较复杂,但其实在一般的使用过程中,相对来说比较简单,默认的设置为:
listen *:80 | *:8000;
即监听所有80端口和8000端口。
Last updated
Was this helpful?