Nginx配置详情 您所在的位置:网站首页 oppoa53m参数配置详情 Nginx配置详情

Nginx配置详情

2024-03-16 16:27| 来源: 网络整理| 查看: 265

监听端口 配置块:server 监听端口,由于ip地址数量有限,因此经常存在多个主机域名对应着同一个ip地址的情况,这时在nginx.conf中就可以按照server_name(对应用户请求中的域名)并通过server块来定义虚拟主机,每个server块就是一个虚拟主机,它只处理与之相应的主机域名请求,这样一台服务器上的nginx就能以不同的方式处理域名不同主机域名的HTTP请求了。 示例: listem 127.0.0.1:8000; listem 127.0.0.1;#注意:不加端口时默认监听80端口 listem 8000; listem *:8000; listem localhost:8000; 配置块:server listen address:port; #默认监听80端口 如果服务器使用ipv6地址,那么可以这样使用 listen [::]:8000; listen [fe80::1]; listen [::]:8000; listen [:::a8c9:1234]:8000; 在地址和端口后,还可以加上其他参数,例如: listen 443 default_server ssl; listen 127.0.0.1 default_server accept_filter=dataready backlog=1024; 下面说明listen可用参数的意义。 defaule:将所在的server块作为整个web服务的默认server块。如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块。需要默认虚拟主机的原因是,当一个请求无法匹配配置文件中的所有主机域名时,就需要使用默认虚拟主机。 default_server:同上。 backlog=num:表示TCP中backlog队列的大小。默认为-1,表示不予设置,在TCP建立三次握手的过程中,进程还没油开始处理监听句柄,这时backlog队列将会防止这些新连接,可如果backlog队列已满,还有新的客户端试图通过三次握手建立TCP连接,这时客户端将建立失败。 revbuf=size:设置监听句柄的SO_RCVBUF参数。 sndbuf=size:设置监听句柄的SO_SNDBUG参数。 accept_filter:设置accept过滤器,只对FreeBSD操作系统有用。 deferred:在设置该参数后,若用户发起建立连接请求,并且完成了TCP的三次握手,内核也不会为了这次的连接调度worker进程来处理,只有用户真的发送请求数据时,(内核已经在网卡中受到请求数据包),内核才会唤醒worker进程处理这个连接,这个参数适用于大并发的情况下,它减轻了worker进程的负担,,当请求数据来临时,worker进程才会开始处理这个连接。 bind:绑定当前端口/地址对。如127.0.0.1:8000。只有同时对一个端口监听多个地址是才会生效。 ssl:在当前监听的端口上建立的连接必须基于ssl协议。

主机名称: 在开始处理一个HTTP请求时,nginx会取出herder头中的host,与每个server中的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求。有可能一个host与多个server块中的server_name都匹配,这时会根据匹配优先级来实际处理的server块。 配置块:server server_name name […];#默认server_name “”; server_name后可以跟多个主机名称,如server_name www.web.com web.com test.web.com; server_name与host的匹配优先级如下: 1、首先选择所有字符串完全匹配的server_name,如www.web.com. 2、其次选择通配符在前面的server_name,如*.web.com。 3、在其次选择通配符在后面的server_name,如www.web.*。 4、最后选择使用正则表达式才匹配的server_name,如~^.web.com$。

server_name哈希:为了提高快速寻找到相应server_name的能力,nginx使用散列表来存储server_name。server_names_hash_bucket_size设置了每个散列桶占用的内存大小。 配置块:http、server、location server_names_hash_bucket_size 32|64|128; 配置块:http、server、location

server_names_hash_max_size size;#默认大小512 server_names_hash_max_size会影响散列表的冲突率。server_names_hash_max_size越大消耗的内存就越多,但散列key的冲突率则会降低,检索速度也更快。server_names_hash_max_size越小,消耗的内存就越小,但散列的冲突率会增高。(hash冲突不是很清楚的可以查询资料了解一下)

重定向主机名称的处理 配置块:http、server、location server_name_in_redirect on | off;#默认server_name_in_redirect on; 该配置需要配合server_name使用。在使用on打开时,表示在重定向请求时会使用server_name里配置的第一个主机名代替原先请求中的host头部,而使用off关闭时,表示在重定向时使用请求本身的host头部。

4.2 location uri匹配 配置块:server location [=|~|~*|^~|@]/uri/ { … } location会尝试根据用户请求中的URI来匹配上面的/uri表达式,如果可以匹配,就选择location{}块中的配置来处理用户请求。匹配方式是多样的,当然URI匹配可以使用正则表达式。 1、= 表示把URI作为字符串,以便于参数中的uri做完全匹配。 2、~ 表示匹配URI时是字母大小写是敏感的。 3、~* 表示匹配时忽略字母大小写。 4、^~ 表示匹配URI时只需要其前半部分与URI参数匹配即可。 5、@ 表示仅用于nginx服务内部请求之间的重定向,带有@的location不直接处理用户请求。 注:location是有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。如需匹配全部请求,location处填写”/”即可。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有