虚拟主机配置:
(1)监听端口
语法: listen address:port[default(deprecated in 0.8.21)|default_server| [backlog=num|rcvbuf=size|sndbuf=size|accept_filter=filter|deferred|bind|ipv6only=[on|off]|ssl]];
默认: listen 80;
配置块: server
IPV4:
listen 127.0.0.1:8000;
listen 127.0.0.1; # 注意:不加端口时,默认监听80端口
listen 8000;
listen *:8000;
listen localhost:8000;
在地址和端口后,还可以加上其他参数
listen 443 default_server ssl;
listen 127.0.0.1 default_server accept_filter=dataready backlog=1024;
IPV6:
listen [::]:8000;
listen [fe80::1];
listen [:::a8c9:1234]:80;
listen可用参数的意义:
default:将所在的server块作为整个Web服务的默认server块。如果没有设置这个参数, 那么将会以在nginx.conf中找到的第一个server块作为默认server块。为什么需要默认虚拟主机 呢?当一个请求无法匹配配置文件中的所有主机域名时,就会选用默认的虚拟主机(在11.3 节介绍默认主机的使用)。
default_server:同上。
backlog=num:表示TCP中backlog队列的大小。默认为–1,表示不予设置。在TCP建 立三次握手过程中,进程还没有开始处理监听句柄,这时backlog队列将会放置这些新连接。 可如果backlog队列已满,还有新的客户端试图通过三次握手建立TCP连接,这时客户端将会 建立连接失败。
bind:绑定当前端口/地址对,如127.0.0.1:8000。只有同时对一个端口监听多个地址时 才会生效。
ssl:在当前监听的端口上建立的连接必须基于SSL协议。
(2)主机名称
语法: server_name name[...];
默认: server_name"";
配置块: server
(3)server_names_hash_bucket_size
语法: server_names_hash_bucket_size size;
默认: server_names_hash_bucket_size 32|64|128;
配置块: http、server、location
(4)server_names_hash_max_size
语法: server_names_hash_max_size size;
默认: server_names_hash_max_size 512;
配置块: http、server、location
(5)重定向主机名称的处理
语法: server_name_in_redirect on|off;
默认: server_name_in_redirect on;
配置块: http、server或者location
(6)location
语法: location[=|~|~*|^~|@]/uri/{...}
配置块: server
文件路径的定义:
(1)以root方式设置资源路径
语法: root path;
默认: root html;
配置块: http、server、location、if
(2)以alias方式设置资源路径
语法: alias path;
配置块: location
如果有一个请求的URI是/conf/nginx.conf,而用户实际想访问的文件在
usrlocal/nginx/conf/nginx.conf,那么想要使用alias来进行设置的话:
location conf {
alias usr/local/nginx/con