您的位置:首页 > 运维架构 > Nginx

nginx配置之虚拟主机和请求分发配置

2016-04-13 18:28 537 查看

监听端口

语法: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头部。

location配置

/article/7874767.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: