第2章 配置指南
来源:互联网 发布:淘宝上专柜代购的衣服 编辑:程序博客网 时间:2024/06/08 03:12
第2章 配置指南
标签:精通Nginx
精通Nginx 个人笔记
参考文档: Jack Zhou的专栏 Nginx:配置指南(2)
- 第2章 配置指南
- 基本配置
- Nginx的全局配置参数
- 使用include文件
- http的server部分
- 客户端指令
- 文件IO指令
- Hash指令
- Socket指令
- 一个Http配置部分的示例
- 虚拟server部分
- listen指令的参数
- Locationswherewhenhow
- mail的server部分
- 完整的样本配置文件
本章主要内容:
+ 基本配置格式
+ Nginx全局配置参数
+ 使用include文件
+ Http的server部分
+ 虚拟服务器部分
+ location————where? when? how?
+ mail的server部分
+ 完整的示例配置文件
基本配置
- 基本的Nginx配置文件由若干部分组成,每一个部分都是通过下列方法定义的
<section> { <directive> <parameters>;}
Nginx的全局配置参数
#定义Nginx运行的用户和用户组,如果忽略用户组,那么用户组的名字等于用户的用户组user user group;#nginx进程数,建议设置为等于CPU总核心数。worker_processes 8;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;#主进程ID的文件pid /var/run/nginx.pid;#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。worker_rlimit_nofile 65535;#工作模式与连接数上限events { #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。 use epoll; #单个进程最大连接数(最大连接数=连接数*进程数) worker_connections 65535;}
使用include文件
- 在Nginx的配置文件中,include文件可以在任何地方,以便增强配置文件的可读性,并且能够使得部分配置文件重新使用。使用include文件,要确保被包含的文件自身有正确的Nginx语法,即配置指令和块
include /opt/local/etc/nginx/vhost/*.conf
- 如果没有给定全路径,那么Nginx会依据它的主配置文件路径进行搜索
nginx -t -c <path-to_nginx.conf> # 测试nginx的配置文件,只检查语法
http的server部分
- 本部分的指令用于处理Http连接
客户端指令
- 这一组指令用于处理客户端连接本身的各个方面,以及不同类型的客户端
客户端指令
文件I/O指令
- 这些指令用于控制Nginx如何投递静态文件,以及如何管理文件描述符
Hash指令
这组hash指令控制Nginx分配给某些变量多大的静态内存。在启动和重新配置时,Nginx会计算需要的最小值。在Nginx发出警告时,你几乎只需要调整一个*_hash_max_size指令的参数值就可以达到效果。*_hash_bucket_size变量被设置了默认值,以便满足多处理器缓存行降低检索所需要的检索查找,因此基本不需要改变
Http hash指令
Socket指令
- 这些指令描述了Nginx如何设置创建TCP套接字的变量选项
Socket指令
一个Http配置部分的示例
http { include /opt/local/etc/nginx/mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; server_names_hash_max_size 1024;}
- 在nginx.conf文件中上面的这部分内容跟随在全局配置指令之后。
虚拟server部分
任何由关键字server开始的部分都被称作“虚拟服务器”部分。它描述的是一组根据server_name指令逻辑分割的资源,这些虚拟服务器响应Http请求,因此它们都包含在http部分中。
一个虚拟服务器由listen和server_name指令组合定义,listen指令定义了一个IP地址/端口组合或者是UNIX域套接字路径
listen address[:port];listen port;listen unix:path;
- listen指令唯一地标识了在Nginx下的套接字绑定
listen指令的参数
+ server_name指令是相当简单的,但可以用来解决一些配置问题。它的默认值为”“,这意味着server部分没有server_name指令,对于没有设置Host头字段的请求将会匹配该server处理。这种情况可用于,例如,丢弃这种缺乏Host头的请求
server { listen 80; return 444;}
Host头匹配流程图
Locations——where,when,how
- location指令可以用在虚拟服务器server部分,并且意味着提供来自客户端的URI或者内部重定向访问。除少数情况外,location也可以被嵌套使用,它们被作为特定的配置尽可能地处理请求。
location定义如下:
location [modifier] uri {...}或location @name {…}
- 命名location仅对内部访问重定向,在进入一个location之前它会保留被请求的URI部分。命名location只能够在server级别定义。
mail的server部分
完整的样本配置文件
user www;worker_processes 12;error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;events { use /dev/poll; worker_connections 2048;}http { include /opt/local/etc/nginx/mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; server_names_hash_max_size 1024; server { listen 80; return 444; } server { listen 80; server_name www.example.com; location / { try_files $uri $uri/ @mongrel; } location @mongrel { proxy_pass http://127.0.0.1:8080; } }}
- 第2章 配置指南
- [node.js开发指南]——第2章 安装和配置Node.js
- CISCO访问表配置指南--第1章
- Squid中文权威指南第12章-验证配置
- 系统管理指南:基本管理 第2 章
- ZeroMQ指南:第2章:中级材料
- ZeroMQ指南:第2章:中级材料
- Hadoop权威指南(第2版)--第2章
- mysql多维数据仓库指南--第一篇第2章(2)
- Hadoop权威指南(第2版)--第1章
- mysql多维数据仓库指南--第一篇第2章(1)
- mysql多维数据仓库指南--第一篇第4章(2)
- AppFuse 2配置指南
- Nginx:配置指南(2)
- Oracle Secure Backup管理员指南 第3章 备份配置与介质设置
- [翻译]WTL开发者指南 第2章 Win32 SDK windowing
- 《Squid 中文权威指南》第2章 译者:彭勇华
- ZeroMQ指南-第1章-基础(2)
- 如何定位web前后台的BUG
- Spring 注解方式集成 Junit4 进行单元测试
- 总结1
- 带触屏的语音助手是客厅的新宠?亚马逊新一代 Echo 也许能告诉你答案
- java-栈、队列、数组、链表、Hash、树以及集合(二)
- 第2章 配置指南
- R语言dplyr包介绍 introduction to dplyr
- 【博弈论】洛谷 P1288 取数游戏II
- 四、Shell编程基础
- 减肥abc...
- 【博弈论】洛谷 P1290 欧几里德的游戏
- Go语言嵌入问题续
- nefuoj67-思维-自动求循环节
- leetcode 312. Burst Balloons