最近在服务器上搞了一些nginx 研究了一下 总结总结 nginx配置文件里面需要注意的一些参数
worker_processes 8
nginx要开启的进程数 一般等于cpu的总核数 其实一般情况下开4个或8个就可 我开2个
以了 多了没有太多用
每个nginx进程消耗的内存10兆的模样
worker_cpu_affinity
仅适用于linux,使用该选项可以绑定worker进程和CPU(2.4内核的机器用不
了)
假如是8 cpu 分配如下:
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000
00100000 01000000 10000000
nginx可以使用多个worker进程,原因如下:
to use SMP
to decrease latency when workers blockend on disk I/O
to limit number of connections per process when select()/poll() is
used
The worker_processes and worker_connections from the event sections
allows you to calculate maxclients value: k
max_clients = worker_processes * worker_connections
worker_rlimit_nofile 102400;
每个nginx进程打开文件描述符最大数目 配置要和系统的单进程打开文件数一
致,linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应
应该填写65535
nginx调度时分配请求到进程并不是那么的均衡,假如超过会返回502错误。我
这里写的大一点
use epoll
Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模
型,而Apache则使用的是传统的select模型。
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。
在高并发服务器中,轮询I/O是最耗时间的操作 目前Linux下能够承受高并发
访问的Squid、Memcached都采用的是epoll网络I/O模型。
worker_connections 65535;
每个工作进程允许最大的同时连接数 (Maxclient = work_processes * worker_connections)
keepalive_timeout 75
keepalive超时时间
这里需要注意官方的一句话:
The parameters can differ from each other. Line Keep-Alive:
timeout=time understands Mozilla and Konqueror. MSIE itself shuts
keep-alive connection approximately after 60 seconds.
client_header_buffer_size 16k
large_client_header_buffers 4 32k
客户请求头缓冲大小
nginx默认会用client_header_buffer_size这个buffer来读取header值,如果
header过大,它会使用large_client_header_buffers来读取
如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request
求行如果超过buffer,就会报HTTP 414错误(URI Too Long)
nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的
HTTP错误(Bad Request)。
open_file_cache max 102400
使用字段:http, server, location 这个指令指定缓存是否启用,如果启用,将记录文件以下信息: ·打开的文件描述符,大小信息和修改时间. ·存在的目录信息. ·在搜索文件过程中的错误信息 -- 没有这个文件,无法正确读取,参考open_file_cache_errors 指令选项:
·max - 指定缓存的最大数目,如果缓存溢出,最长使用过的文件(LRU)将被移除
例: open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on;
open_file_cache_errors
语法:open_file_cache_errors on | off 默认值:open_file_cache_errors off 使用字段:http, server, location 这个指令指定是否在搜索一个文件是记录cache错误.
open_file_cache_min_uses
语法:open_file_cache_min_uses number 默认值:open_file_cache_min_uses 1 使用字段:http, server, location 这个指令指定了在open_file_cache指令无效的参数中一定的时间范围内可以使用的最小文件数,如 果使用更大的值,文件描述符在cache中总是打开状态.
open_file_cache_valid
语法:open_file_cache_valid time 默认值:open_file_cache_valid 60 使用字段:http, server, location 这个指令指定了何时需要检查open_file_cache中缓存项目的有效信息.
开启gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css
application/xml;
gzip_vary on;
缓存静态文件:
location ~* ^.+\.(swf|gif|png|jpg|js|css)$ {
root /usr/local/ku6/ktv/show.ku6.com/;
expires 1m;
}
优化Linux内核参数
vi /etc/sysctl.conf
# Add
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024 65535
附录:一些错误排查
php-cgi进程数不够用、php执行时间长(mysql慢)、或者是php-cgi进程死掉
,都会出现502错误
一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关,而Nginx 504 Gateway Time-out则是与nginx.conf的设置有关
1、查看当前的PHP FastCGI进程数是否够用:
netstat -anpo | grep "php-cgi" | wc -l
如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么
,说明“FastCGI进程数”不够用,需要增大。
2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加
nginx.conf配置文件中FastCGI的timeout时间,例如:
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
413 Request Entity Too Large
增大client_max_body_size
client_max_body_size:指令指定允许客户端连接的最大请求实体大小,它出现在请求头部的Content-Length字段. 如果请求大于指定的值,客户端将收到一个"Request Entity Too Large" (413)错误. 记住,浏览器并不知道怎样显示这个错误.
php.ini中增大
post_max_size 和upload_max_filesize
相关推荐
我们可以设置服务器的用户和组、工作进程数、错误日志、进程标识符、文件描述符最大值、事件处理模型、客户端请求头部缓冲区大小、mime 类型、...表大小、客户端请求头缓冲大小、文件传输等许多重要的服务器配置参数...
Nginx 配置文件详解 Nginx 配置文件是 Nginx 服务器的核心组件之一,负责控制 Nginx 服务器的行为和性能。本文将详细解释 Nginx 配置文件的结构和各个组件的作用。 全局配置 Nginx 配置文件的第一部分是全局配置...
**Nginx配置与优化详解** Nginx是一款高性能的HTTP和反向代理服务器,以其轻量级、高效的性能和高并发处理能力而备受青睐。本文将深入探讨Nginx的配置及其优化策略,帮助你更好地理解和提升Nginx的服务性能。 ### ...
### Nginx 部署配置...通过上述详细介绍,我们可以了解到`proxy_read_timeout`及其他相关参数在Nginx配置中的重要性及其具体应用方法。合理设置这些参数能够帮助我们在实际生产环境中更有效地管理和优化服务器性能。
- 对于负载均衡,可以通过在Nginx配置文件中定义多个后端服务器,并使用`proxy_pass`指令来实现。 ```nginx upstream backend { server backend1.example.com; server backend2.example.com; } server { ...
例如,以下是一些关键的Nginx配置参数及其作用: 1. worker_processes:这是Nginx服务器启动的工作进程数量,直接影响并发处理能力。增加worker_processes可以充分利用多核CPU,但过多会增加内存消耗。 2. worker_...
可以指定多个 DNS 并重置域名 TTL 延长 nginx 解析缓存来保障解析成功率: 代码如下: resolver 223.5.5.5 223.6.6.6 1.2.4.8 114.114.114.114 valid=3600s; 如果还有解析错误,可以用 dnsmasq 在本地自建 DNS,顺带...
Nginx配置项详解 - **server_name**: 指定服务器域名,可以是多个,支持通配符。 - **root**: 设置网站根目录,用于定位静态资源。 - **index**: 指定默认首页文件,如"index.html index.htm"。 - **listen**: ...
### NGINX负载均衡配置详解 ...需要注意的是,实际部署过程中还需根据具体环境调整配置参数,例如更改监听端口、优化缓存策略等。此外,监控系统性能并对配置进行持续优化也是保持高可用性和良好用户体验的重要环节。
【Nginx 配置详解】在 CentOS 6.5 环境下,配置 Nginx 1.6.2 可以实现多种高级功能,包括 SSL 双向认证、负载均衡和反向代理。以下是一份详细的配置步骤指南。 ### 1. 安装与准备 首先,确保你的系统是 CentOS 6.5...
关于nginx配置文件详解模板,配置文件包含了全局参数、事件模块、HTTP服务器、服务定义、静态文件访问路径、错误页面、重定向、TCP负载均衡等各种配置,并且每个部分都有详细的注释。您可以根据具体需求进行修改和...
### Nginx 配置详解 #### 一、Nginx 概述 Nginx 是一款由 Igor Sysoev 开发的高性能 Web 和反向代理服务器,最初是为了俄罗斯访问量排名第二的网站 Rambler.ru 而设计。自 2004 年发布以来,Nginx 已经通过开源...
下面我们详细介绍一些常见的Nginx配置参数及其中文解释。 1. `user`参数定义了运行Nginx进程的用户和用户组。这对于安全性尤其重要,确保了服务运行在一个权限受限的环境中,避免了潜在的安全风险。 2. `worker_...
本文将详细介绍如何在Windows环境下安装和配置Nginx,以实现本地服务器的功能,并通过配置`server_name`和`root`目录来访问目标文件。Nginx是一款高性能的HTTP和反向代理服务器,常用于静态文件服务和负载均衡。 ...
- **安全性考量**:考虑到安全性问题,建议仅在受信任的网络环境中使用此配置,同时加强对Nginx配置的安全性审查和日志监控。 - **性能优化**:根据实际情况调整 `proxy_connect_timeout` 和 `proxy_timeout` 参数,...
【Nginx配置文件详解】 在Nginx服务器中,`nginx.conf` 是主配置文件,它包含了所有关于Nginx服务器如何运行的基本指令。这个文件由多个部分组成,包括全局块、事件块、HTTP块以及server块。下面将详细解释这些块的...
### Nginx配置优化、负载均衡与动静分离详解 #### 一、Nginx配置优化 在现代Web应用中,Nginx作为一种高性能的HTTP服务器和反向代理服务器,在提高网站响应速度、处理高并发连接方面起着至关重要的作用。通过对...
### Linux下Nginx+Tomcat整合的安装与配置详解 在现代的Web服务器架构中,Nginx作为高性能的反向代理服务器和负载均衡器,常被用来与Tomcat等应用服务器配合使用,以提高网站的响应速度、稳定性和安全性。本文将...
### Nginx与Tomcat HTTPS至HTTP反向代理配置详解 #### 一、Windows环境下Nginx与Tomcat ...此外,通过调整Nginx的配置参数,还可以进一步优化性能和稳定性。希望这些信息能帮助您顺利完成Nginx与Tomcat的集成配置。