监听端口
语法:listen address:port [default(deprecated in in 0.8.21)|default_server|[backlog=num|rcvbuf=size|sndbuf=size|accept_filter=filter|deferred|bind|ipv6only=[on|off]|ssl]];
默认:listen 80;
作用:listen参数决定Nginx服务器如何监听端口。在listen后可以加IP地址,端口和主机名,非常灵活。例如:
listen 127.0.0.1:8000;
listen 127.0.0.1; //默认80端口
listen 8000; //
listen *:8000; //
listen localhost:8000;
如果服务器使用IPv6地址,还可以这样配置:
listen [::]:8000;
listen [fe80::1];
listen [:::a8c9:1234]:80;
在地址和端口后,还可以加其他参数:
listen 443 default_server ssl;
listen 127.0.0.1 default_server accept_filter=dataready backlog=1024
下面说明listen可用参数的意义:
default:将所在得server设为整个web服务的默认server块。如果没有这个设置,那么会以在nginx.conf中找到的第一个server作为默认server。
default_server:同上。
backlog=num:表示TCP中backlog队列的大小。
rcvbuf=size:设置监听句柄的SO_RECVBUF参数。
sndbuf=size:设置监听句柄的SO_SNDBUF参数。
accept_filter:设置accept过滤器,支队FreeBSD有用。
deferred:在设置参数后,若用户发起建立请求,并且完成了TCP的三次握手,内核也不会为这次连接调度worker进程来处理,只有用户真的发送数据时(内核已经在网卡中收到请求包),内核才会唤醒worker进程处理这个请求。
bind:绑定当前端口、地址对。只有同时对一个端口监听多个地址时才会生效。
ssl:在当前监听的端口上建立的连接必须基于SSL协议。
主机名称
语法:server_name name […]
默认:server_name “”;
配置块:server;
作用:这是实现虚拟主机的关键。
server_names_hash_bucket_size
语法:server_names_hash_bucket_size size;
默认:server_names_hash_bucket_size 32|64|128;
配置块:http,server,location
作用:为了快速找到相应的server name的能力,Nginx使用散列表来存储server name。这个设置了桶的大小。
server_names_hash_max_size
语法:server_names_hash_max_size size;
默认:server_names_hash_max_size 512;
配置块:http,server,location
作用:为了快速找到相应的server name的能力,Nginx使用散列表来存储server name。这个设置了桶的最大值。
重定向主机名称的处理
语法:server_name_in_redirect on|off;
默认:server_name_in_redirect on;
作用:需要配合server_name工作,在使用on时,表示在重定向时,用主机列表中的第一个代替原来的host头部。