nginx主配置文件解释
Tengine 主配置文件
Tengine 安装
tar zxvf tengine-2.0.3.tar.gz
cd tengine-2.0.3/
./configure --prefix=/data/ops/app/tengine-2.0.3/ --with-http_stub_status_module --with-pcre --with-http_upstream_check_module
make && make install
echo "/data/ops/app/tengine-2.0.3/sbin/nginx" >> /etc/rc.local
部分模块说明:
--with-http_upstream_check_module
该模块可以为Tengine提供主动式后端服务器健康检查的功能。
该模块在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:./configure --with-http_upstream_check_module
--with-pcre
设置PCRE库的源码路径
二、nginx配置文件
配置文件分为几块儿
nginx.conf 为主配置文件
user root root;//设置worker进程的用户名和组名为root
worker_processes auto;//根据cpu数量自动设定Tengine的worker进程数量
worker_rlimit_nofile 65535;//设置打开的文件句柄最大数量为65535。这个参数跟系统的ulimit有关
events {
###如果你在./configure的时候指定了不止一个事件模型,你可以通过这个参数告诉nginx你想使用哪一个事件模型,默认情况下nginx在编译时会检查最适合你系统的事件模型。
###你可以在这里看到所有可用的事件模型并且如果在./configure时激活它们。
use epoll;
worker_connections 65535;
//设定事件模型使用epoll,每个worker进程可用的最大连接数是65535。
//为什么nginx比apache快,epoll起到了比较关键的作用。
}
http {
###文件扩展名与文件类型映射表
include mime.types;
###默认文件类型
default_type application/octet-stream;
#隐藏版本号
server_tokens off;
server_info off;
###这个参数指定了是否记录客户端的请求出现404错误的日志,通常用于不存在的robots.txt和favicon.ico文件
log_not_found off;
log_format main '$host$server_addr$server_port$remote_addr$time_iso8601$request_method$uri$args'
'$server_protocol$status$body_bytes_sent$bytes_sent'
'$request_time$http_referer$http_user_agent$http_x_forwarded_for'
'$upstream_addr$upstream_status$upstream_response_time$upstream_cache_status';
log_format mainandpost '$host$server_addr$server_port$remote_addr$time_iso8601$request_method$uri$args'
'$request_body$server_protocol$status$body_bytes_sent$bytes_sent'
'$request_time$http_referer$http_user_agent$http_x_forwarded_for'
'$upstream_addr$upstream_status$upstream_response_time$upstream_cache_status';
access_log logs/access-$year-$month-$day.log main;
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
sendfile on;//打开会使用sendfile系统调用,用来发送静态文件,节省了文件在用户空间和内核空间拷贝的消耗。
tcp_nopush on;//打开后,会使TCP在发送数据时进行缓存,提高传输效率,但是会增加客户端响应时间。
request_time_cache off;
req_status_zone req_status_zone "$host" 10M;//创建统计使用的共享内存。zone_name是共享内存的名称,value用于定义key,支持变量。size是共享内存的大小。
include proxy_cache_path.conf;
include upstream.conf;
include vhost.*.conf;
}
其他例如upstream,vhost 等都通过include去引用
日志格式分隔符一般用crtl+v+a作为分隔符,这样为了以后方便对日志作分析
'$host//“Host”请求头的值,如果没有该请求头,则为与请求对应的虚拟主机的首要主机名。
$server_addr//接受请求的服务器地址。
为计算这个值,通常需要进行一次系统调用。为了避免系统调用,必须指定listen指令 的地址,并且使用bind参数。
$server_port//接受请求的虚拟主机的端口。
$remote_addr//客户端IP地址。
$time_iso8601//ISO8601标准格式下的本地时间
$request_method//HTTP方法,通常为“GET”或者“POST”。
$uri//当前请求规范化以后的URI。
变量$uri的值可能随请求的处理过程而改变。 比如,当进行内部跳转时,或者使用默认页文件。
$args//请求行中参数字符串
'$request_body//请求正文。
$server_protocol//请求协议,通常为“HTTP/1.0”或“HTTP/1.1”。
$status//响应状态
$body_bytes_sent//发送给客户端的字节数,不包括响应头的大小
$bytes_sent//发送给客户端的总字节数
'$request_time//请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
$http_referer//记录从哪个页面链接访问过来的
$http_user_agent//记录客户端浏览器相关信息
$http_x_forwarded_for//记录客户端IP地址
$upstream_addr//保存服务器的IP地址和端口或者是UNIX域套接字的路径
$upstream_status//保存服务器的响应代码。 出现多个响应时,也是以逗号和冒号隔开。
$upstream_response_time//以毫秒的精度保留服务器的响应时间,(输出)单位是秒。 出现多个响应时,也是以逗号和冒号隔开。
$upstream_cache_status//前端代理和后端服务器响应状态
###如果需要修改从被代理服务器传来的应答头中的"Location"和"Refresh"字段,可以用这个指令设置。
proxy_redirect off;
###防止在客户端自己终端请求的情况下中断代理请求。
proxy_ignore_client_abort on;#禁止服务器主动拒绝客户端
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
###允许重新定义或者添加发往后端服务器的请求头。value可以包含文本、变量或者它们的组合。
###当且仅当当前配置级别中没有定义proxy_set_header指令时,会从上面的级别继承配置。 默认情况下,只有两个请求头会被重新定义:
proxy_set_header Host $host:$server_port; #传递host头+端口号给后端
###将$remote_addr变量值添加在客户端“X-Forwarded-For”请求头的后面,并以逗号分隔。
###如果客户端请求未携带“X-Forwarded-For”请求头,$proxy_add_x_forwarded_for变量值将与$remote_addr变量相同。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr; #传递客户端源地址
proxy_set_header Client-Real-IP $remote_addr;
proxy_set_header Accept-Encoding '';#强制关闭后端gzip
###设置从被代理服务器读取的第一部分应答的缓冲区大小。
###通常情况下这部分应答中包含一个小的应答头。
###默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小。
proxy_buffer_size 32k;
###设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k。
proxy_buffers 4 32k;
###当开启缓冲响应的功能以后,在没有读到全部响应的情况下,写缓冲到达一定大小时,nginx一定会向客户端发送响应,
###直到缓冲小于此值。这条指令用来设置此值。 同时,剩余的缓冲区可以用于接收响应,如果需要,一部分内容将缓冲到临时文件。
###该大小默认是proxy_buffer_size和proxy_buffers指令设置单块缓冲大小的两倍。
proxy_busy_buffers_size 64k;
###设置在写入proxy_temp_path时数据的大小,在预防一个工作进程在传递文件时阻塞太长。
proxy_temp_file_write_size 64k;
client_max_body_size 100m;
proxy_http_version 1.1;
proxy_set_header Connection "";
语法: |
proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_404 | off ...; |
默认值: |
proxy_next_upstream error timeout; |
上下文: |
http, server, location |
指定在何种情况下一个失败的请求应该被发送到下一台后端服务器:
error
和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现错误;
timeout
和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现超时;
invalid_header
后端服务器返回空响应或者非法响应头;
http_500
后端服务器返回的响应状态码为500;
http_502
后端服务器返回的响应状态码为502;
http_503
后端服务器返回的响应状态码为503;
http_504
后端服务器返回的响应状态码为504;
http_404
后端服务器返回的响应状态码为404;
off
停止将请求发送给下一台后端服务器。
需要理解一点的是,只有在没有向客户端发送任何数据以前,将请求转给下一台后端服务器才是可行的。也就是说,如果在传输响应到客户端时出现错误或者超时,这类错误是不可能恢复的。
语法: |
proxy_buffer_size size; |
默认值: |
proxy_buffer_size 4k|8k; |
上下文: |
http, server, location |
设置缓冲区的大小为size。nginx从被代理的服务器读取响应时,使用该缓冲区保存响应的开始部分。这部分通常包含着一个小小的响应头。该缓冲区大小默认等于proxy_buffers指令设置的一块缓冲区的大小,但它也可以被设置得更小。
语法: |
proxy_buffers number size; |
默认值: |
proxy_buffers 8 4k|8k; |
上下文: |
http, server, location |
为每个连接设置缓冲区的数量为number,每块缓冲区的大小为size。这些缓冲区用于保存从被代理的服务器读取的响应。每块缓冲区默认等于一个内存页的大小。这个值是4K还是8K,取决于平台。
语法: |
proxy_busy_buffers_size size; |
默认值: |
proxy_busy_buffers_size 8k|16k; |
上下文: |
http, server, location |
当开启缓冲响应的功能以后,在没有读到全部响应的情况下,写缓冲到达一定大小时,nginx一定会向客户端发送响应,直到缓冲小于此值。这条指令用来设置此值。 同时,剩余的缓冲区可以用于接收响应,如果需要,一部分内容将缓冲到临时文件。该大小默认是proxy_buffer_size和proxy_buffers指令设置单块缓冲大小的两倍。
语法: |
proxy_temp_file_write_size size; |
默认值: |
proxy_temp_file_write_size 8k|16k; |
上下文: |
http, server, location |
在开启缓冲后端服务器响应到临时文件的功能后,设置nginx每次写数据到临时文件的size(大小)限制。 size的默认值是proxy_buffer_size指令和proxy_buffers指令定义的每块缓冲区大小的两倍, 而临时文件最大容量由proxy_max_temp_file_size指令设置。
$proxy_add_x_forwarded_for
将$remote_addr变量值添加在客户端“X-Forwarded-For”请求头的后面,并以逗号分隔。 如果客户端请求未携带“X-Forwarded-For”请求头,$proxy_add_x_forwarded_for变量值将与$remote_addr变量相同。
转载于:https://blog.51cto.com/leeforget/1614017
nginx主配置文件解释相关推荐
- Nginx主配置文件nginx.conf中文详解
第1章 nginx配置解释图解 第2章 Nginx核心配置文件nginx.conf史上最细中文详解 2.1 定义Nginx运行的用户和用户组 2.2 nginxworker进程数,即处理请求的进程(熟 ...
- Nginx主配置文件nginx.conf详细说明
第3章 Nginx核心配置文件nginx.conf史上最细中文详解 3.1定义Nginx运行的用户和用户组 user nginx nginx;#改为特殊的用户和组 3.2 nginxworker进程数 ...
- Nginx主配置文件说明
#运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 #error_log logs/error.log; ...
- nginx主配置文件 在那找怎么打开
转载于:https://www.cnblogs.com/niaowo/p/4782336.html
- nginx主模块指令
daemon 语法: daemon on | off 缺省值: on 若为on则以守护进程方式执行,默认为on,否则控制终端结束后,nginx进程也随终端的结束而结束.该选项主要用于开发调试,生产环境 ...
- Nginx安装及配置文件解释
安装nginx,还是在mac上面用brew比较方便. 首先,brew install nginx,提示改权限 sudo chown -R $(whoami) /usr/local 然后brew ins ...
- Nginx主主负载均衡架构
在和一些朋友交流Nginx+Keepalived技术时,我虽然已成功多次实Nginx+Keepaived项目方案,但这些都是用的单主Nginx在工作,从Nginx长期只是处于备份状态,所以我们想将二台 ...
- nginx之配置文件解读及虚拟主机配置
文章目录 一.认识配置文件 1.整体结构 2.各"块"功能 3.最详细的配置文件解释 二.配置虚拟主机 1.什么是虚拟主机? 2.虚拟主机类型 3.配置虚拟主机 如果你还没有搭 ...
- Nginx之nginx.conf 配置文件(二)
上一篇博客我们将 nginx 安装在 /usr/local/nginx 目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的 ...
最新文章
- .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...
- python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...
- 监控mysql的shell脚本_监控MySQL主从状态的shell脚本
- 【深度学习】Dropout、正反向传播、计算图等的介绍和实现(Pytorch)
- 神经网络最优化方法比较(代码理解)
- 外卖平台降费,能否成为“全村人的希望”?
- conceptd什么时候上市_阳山水蜜桃多少钱一斤?什么时候成熟上市?
- mysql e 变量_mysql 变量简介
- Java程序Date类型比较
- linux端口接收中文乱码,linux中显示中文乱码如何解决
- [sql]join的5种方式:inner join、left(outer) join、right (outer) Join、full(outer) join、cross join...
- Word批量转PDF,宏批量转PDF
- 苹果账号调查事件始末,Apple审核流程或有变
- Xcode 6系列百度网盘地址,包含Xcode 6.2以及Xcode 6.3
- 相对论【6】广义相对论简单的几乎无关的讨论
- xkcd 单线程下载图片
- 什么是 CSS 预处理器/后处理器?
- 教父母使用手机的功能提纲
- Eclipse+ GNU ARM Eclipse Plug-in+ Sourcery G++ Lite Edition for ARM+OPENCD+Jlink的开源开发环境。
- (转)War3 World Editor 菜单详解
热门文章
- 10.28-11.1-广州软件所-实习工作日记
- Kendo UI开发教程(25): 单页面应用(三) View
- HDU3685 几何+重心+凸包+判定锐角三角形
- Zeu.js 1.3.1 发布, 分布式系统可视化
- Python HTTP Error 403: Forbidden
- fedora下一些问题的解决方案汇总
- 《AutoCAD 2014中文版超级学习手册》——1.4 配置绘图系统
- ShareREC SDK(iOS) 专用快速集成组件
- 如何选择Sencha Touch和jQuery Mobile
- Qt下的模态和非模态对话框